Merge branch 'main' into touch-s2
This commit is contained in:
commit
28ce5e8988
54
.github/workflows/build.yml
vendored
54
.github/workflows/build.yml
vendored
@ -43,6 +43,32 @@ jobs:
|
||||
run: |
|
||||
gcc --version
|
||||
python3 --version
|
||||
- name: Translations
|
||||
run: make check-translate
|
||||
- name: New boards check
|
||||
run: python3 -u ci_new_boards_check.py
|
||||
working-directory: tools
|
||||
- name: Duplicate USB VID/PID Check
|
||||
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
|
||||
- name: Build and Validate Stubs
|
||||
run: make check-stubs -j2
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: stubs
|
||||
path: circuitpython-stubs*
|
||||
- name: Test Documentation Build (HTML)
|
||||
run: sphinx-build -E -W -b html -D version=${{ env.CP_VERSION }} -D release=${{ env.CP_VERSION }} . _build/html
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: docs
|
||||
path: _build/html
|
||||
- name: Test Documentation Build (LaTeX/PDF)
|
||||
run: |
|
||||
make latexpdf
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: docs
|
||||
path: _build/latex
|
||||
- name: Build mpy-cross
|
||||
run: make -C mpy-cross -j2
|
||||
- name: Build unix port
|
||||
@ -68,32 +94,6 @@ jobs:
|
||||
- name: mpy Tests
|
||||
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
|
||||
working-directory: tests
|
||||
- name: Build and Validate Stubs
|
||||
run: make check-stubs -j2
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: stubs
|
||||
path: circuitpython-stubs*
|
||||
- name: Test Documentation Build (HTML)
|
||||
run: sphinx-build -E -W -b html -D version=${{ env.CP_VERSION }} -D release=${{ env.CP_VERSION }} . _build/html
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: docs
|
||||
path: _build/html
|
||||
- name: Test Documentation Build (LaTeX/PDF)
|
||||
run: |
|
||||
make latexpdf
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: docs
|
||||
path: _build/latex
|
||||
- name: Translations
|
||||
run: make check-translate
|
||||
- name: New boards check
|
||||
run: python3 -u ci_new_boards_check.py
|
||||
working-directory: tools
|
||||
- name: Duplicate USB VID/PID Check
|
||||
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
|
||||
- name: Build mpy-cross.static-raspbian
|
||||
run: make -C mpy-cross -j2 -f Makefile.static-raspbian
|
||||
- uses: actions/upload-artifact@v2
|
||||
@ -185,6 +185,7 @@ jobs:
|
||||
- "arduino_nano_33_iot"
|
||||
- "arduino_zero"
|
||||
- "bast_pro_mini_m0"
|
||||
- "bastble"
|
||||
- "bdmicro_vina_d21"
|
||||
- "bdmicro_vina_d51"
|
||||
- "bless_dev_board_multi_sensor"
|
||||
@ -311,6 +312,7 @@ jobs:
|
||||
- "sparkfun_samd21_mini"
|
||||
- "sparkfun_samd51_thing_plus"
|
||||
- "spresense"
|
||||
- "stackrduino_m0_pro"
|
||||
- "stm32f411ce_blackpill"
|
||||
- "stm32f411ve_discovery"
|
||||
- "stm32f412zg_discovery"
|
||||
|
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -152,7 +152,7 @@
|
||||
url = https://github.com/adafruit/Adafruit_CircuitPython_RFM69.git
|
||||
[submodule "ports/esp32s2/esp-idf"]
|
||||
path = ports/esp32s2/esp-idf
|
||||
url = https://github.com/jepler/esp-idf.git
|
||||
url = https://github.com/adafruit/esp-idf.git
|
||||
[submodule "ports/esp32s2/certificates/nina-fw"]
|
||||
path = ports/esp32s2/certificates/nina-fw
|
||||
url = https://github.com/adafruit/nina-fw.git
|
||||
|
80
locale/ID.po
80
locale/ID.po
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-10-10 23:51+0000\n"
|
||||
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -19,10 +19,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Kode selesai berjalan. Menunggu memuat ulang.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -540,6 +544,18 @@ msgstr "Blok CBC harus merupakan kelipatan 16 byte"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Panggil super().__init__() sebelum mengakses objek asli."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "Tidak dapat mengatur CCCD pada Karakteristik lokal"
|
||||
@ -576,6 +592,10 @@ msgstr ""
|
||||
"Tidak dapat menggunakan output di kedua channel dengan menggunakan pin yang "
|
||||
"sama"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Tidak dapat membaca tanpa pin MISO."
|
||||
@ -623,6 +643,10 @@ msgstr ""
|
||||
"Tidak dapat membuat variasi frekuensi pada penghitung waktu yang sudah "
|
||||
"digunakan"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Tidak dapat menulis tanpa pin MOSI."
|
||||
@ -954,6 +978,10 @@ msgstr "File sudah ada"
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -963,11 +991,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
"Frekuensi yang ditangkap berada di atas kemampuan. Penangkapan Ditunda."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr "Frekuensi harus cocok dengan PWMOut yang ada menggunakan timer ini"
|
||||
@ -1485,7 +1508,7 @@ msgstr ""
|
||||
"Hanya monokrom, 4bpp atau 8bpp yang diindeks, dan 16bpp atau lebih yang "
|
||||
"didukung: %d bpp diberikan"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1549,10 +1572,6 @@ msgstr "Pin harus mendukung interupsi perangkat keras"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "Nomor pin sudah dipesan oleh EXTI"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1596,7 +1615,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2021,6 +2040,10 @@ msgstr ""
|
||||
msgid "Unsupported pull value."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3046,7 +3069,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3184,6 +3207,14 @@ msgstr "non-keyword arg setelah */**"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "non-keyword arg setelah keyword arg"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3256,6 +3287,10 @@ msgstr "panjang data string memiliki keganjilan (odd-length)"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#, fuzzy
|
||||
msgid "offset out of bounds"
|
||||
@ -3602,6 +3637,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
msgid "timeout must be >= 0.0"
|
||||
@ -3862,6 +3901,17 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Kode selesai berjalan. Menunggu memuat ulang.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr ""
|
||||
#~ "Frekuensi yang ditangkap berada di atas kemampuan. Penangkapan Ditunda."
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Tekan tombol apa saja untuk masuk ke dalam REPL. Gunakan CTRL+D untuk "
|
||||
|
@ -20,7 +20,13 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
@ -534,6 +540,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -566,6 +584,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr ""
|
||||
@ -609,6 +631,10 @@ msgstr ""
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr ""
|
||||
@ -936,6 +962,10 @@ msgstr ""
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -945,10 +975,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1459,7 +1485,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1525,10 +1551,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1569,7 +1591,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1992,6 +2014,10 @@ msgstr ""
|
||||
msgid "Unsupported pull value."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3010,7 +3036,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3148,6 +3174,14 @@ msgstr ""
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3220,6 +3254,10 @@ msgstr ""
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
@ -3565,6 +3603,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr ""
|
||||
|
75
locale/cs.po
75
locale/cs.po
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-12-04 18:33+0000\n"
|
||||
"Last-Translator: vkuthan <vit.kuthan@seznam.cz>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -19,10 +19,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Kód byl dokončen. Čekám na opětovné nahrání.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -538,6 +542,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -570,6 +586,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr ""
|
||||
@ -613,6 +633,10 @@ msgstr ""
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr ""
|
||||
@ -940,6 +964,10 @@ msgstr ""
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -949,10 +977,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1462,7 +1486,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1524,10 +1548,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1568,7 +1588,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1987,6 +2007,10 @@ msgstr ""
|
||||
msgid "Unsupported pull value."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3005,7 +3029,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3143,6 +3167,14 @@ msgstr ""
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3215,6 +3247,10 @@ msgstr ""
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
@ -3560,6 +3596,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr ""
|
||||
@ -3819,6 +3859,13 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Kód byl dokončen. Čekám na opětovné nahrání.\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "To exit, please reset the board without "
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-11-26 03:11+0000\n"
|
||||
"Last-Translator: Daniel Bravo Darriba <bravodarriba@gmail.com>\n"
|
||||
"Language: de_DE\n"
|
||||
@ -18,10 +18,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Der Code wurde ausgeführt. Warte auf reload.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -541,6 +545,18 @@ msgstr "CBC-Blöcke müssen ein Vielfaches von 16 Bytes sein"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Rufe super().__init__() vor dem Zugriff auf ein natives Objekt auf."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "CCCD kann nicht auf lokales Merkmal eingestellt werden"
|
||||
@ -574,6 +590,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Kann nicht beite Kanäle auf dem gleichen Pin ausgeben"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Kann ohne MISO-Pin nicht lesen."
|
||||
@ -618,6 +638,10 @@ msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
"Die Frequenz eines bereits verwendeten Timers kann nicht variiert werden"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Kann nicht ohne MOSI-Pin schreiben."
|
||||
@ -951,6 +975,10 @@ msgstr "Datei existiert"
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filter zu komplex"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Format nicht unterstützt"
|
||||
@ -960,12 +988,6 @@ msgstr "Format nicht unterstützt"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "Framepuffer benötigt %d bytes"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
"Die aufgezeichnete Frequenz liegt über der Leistungsgrenze. Aufnahme "
|
||||
"angehalten."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1487,7 +1509,7 @@ msgstr ""
|
||||
"Nur monochrome, indizierte 4bpp oder 8bpp, und 16bpp oder größere BMPs "
|
||||
"unterstützt: %d bpp wurden gegeben"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1549,10 +1571,6 @@ msgstr "Pin muss Hardware-Interrupts unterstützen"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "PIN-Nummer bereits von EXTI reserviert"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1596,7 +1614,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2033,6 +2051,10 @@ msgstr "Nicht unterstützte Operation"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Nicht unterstützter Pull-Wert."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3081,7 +3103,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "max_length muss 0-%d sein, wenn fixed_length %s ist"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3219,6 +3241,14 @@ msgstr "Nicht-Schlüsselwort arg nach * / **"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "Nicht-Schlüsselwort Argument nach Schlüsselwort Argument"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3292,6 +3322,10 @@ msgstr "String mit ungerader Länge"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset außerhalb der Grenzen"
|
||||
@ -3643,6 +3677,10 @@ msgstr "Das Zeitlimit hat den maximal zulässigen Wert überschritten"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "Das Zeitlimit muss 0,0-100,0 Sekunden betragen"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "timeout muss >= 0.0 sein"
|
||||
@ -3906,6 +3944,18 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Der Code wurde ausgeführt. Warte auf reload.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr ""
|
||||
#~ "Die aufgezeichnete Frequenz liegt über der Leistungsgrenze. Aufnahme "
|
||||
#~ "angehalten."
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum "
|
||||
|
68
locale/el.po
68
locale/el.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -19,7 +19,13 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
@ -533,6 +539,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -565,6 +583,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr ""
|
||||
@ -608,6 +630,10 @@ msgstr ""
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr ""
|
||||
@ -935,6 +961,10 @@ msgstr ""
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -944,10 +974,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1457,7 +1483,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1519,10 +1545,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1563,7 +1585,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1982,6 +2004,10 @@ msgstr ""
|
||||
msgid "Unsupported pull value."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3000,7 +3026,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3138,6 +3164,14 @@ msgstr ""
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3210,6 +3244,10 @@ msgstr ""
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
@ -3555,6 +3593,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr ""
|
||||
|
83
locale/es.po
83
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-11-27 18:34+0000\n"
|
||||
"Last-Translator: Iván Montiel Cardona <ivan_montiel2013@hotmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -21,10 +21,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"El código terminó su ejecución. Esperando para recargar.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -547,6 +551,18 @@ msgstr "Los bloques CBC deben ser múltiplos de 16 bytes"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Llame a super().__ init __() antes de acceder al objeto nativo."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "No se puede configurar CCCD en la característica local"
|
||||
@ -581,6 +597,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "No se puede tener ambos canales en el mismo pin"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "No se puede leer sin pin MISO."
|
||||
@ -624,6 +644,10 @@ msgstr "No se puede obtener inequívocamente sizeof escalar"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "No puede variar la frecuencia en un temporizador que ya está en uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "No se puede escribir sin pin MOSI."
|
||||
@ -955,6 +979,10 @@ msgstr "El archivo ya existe"
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filtros muy complejos"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Sin capacidades para el formato"
|
||||
@ -964,10 +992,6 @@ msgstr "Sin capacidades para el formato"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "Framebuffer requiere %d bytes"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr "Frecuencia capturada por encima de la capacidad. Captura en pausa."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1486,7 +1510,7 @@ msgstr ""
|
||||
"Solo se admiten BMP monocromáticos, indexados de 4 bpp u 8 bpp y 16 bpp o "
|
||||
"más: %d bpp proporcionados"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1550,10 +1574,6 @@ msgstr "El pin debe admitir interrupciones de hardware"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "Número de pin ya reservado por EXTI"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1601,7 +1621,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2036,6 +2056,10 @@ msgstr "Operación no soportada"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "valor pull no soportado."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3073,8 +3097,8 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "max_length debe ser 0-%d cuando fixed_length es %s"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_lenght debe ser > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
@ -3213,6 +3237,14 @@ msgstr ""
|
||||
"no deberia estar/tener agumento por palabra clave despues de argumento por "
|
||||
"palabra clave"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr "norma está definida para arrays 1D y 2D"
|
||||
@ -3286,6 +3318,10 @@ msgstr "string de longitud impar"
|
||||
msgid "offset is too large"
|
||||
msgstr "offset es demasiado grande"
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset fuera de límites"
|
||||
@ -3634,6 +3670,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "el tiempo de espera debe ser 0.0-100.0 segundos"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "tiempo muerto debe ser >= 0.0"
|
||||
@ -3893,6 +3933,19 @@ msgstr "zi debe ser de tipo flotante"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi debe ser una forma (n_section,2)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "El código terminó su ejecución. Esperando para recargar.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr "Frecuencia capturada por encima de la capacidad. Captura en pausa."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_lenght debe ser > 0"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Presiona cualquier tecla para entrar al REPL. Usa CTRL-D para recargar."
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||
"Language-Team: fil\n"
|
||||
@ -18,7 +18,13 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
@ -539,6 +545,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -572,6 +590,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Hindi maaaring output ang mga parehong channel sa parehong pin"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Hindi maaring mabasa kapag walang MISO pin."
|
||||
@ -615,6 +637,10 @@ msgstr "Hindi puedeng hindi sigurado ang get sizeof scalar"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Hindi maaring isulat kapag walang MOSI pin."
|
||||
@ -948,6 +974,10 @@ msgstr "Mayroong file"
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -957,10 +987,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1475,7 +1501,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1538,10 +1564,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1582,7 +1604,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2004,6 +2026,10 @@ msgstr "Hindi sinusuportahang operasyon"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Hindi suportado ang pull value."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3047,7 +3073,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3185,6 +3211,14 @@ msgstr "non-keyword arg sa huli ng */**"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "non-keyword arg sa huli ng keyword arg"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3257,6 +3291,10 @@ msgstr "odd-length string"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#, fuzzy
|
||||
msgid "offset out of bounds"
|
||||
@ -3607,6 +3645,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
msgid "timeout must be >= 0.0"
|
||||
|
175
locale/fr.po
175
locale/fr.po
@ -7,23 +7,31 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"PO-Revision-Date: 2020-12-08 19:21+0000\n"
|
||||
"Last-Translator: Antonin ENFRUN <antonin.e@me.com>\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-12-29 20:38+0000\n"
|
||||
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.4-dev\n"
|
||||
"X-Generator: Weblate 4.4.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Fin d'exécution du code. En attente de rechargement.\n"
|
||||
"Exécution du code complété.\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Exécution du code arrêté par l'auto-rechargement.\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -51,7 +59,7 @@ msgstr " sortie :\n"
|
||||
#: py/objstr.c
|
||||
#, c-format
|
||||
msgid "%%c requires int or char"
|
||||
msgstr "%%c nécessite un entier 'int' ou un caractère 'char'"
|
||||
msgstr "%%c nécessite un chiffre entier 'int' ou un caractère 'char'"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
@ -66,7 +74,7 @@ msgstr "Échec de %q : %d"
|
||||
|
||||
#: shared-bindings/microcontroller/Pin.c
|
||||
msgid "%q in use"
|
||||
msgstr "%q utilisé"
|
||||
msgstr "%q en cours d'utilisation"
|
||||
|
||||
#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
#: ports/cxd56/common-hal/pulseio/PulseIn.c
|
||||
@ -106,19 +114,19 @@ msgstr "%q est hors de porté"
|
||||
|
||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||
msgid "%q pin invalid"
|
||||
msgstr "PIN %q invalide"
|
||||
msgstr "broche %q invalide"
|
||||
|
||||
#: shared-bindings/fontio/BuiltinFont.c
|
||||
msgid "%q should be an int"
|
||||
msgstr "%q doit être un entier (int)"
|
||||
msgstr "%q doit être un chiffre entier (int)"
|
||||
|
||||
#: py/bc.c py/objnamedtuple.c
|
||||
msgid "%q() takes %d positional arguments but %d were given"
|
||||
msgstr "%q() prend %d arguments positionnels mais %d ont été donnés"
|
||||
msgstr "%q() prend %d paramêtres positionnels mais %d ont été donnés"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "'%q' argument required"
|
||||
msgstr "'%q' argument requis"
|
||||
msgstr "paramêtre '%q' requis"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object cannot assign attribute '%q'"
|
||||
@ -189,7 +197,7 @@ msgstr "'%s' attend un entier"
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
msgid "'%s' expects at most r%d"
|
||||
msgstr "'%s' s'attend au plus à r%d"
|
||||
msgstr "'%s' attend au plus à r%d"
|
||||
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
@ -429,8 +437,8 @@ msgid ""
|
||||
"Auto-reload is on. Simply save files over USB to run them or enter REPL to "
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
"Auto-chargement activé. Copiez simplement les fichiers en USB pour les "
|
||||
"lancer ou entrez sur REPL pour le désactiver.\n"
|
||||
"Auto-chargement activé. Copiez ou sauvegardez les fichiers via USB pour les "
|
||||
"lancer ou démarrez le REPL pour le désactiver.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
@ -547,6 +555,22 @@ msgstr "Les blocs CBC doivent être des multiples de 16 octets"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Appelez super () .__ init __ () avant d'accéder à l'objet natif."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr "L'alarme peut seulement être depuis TRC IO depuis le someil profond."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
"L'alarme peut seulement être sur une broche basse tandis que d'autres "
|
||||
"alarment sont sur des broches hautes depuis le someil profond."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
"L'alarme peut seulement être sur deux broches basses depuis le someil "
|
||||
"profond."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "Impossible de définir CCCD sur une caractéristique locale"
|
||||
@ -582,6 +606,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Les 2 canaux de sortie ne peuvent être sur la même broche"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr "Ne peut tirer sur une broche d'entrée seule."
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Impossible de lire sans broche MISO."
|
||||
@ -627,6 +655,10 @@ msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
"Impossible de faire varier la fréquence sur une minuterie déjà utilisée"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr "Ne peut reveillé sur le board de broche. Seuleument à niveau."
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Impossible d'écrire sans broche MOSI."
|
||||
@ -870,7 +902,7 @@ msgstr "Attendu une adresse"
|
||||
|
||||
#: shared-bindings/alarm/__init__.c
|
||||
msgid "Expected an alarm"
|
||||
msgstr ""
|
||||
msgstr "Une alarme était prévue"
|
||||
|
||||
#: shared-module/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
@ -960,6 +992,10 @@ msgstr "Le fichier existe"
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filtre trop complexe"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr "Image du microprogramme est invalide"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Format non supporté"
|
||||
@ -969,10 +1005,6 @@ msgstr "Format non supporté"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "Le framebuffer nécessite %d octets"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr "La fréquence capturée est au delà des capacités. Capture en pause."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1021,7 +1053,7 @@ msgstr "I2SOut n'est pas disponible"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
|
||||
msgstr ""
|
||||
msgstr "IOs 0, 2 & 4 ne supportent pas l'éleveuse interne en mode someil"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
#, c-format
|
||||
@ -1109,7 +1141,7 @@ msgstr "Fréquence de PWM invalide"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||
msgid "Invalid Pin"
|
||||
msgstr ""
|
||||
msgstr "Broche invalide"
|
||||
|
||||
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid argument"
|
||||
@ -1491,9 +1523,9 @@ msgstr ""
|
||||
"Prise en charge uniquement des monochromes, 4 bpp ou 8 bpp indexés et 16 bpp "
|
||||
"ou plus : %d bpp fournis"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
msgstr "Seulement une alarme alarm.time peut être réglée."
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
@ -1557,10 +1589,6 @@ msgstr "La broche doit prendre en charge les interruptions matérielles"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "Numéro de broche déjà réservé par EXTI"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr "PinAlarm pas encore implémenté"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1574,7 +1602,7 @@ msgstr ""
|
||||
|
||||
#: py/builtinhelp.c
|
||||
msgid "Plus any modules on the filesystem\n"
|
||||
msgstr "Ainsi que tout autre module présent sur le système de fichiers\n"
|
||||
msgstr "Ainsi que tout autres modules présents sur le système de fichiers\n"
|
||||
|
||||
#: shared-module/vectorio/Polygon.c
|
||||
msgid "Polygon needs at least 3 points"
|
||||
@ -1606,10 +1634,13 @@ msgstr "Le tampon de préfixe doit être sur le tas"
|
||||
#: main.c
|
||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
"Appuyez sur n'importe quelle touche pour utiliser le REPL. Utilisez CTRL-D "
|
||||
"pour relancer.\n"
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
"Feinte de someil profond jusqu'à l'alarme, Ctrl-C ou écriture au fichier.\n"
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
msgid "Pull not used when direction is output."
|
||||
@ -1857,7 +1888,7 @@ msgstr "La largeur de la tuile doit diviser exactement la largeur de l'image"
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "Time is in the past."
|
||||
msgstr ""
|
||||
msgstr "L'heure est dans le passé."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
#, c-format
|
||||
@ -1976,7 +2007,7 @@ msgstr "Impossible d'écrire sur la mémoire non-volatile."
|
||||
|
||||
#: shared-bindings/alarm/SleepMemory.c
|
||||
msgid "Unable to write to sleep_memory."
|
||||
msgstr ""
|
||||
msgstr "Impossibilitée d'écriture à sleep_memory."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
@ -2045,6 +2076,10 @@ msgstr "Opération non supportée"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Valeur de tirage 'pull' non supportée."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr "Mise-à-jour échouée"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -2113,7 +2148,7 @@ msgstr "Le mot de passe WiFi doit faire entre 8 et 63 caractères"
|
||||
|
||||
#: main.c
|
||||
msgid "Woken up by alarm.\n"
|
||||
msgstr ""
|
||||
msgstr "Réveil par alarme.\n"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
||||
msgid "Writes not supported on Characteristic"
|
||||
@ -2438,7 +2473,7 @@ msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray_operators.c
|
||||
msgid "cannot cast output with casting rule"
|
||||
msgstr ""
|
||||
msgstr "output ne peut être projeté sans règle de projection"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "cannot create '%q' instances"
|
||||
@ -2616,7 +2651,7 @@ msgstr "end_x doit être un entier 'int'"
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "epoch_time not supported on this board"
|
||||
msgstr ""
|
||||
msgstr "epoch_time n'est pas supporté sur ce panneau"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#, c-format
|
||||
@ -2898,11 +2933,11 @@ msgstr "l'entrée doit être un tenseur de rang 2"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/user/user.c
|
||||
msgid "input must be an ndarray"
|
||||
msgstr ""
|
||||
msgstr "l'entrée doit être un ndarray"
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "input must be one-dimensional"
|
||||
msgstr ""
|
||||
msgstr "l'entrée doit être uni-dimensionelle"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "input must be square matrix"
|
||||
@ -2918,7 +2953,7 @@ msgstr "les vecteurs d'entrée doivent être de longueur égale"
|
||||
|
||||
#: extmod/ulab/code/poly/poly.c
|
||||
msgid "inputs are not iterable"
|
||||
msgstr ""
|
||||
msgstr "les entrées ne sont pas itérables"
|
||||
|
||||
#: py/parsenum.c
|
||||
msgid "int() arg 2 must be >= 2 and <= 36"
|
||||
@ -2992,7 +3027,7 @@ msgstr "syntaxe invalide pour un nombre"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "io must be rtc io"
|
||||
msgstr ""
|
||||
msgstr "io doit être rtc io"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "issubclass() arg 1 must be a class"
|
||||
@ -3093,12 +3128,12 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "max_length doit être 0-%d lorsque fixed_length est %s"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_length doit être > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr "max_length doit être >= 0"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
msgstr ""
|
||||
msgstr "nombre maximal de dimensions est 4"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "maximum recursion depth exceeded"
|
||||
@ -3232,9 +3267,17 @@ msgstr "argument non-nommé après */**"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "argument non-nommé après argument nommé"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr "le délai non-zéro doit être > 0.01"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr "le délai non-zéro doit être >= interval"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
msgstr "norm est défini pour des tableaux 1D et 2D"
|
||||
|
||||
#: shared-bindings/_bleio/UUID.c
|
||||
msgid "not a 128-bit UUID"
|
||||
@ -3303,7 +3346,11 @@ msgstr "chaîne de longueur impaire"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
msgstr "offset est trop large"
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr "offset doit être >= 0"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
@ -3329,11 +3376,11 @@ msgstr "les opérandes ne pouvaient pas être diffusés ensemble"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "operation is implemented for 1D Boolean arrays only"
|
||||
msgstr ""
|
||||
msgstr "opération implémentée que pour des tableaux 1D booléennes"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "operation is not implemented for flattened array"
|
||||
msgstr ""
|
||||
msgstr "l'opération n'est pas implémentée pour un tableau applatit"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "operation is not implemented on ndarrays"
|
||||
@ -3474,7 +3521,7 @@ msgstr "la longueur requise est %d mais l'objet est long de %d"
|
||||
|
||||
#: extmod/ulab/code/ndarray_operators.c
|
||||
msgid "results cannot be cast to specified type"
|
||||
msgstr ""
|
||||
msgstr "résultats ne peuvent être transformé au type spécifié"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "return annotation must be an identifier"
|
||||
@ -3496,7 +3543,7 @@ msgstr "rgb_pins[%d] n'est pas sur le même port que l'horloge"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "roll argument must be an ndarray"
|
||||
msgstr ""
|
||||
msgstr "paramêtre roll doit être un ndarray"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "rsplit(None,n)"
|
||||
@ -3524,7 +3571,7 @@ msgstr "compilation de script non supportée"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "shape must be a tuple"
|
||||
msgstr ""
|
||||
msgstr "forme doit être un tuple"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "sign not allowed in string format specifier"
|
||||
@ -3656,6 +3703,10 @@ msgstr "le délai d'expiration a dépassé la valeur maximale prise en charge"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "le délai doit être compris entre 0.0 et 100.0 secondes"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr "le délai (timeout) doit être < 655.35 secondes"
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "'timeout' doit être >= 0.0"
|
||||
@ -3674,7 +3725,7 @@ msgstr "'timestamp' hors bornes pour 'time_t' de la plateforme"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
msgstr "tobytes ne peut être appelé que pour des tableaux dense"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
@ -3695,7 +3746,7 @@ msgstr "trapz n'est défini que pour des tableaux 1D de longueur égale"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "trigger level must be 0 or 1"
|
||||
msgstr ""
|
||||
msgstr "niveau du déclencheur doit être 0 ou 1"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "tuple index out of range"
|
||||
@ -3841,7 +3892,7 @@ msgstr "les vecteurs doivent avoir la même longueur"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "wakeup conflict"
|
||||
msgstr ""
|
||||
msgstr "conflit au réveil"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "watchdog not initialized"
|
||||
@ -3861,11 +3912,11 @@ msgstr "la fenêtre doit être <= intervalle"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "wrong axis index"
|
||||
msgstr ""
|
||||
msgstr "index d'axe incorrecte"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "wrong axis specified"
|
||||
msgstr ""
|
||||
msgstr "axe incorrecte spécifiée"
|
||||
|
||||
#: extmod/ulab/code/vector/vectorise.c
|
||||
msgid "wrong input type"
|
||||
@ -3915,6 +3966,22 @@ msgstr "zi doit être de type float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi doit être de forme (n_section, 2)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Fin d'exécution du code. En attente de rechargement.\n"
|
||||
|
||||
#~ msgid "PinAlarm not yet implemented"
|
||||
#~ msgstr "PinAlarm pas encore implémenté"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr "La fréquence capturée est au delà des capacités. Capture en pause."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_length doit être > 0"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger."
|
||||
|
68
locale/hi.po
68
locale/hi.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -19,7 +19,13 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
@ -533,6 +539,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -565,6 +583,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr ""
|
||||
@ -608,6 +630,10 @@ msgstr ""
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr ""
|
||||
@ -935,6 +961,10 @@ msgstr ""
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -944,10 +974,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1457,7 +1483,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1519,10 +1545,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1563,7 +1585,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1982,6 +2004,10 @@ msgstr ""
|
||||
msgid "Unsupported pull value."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3000,7 +3026,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3138,6 +3164,14 @@ msgstr ""
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3210,6 +3244,10 @@ msgstr ""
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
@ -3555,6 +3593,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr ""
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -18,7 +18,13 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
@ -539,6 +545,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -572,6 +590,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Impossibile dare in output entrambi i canal sullo stesso pin"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Impossibile leggere senza pin MISO."
|
||||
@ -616,6 +638,10 @@ msgstr "Impossibile ricavare la grandezza scalare di sizeof inequivocabilmente"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Impossibile scrivere senza pin MOSI."
|
||||
@ -948,6 +974,10 @@ msgstr "File esistente"
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -957,10 +987,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1480,7 +1506,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1547,10 +1573,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1592,7 +1614,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2016,6 +2038,10 @@ msgstr "Operazione non supportata"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Valore di pull non supportato."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3050,7 +3076,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3189,6 +3215,14 @@ msgstr "argomento non nominato dopo */**"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "argomento non nominato seguito da argomento nominato"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3263,6 +3297,10 @@ msgstr "stringa di lunghezza dispari"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#, fuzzy
|
||||
msgid "offset out of bounds"
|
||||
@ -3615,6 +3653,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
msgid "timeout must be >= 0.0"
|
||||
|
83
locale/ja.po
83
locale/ja.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-11-27 18:34+0000\n"
|
||||
"Last-Translator: sporeball <sporeballdev@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
@ -21,10 +21,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"コードの実行が完了しました。リロードを待っています。\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -544,6 +548,18 @@ msgstr ""
|
||||
"ネイティブオブジェクトにアクセスする前にsuper().__init__()を呼び出してくださ"
|
||||
"い"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "ローカルのCharacteristicにはCCCDを設定できません"
|
||||
@ -576,6 +592,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "同じピン上の両チャネルに出力できません"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "MISOピンなしで読み込めません"
|
||||
@ -619,6 +639,10 @@ msgstr "スカラのサイズを曖昧さなしに取得できません"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "使用中のタイマー上では周波数を変えられません"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "MOSIピンなしで書き込みできません"
|
||||
@ -948,6 +972,10 @@ msgstr "ファイルが存在します"
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "非対応の形式"
|
||||
@ -957,10 +985,6 @@ msgstr "非対応の形式"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr "キャプチャした周波数は能力を超えています。キャプチャ停止"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr "このタイマーを使う既存のPWMOutと周波数を一致させる必要があります"
|
||||
@ -1474,7 +1498,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1537,10 +1561,6 @@ msgstr "ピンはハードウェア割り込みに対応していなければな
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "ピン番号はすでにEXTIによって予約されています"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1581,7 +1601,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2007,6 +2027,10 @@ msgstr "非対応の操作"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "非対応のpull値"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3030,8 +3054,8 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_lengthは0より大きくなければなりません"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
@ -3168,6 +3192,14 @@ msgstr "*/** の後に非キーワード引数は置けません"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "キーワード引数の後に非キーワード引数は置けません"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3240,6 +3272,10 @@ msgstr "奇数長の文字列"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
@ -3588,6 +3624,10 @@ msgstr "タイムアウト長は対応する最大値を超えています"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "timeoutは0.0〜100.0秒でなければなりません"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "timeoutは0.0以上でなければなりません"
|
||||
@ -3847,6 +3887,19 @@ msgstr "ziはfloat値でなければなりません"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "コードの実行が完了しました。リロードを待っています。\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr "キャプチャした周波数は能力を超えています。キャプチャ停止"
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_lengthは0より大きくなければなりません"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr "何らかのキーを押すとREPLに入ります。CTRL-Dでリロード。"
|
||||
|
||||
|
75
locale/ko.po
75
locale/ko.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
|
||||
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -20,10 +20,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"실행 완료 코드. 재장전 을 기다리는 중입니다\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -538,6 +542,18 @@ msgstr ""
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -570,6 +586,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "MISO핀이 없으면 읽을 수 없습니다"
|
||||
@ -613,6 +633,10 @@ msgstr ""
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr ""
|
||||
@ -940,6 +964,10 @@ msgstr ""
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr ""
|
||||
@ -949,10 +977,6 @@ msgstr ""
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1462,7 +1486,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1524,10 +1548,6 @@ msgstr ""
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1568,7 +1588,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1988,6 +2008,10 @@ msgstr ""
|
||||
msgid "Unsupported pull value."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3006,7 +3030,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
@ -3144,6 +3168,14 @@ msgstr ""
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3216,6 +3248,10 @@ msgstr ""
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
@ -3561,6 +3597,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr ""
|
||||
@ -3820,6 +3860,13 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "실행 완료 코드. 재장전 을 기다리는 중입니다\n"
|
||||
|
||||
#~ msgid "%q indices must be integers, not %s"
|
||||
#~ msgstr "%q 인덱스는 %s 가 아닌 정수 여야합니다"
|
||||
|
||||
|
213
locale/nl.po
213
locale/nl.po
@ -5,24 +5,28 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"PO-Revision-Date: 2020-10-27 16:47+0000\n"
|
||||
"Last-Translator: Jelle Jager <jell@jjc.id.au>\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-12-23 20:14+0000\n"
|
||||
"Last-Translator: _fonzlate <vooralfred@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
"X-Generator: Weblate 4.4.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code is uitgevoerd. Wachten op herladen.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -294,7 +298,7 @@ msgstr "Adres type buiten bereik"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
msgstr "Alle CAN-peripherals zijn in gebruik"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
@ -304,7 +308,7 @@ msgstr "Alle I2C peripherals zijn in gebruik"
|
||||
#: ports/esp32s2/common-hal/frequencyio/FrequencyIn.c
|
||||
#: ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
msgstr "Alle PCNT-eenheden zijn in gebruik"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
@ -427,7 +431,7 @@ msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
msgstr "Baudrate wordt niet ondersteund door randapparatuur"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -441,7 +445,7 @@ msgstr "Bit clock en word select moeten een clock eenheid delen"
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||
msgstr ""
|
||||
msgstr "Bitdiepte moet tussen 1 en 6 liggen, niet %d"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Bit depth must be multiple of 8."
|
||||
@ -540,6 +544,18 @@ msgstr "CBC blocks moeten meervouden van 16 bytes zijn"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Roep super().__init__() aan voor toegang native object."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "Kan CCCD niet toewijzen aan lokaal Characteristic"
|
||||
@ -573,6 +589,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Output van beide kanalen kan niet op dezelfde pin"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Kan niet lezen zonder MISO pin."
|
||||
@ -617,6 +637,10 @@ msgstr "Kan niet ondubbelzinning sizeof scalar verkrijgen"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "Kan de frequentie van een timer die al in gebruik is niet variëren"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Kan niet schrijven zonder MOSI pin."
|
||||
@ -859,7 +883,7 @@ msgstr "Verwachtte een adres"
|
||||
|
||||
#: shared-bindings/alarm/__init__.c
|
||||
msgid "Expected an alarm"
|
||||
msgstr ""
|
||||
msgstr "Verwachtte een alarm"
|
||||
|
||||
#: shared-module/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
@ -876,7 +900,7 @@ msgstr "FFT alleen voor ndarrays gedefineerd"
|
||||
|
||||
#: extmod/ulab/code/fft/fft.c
|
||||
msgid "FFT is implemented for linear arrays only"
|
||||
msgstr ""
|
||||
msgstr "FFT is alleen geïmplementeerd voor lineaire arrays"
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||
msgid "Failed SSL handshake"
|
||||
@ -948,6 +972,10 @@ msgstr "Bestand bestaat"
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filters zijn te complex"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr "Firmware image is ongeldig"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Formaat wordt niet ondersteund"
|
||||
@ -957,11 +985,6 @@ msgstr "Formaat wordt niet ondersteund"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "Framebuffer benodigd %d bytes"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
"De vastgelegde frequentie is boven de capaciteit. Vastleggen gepauzeerd."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1010,7 +1033,7 @@ msgstr "I2SOut is niet beschikbaar"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
|
||||
msgstr ""
|
||||
msgstr "IO's 0, 2 en 4 ondersteunen geen interne pullup in slaapstand"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
#, c-format
|
||||
@ -1031,7 +1054,7 @@ msgstr "Incorrecte buffer grootte"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
msgstr "De initialisatie is mislukt vanwege een gebrek aan geheugen"
|
||||
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
msgid "Input taking too long"
|
||||
@ -1098,7 +1121,7 @@ msgstr "Ongeldige PWM frequentie"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||
msgid "Invalid Pin"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige Pin"
|
||||
|
||||
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid argument"
|
||||
@ -1296,7 +1319,7 @@ msgstr "Een meervoud van 6 rgb pinnen moet worden gebruikt, niet %d"
|
||||
|
||||
#: ports/esp32s2/common-hal/nvm/ByteArray.c
|
||||
msgid "NVS Error"
|
||||
msgstr ""
|
||||
msgstr "NVS-fout"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "Name too long"
|
||||
@ -1319,7 +1342,7 @@ msgstr "Geen DMA kanaal gevonden"
|
||||
#: shared-module/adafruit_bus_device/I2CDevice.c
|
||||
#, c-format
|
||||
msgid "No I2C device at address: %x"
|
||||
msgstr ""
|
||||
msgstr "Geen I2C-apparaat op adres: %x"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/stm/common-hal/busio/SPI.c
|
||||
@ -1461,7 +1484,7 @@ msgstr "Alleen IPv4 adressen worden ondersteund"
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||
msgid "Only IPv4 sockets supported"
|
||||
msgstr ""
|
||||
msgstr "Alleen IPv4-sockets ondersteund"
|
||||
|
||||
#: shared-module/displayio/OnDiskBitmap.c
|
||||
#, c-format
|
||||
@ -1480,9 +1503,9 @@ msgstr ""
|
||||
"Alleen monochrome en 4bpp of 8bpp, en 16bpp of grotere geïndiceerde BMP's "
|
||||
"zijn ondersteund: %d bpp is gegeven"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
msgstr "Slechts één alarm.time alarm kan worden ingesteld."
|
||||
|
||||
#: shared-module/displayio/ColorConverter.c
|
||||
msgid "Only one color can be transparent at a time"
|
||||
@ -1545,10 +1568,6 @@ msgstr "Pin moet hardware interrupts ondersteunen"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "Pin nummer al gereserveerd door EXTI"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1594,9 +1613,11 @@ msgstr "Prefix buffer moet op de heap zijn"
|
||||
#: main.c
|
||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
"Druk een willekeurige toets om de REPL te starten. Gebruik CTRL+D om te "
|
||||
"herstarten.\n"
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1769,7 +1790,7 @@ msgstr "Geef op zijn minst 1 UART pin op"
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "Supply one of monotonic_time or epoch_time"
|
||||
msgstr ""
|
||||
msgstr "Geef monotonic_time of epoch_time"
|
||||
|
||||
#: shared-bindings/gnss/GNSS.c
|
||||
msgid "System entry must be gnss.SatelliteSystem"
|
||||
@ -1844,7 +1865,7 @@ msgstr "Tile breedte moet exact de bitmap breedte verdelen"
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "Time is in the past."
|
||||
msgstr ""
|
||||
msgstr "Tijdstip ligt in het verleden."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
#, c-format
|
||||
@ -1959,7 +1980,7 @@ msgstr "Niet in staat om naar nvm te schrijven."
|
||||
|
||||
#: shared-bindings/alarm/SleepMemory.c
|
||||
msgid "Unable to write to sleep_memory."
|
||||
msgstr ""
|
||||
msgstr "Kan niet naar sleep_memory schrijven."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
@ -2027,6 +2048,10 @@ msgstr "Niet-ondersteunde operatie"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Niet-ondersteunde pull-waarde."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr "Update Mislukt"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -2094,7 +2119,7 @@ msgstr "WiFi wachtwoord moet tussen 8 en 63 karakters bevatten"
|
||||
|
||||
#: main.c
|
||||
msgid "Woken up by alarm.\n"
|
||||
msgstr ""
|
||||
msgstr "Gewekt door alarm.\n"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
||||
msgid "Writes not supported on Characteristic"
|
||||
@ -2151,7 +2176,7 @@ msgstr "argsort argument moet een ndarray zijn"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "argsort is not implemented for flattened arrays"
|
||||
msgstr ""
|
||||
msgstr "argsort wordt niet geïmplementeerd voor vlakke arrays"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "argument has wrong type"
|
||||
@ -2176,7 +2201,7 @@ msgstr "argumenten moeten ndarrays zijn"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "array and index length must be equal"
|
||||
msgstr ""
|
||||
msgstr "array en indexlengte moeten gelijk zijn"
|
||||
|
||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
@ -2185,7 +2210,7 @@ msgstr "array/bytes vereist aan de rechterkant"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "attempt to get (arg)min/(arg)max of empty sequence"
|
||||
msgstr ""
|
||||
msgstr "verzoek om (arg)min.(arg)max te krijgen van lege reeks"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
@ -2197,15 +2222,15 @@ msgstr "attributen nog niet ondersteund"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "axis is out of bounds"
|
||||
msgstr ""
|
||||
msgstr "as is buiten bereik"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "axis must be None, or an integer"
|
||||
msgstr ""
|
||||
msgstr "as moet None of een integer zijn"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "axis too long"
|
||||
msgstr ""
|
||||
msgstr "as te lang"
|
||||
|
||||
#: py/builtinevex.c
|
||||
msgid "bad compile mode"
|
||||
@ -2411,7 +2436,7 @@ msgstr "kan niet schakelen tussen handmatige en automatische veld specificatie"
|
||||
|
||||
#: extmod/ulab/code/ndarray_operators.c
|
||||
msgid "cannot cast output with casting rule"
|
||||
msgstr ""
|
||||
msgstr "kan uitvoer niet converteren zonder conversieregel"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "cannot create '%q' instances"
|
||||
@ -2512,7 +2537,7 @@ msgstr "kon SD kaart versie niet bepalen"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "cross is defined for 1D arrays of length 3"
|
||||
msgstr ""
|
||||
msgstr "kruis wordt gedefinieerd voor 1D-arrays van lengte 3"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "data must be iterable"
|
||||
@ -2555,7 +2580,7 @@ msgstr "diff argument moet een ndarray zijn"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "differentiation order out of range"
|
||||
msgstr ""
|
||||
msgstr "differentiatievolgorde buiten bereik"
|
||||
|
||||
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
|
||||
#: shared-bindings/math/__init__.c
|
||||
@ -2588,7 +2613,7 @@ msgstr "end_x moet een int zijn"
|
||||
|
||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||
msgid "epoch_time not supported on this board"
|
||||
msgstr ""
|
||||
msgstr "epoch_time niet ondersteund op dit bord"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#, c-format
|
||||
@ -2678,7 +2703,7 @@ msgstr "eerste argument moet een functie zijn"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "first argument must be a tuple of ndarrays"
|
||||
msgstr ""
|
||||
msgstr "eerste argument moet een tupel van ndarrays zijn"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "first argument must be an iterable"
|
||||
@ -2735,7 +2760,7 @@ msgstr "functie heeft hetzelfde teken aan beide uiteinden van het interval"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "function is defined for ndarrays only"
|
||||
msgstr ""
|
||||
msgstr "functie is alleen gedefinieerd voor ndarrays"
|
||||
|
||||
#: py/argcheck.c
|
||||
#, c-format
|
||||
@ -2832,7 +2857,7 @@ msgstr "inline assembler moet een functie zijn"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "input and output shapes are not compatible"
|
||||
msgstr ""
|
||||
msgstr "in- en uitvoervormen zijn niet compatibel"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "input argument must be an integer or a 2-tuple"
|
||||
@ -2844,7 +2869,7 @@ msgstr "invoer array lengte moet een macht van 2 zijn"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "input arrays are not compatible"
|
||||
msgstr ""
|
||||
msgstr "input arrays zijn niet compatibel"
|
||||
|
||||
#: extmod/ulab/code/poly/poly.c
|
||||
msgid "input data must be an iterable"
|
||||
@ -2860,19 +2885,19 @@ msgstr "invoermatrix is singulier"
|
||||
|
||||
#: extmod/ulab/code/user/user.c
|
||||
msgid "input must be a dense ndarray"
|
||||
msgstr ""
|
||||
msgstr "invoer moet een gesloten ndarray zijn"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "input must be a tensor of rank 2"
|
||||
msgstr ""
|
||||
msgstr "invoer moet een tensor van rang 2 zijn"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c extmod/ulab/code/user/user.c
|
||||
msgid "input must be an ndarray"
|
||||
msgstr ""
|
||||
msgstr "invoer moet een ndarray zijn"
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "input must be one-dimensional"
|
||||
msgstr ""
|
||||
msgstr "invoer moet eendimensionaal zijn"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "input must be square matrix"
|
||||
@ -2888,7 +2913,7 @@ msgstr "invoervectors moeten van gelijke lengte zijn"
|
||||
|
||||
#: extmod/ulab/code/poly/poly.c
|
||||
msgid "inputs are not iterable"
|
||||
msgstr ""
|
||||
msgstr "invoer is niet itereerbaar"
|
||||
|
||||
#: py/parsenum.c
|
||||
msgid "int() arg 2 must be >= 2 and <= 36"
|
||||
@ -2962,7 +2987,7 @@ msgstr "ongeldige syntax voor nummer"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "io must be rtc io"
|
||||
msgstr ""
|
||||
msgstr "io moet rtc io zijn"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "issubclass() arg 1 must be a class"
|
||||
@ -3033,7 +3058,7 @@ msgstr "long int wordt niet ondersteund in deze build"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
msgstr "loopback + silent mode wordt niet ondersteund door randapparaat"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
@ -3062,12 +3087,12 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "max_length moet 0-%d zijn als fixed_length %s is"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_length moet >0 zijn"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
msgstr ""
|
||||
msgstr "maximaal aantal dimensies is 4"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "maximum recursion depth exceeded"
|
||||
@ -3075,11 +3100,11 @@ msgstr "maximale recursiediepte overschreden"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
msgstr "maxiter moet groter dan 0 zijn"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
msgstr "maxiter moet groter dan 0 zijn"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
@ -3200,9 +3225,17 @@ msgstr "niet-trefwoord argument na */**"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "niet-trefwoord argument na trefwoord argument"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
msgstr "norm is gedefinieerd voor 1D en 2D arrays"
|
||||
|
||||
#: shared-bindings/_bleio/UUID.c
|
||||
msgid "not a 128-bit UUID"
|
||||
@ -3270,7 +3303,11 @@ msgstr "string met oneven lengte"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
msgstr "compensatie is te groot"
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr "compensatie moet groter of gelijk 0 zijn"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
@ -3296,11 +3333,11 @@ msgstr "operands konden niet samen verzonden worden"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "operation is implemented for 1D Boolean arrays only"
|
||||
msgstr ""
|
||||
msgstr "operatie is alleen geïmplementeerd voor 1D Booleaanse arrays"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "operation is not implemented for flattened array"
|
||||
msgstr ""
|
||||
msgstr "operatie is niet geïmplementeerd voor vlakke array"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "operation is not implemented on ndarrays"
|
||||
@ -3439,7 +3476,7 @@ msgstr "gevraagde lengte is %d maar object heeft lengte %d"
|
||||
|
||||
#: extmod/ulab/code/ndarray_operators.c
|
||||
msgid "results cannot be cast to specified type"
|
||||
msgstr ""
|
||||
msgstr "resultaat kan niet naar gespecificeerd type geconverteerd worden"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "return annotation must be an identifier"
|
||||
@ -3461,7 +3498,7 @@ msgstr "rgb_pins[%d] bevindt zich niet op dezelfde poort als klok"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "roll argument must be an ndarray"
|
||||
msgstr ""
|
||||
msgstr "roll argument moet een ndarray zijn"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "rsplit(None,n)"
|
||||
@ -3489,7 +3526,7 @@ msgstr "scriptcompilatie wordt niet ondersteund"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "shape must be a tuple"
|
||||
msgstr ""
|
||||
msgstr "vorm moet een tupel zijn"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "sign not allowed in string format specifier"
|
||||
@ -3620,6 +3657,10 @@ msgstr "time-outduur is groter dan de ondersteunde maximale waarde"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "timeout moet tussen 0.0 en 100.0 seconden zijn"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "timeout moet groter dan 0.0 zijn"
|
||||
@ -3638,7 +3679,7 @@ msgstr "timestamp buiten bereik voor platform time_t"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
msgstr "tobytes kunnen alleen ingeroepen worden voor gesloten arrays"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
@ -3659,7 +3700,7 @@ msgstr "trapz is gedefinieerd voor eendimensionale arrays van gelijke lengte"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "trigger level must be 0 or 1"
|
||||
msgstr ""
|
||||
msgstr "triggerniveau moet 0 of 1 zijn"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "tuple index out of range"
|
||||
@ -3672,12 +3713,12 @@ msgstr "tuple of lijst heeft onjuiste lengte"
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
msgstr "twai_driver_install geeft esp-idf fout #%d"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
msgstr "twai_start geeft esp-idf error #%d"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
@ -3805,11 +3846,11 @@ msgstr "vectoren moeten van gelijke lengte zijn"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
|
||||
msgid "wakeup conflict"
|
||||
msgstr ""
|
||||
msgstr "conflict bij ontwaken"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "watchdog not initialized"
|
||||
msgstr ""
|
||||
msgstr "watchdog niet geïnitialiseerd"
|
||||
|
||||
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||
msgid "watchdog timeout must be greater than 0"
|
||||
@ -3825,11 +3866,11 @@ msgstr "window moet <= interval zijn"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "wrong axis index"
|
||||
msgstr ""
|
||||
msgstr "foute index voor as"
|
||||
|
||||
#: extmod/ulab/code/ulab_create.c
|
||||
msgid "wrong axis specified"
|
||||
msgstr ""
|
||||
msgstr "onjuiste as gespecificeerd"
|
||||
|
||||
#: extmod/ulab/code/vector/vectorise.c
|
||||
msgid "wrong input type"
|
||||
@ -3879,6 +3920,28 @@ msgstr "zi moet van type float zijn"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi moet vorm (n_section, 2) hebben"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Code is uitgevoerd. Wachten op herladen.\n"
|
||||
|
||||
#~ msgid "PinAlarm not yet implemented"
|
||||
#~ msgstr "PinAlarm nog niet geïmplementeerd"
|
||||
|
||||
#~ msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
#~ msgstr ""
|
||||
#~ "Simuleert diepe slaapstand tot alarm, een willekeurige toets of schrijven "
|
||||
#~ "naar bestand.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr ""
|
||||
#~ "De vastgelegde frequentie is boven de capaciteit. Vastleggen gepauzeerd."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_length moet >0 zijn"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Druk een willekeurige toets om de REPL te starten. Gebruik CTRL+D om te "
|
||||
|
83
locale/pl.po
83
locale/pl.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-12-02 20:29+0000\n"
|
||||
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
||||
"Language-Team: pl\n"
|
||||
@ -21,10 +21,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Kod wykonany. Czekam na przeładowanie.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -542,6 +546,18 @@ msgstr "Bloki CBC muszą być wielokrotnościami 16 bajtów"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr ""
|
||||
@ -574,6 +590,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Nie można mieć obu kanałów na tej samej nóżce"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Nie można czytać bez nóżki MISO."
|
||||
@ -617,6 +637,10 @@ msgstr "Wielkość skalara jest niejednoznaczna"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "Nie można zmieniać częstotliwości timera, który jest już używany"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Nie można pisać bez nóżki MOSI."
|
||||
@ -948,6 +972,10 @@ msgstr "Plik istnieje"
|
||||
msgid "Filters too complex"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Nie wspierany format"
|
||||
@ -957,10 +985,6 @@ msgstr "Nie wspierany format"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "Bufor ramki wymaga %d bajtów"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr "Uzyskana częstotliwość jest niemożliwa. Spauzowano."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1473,7 +1497,7 @@ msgid ""
|
||||
"%d bpp given"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1535,10 +1559,6 @@ msgstr "Pin musi obsługiwać przerwania sprzętowe"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1579,7 +1599,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1998,6 +2018,10 @@ msgstr "Zła operacja"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Zła wartość podciągnięcia."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3023,8 +3047,8 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_length musi być > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
@ -3161,6 +3185,14 @@ msgstr "argument nienazwany po */**"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "argument nienazwany po nazwanym"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3233,6 +3265,10 @@ msgstr "łańcuch o nieparzystej długości"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset poza zakresem"
|
||||
@ -3580,6 +3616,10 @@ msgstr ""
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "timeout musi być >= 0.0"
|
||||
@ -3839,6 +3879,19 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Kod wykonany. Czekam na przeładowanie.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr "Uzyskana częstotliwość jest niemożliwa. Spauzowano."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_length musi być > 0"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr "Dowolny klawisz aby uruchomić konsolę. CTRL-D aby przeładować."
|
||||
|
||||
|
110
locale/pt_BR.po
110
locale/pt_BR.po
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"PO-Revision-Date: 2020-12-16 17:00+0000\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-12-29 16:08+0000\n"
|
||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: pt_BR\n"
|
||||
@ -14,15 +14,23 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.4-dev\n"
|
||||
"X-Generator: Weblate 4.4.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"O código concluiu a execução. Esperando pela recarga.\n"
|
||||
"O código concluiu a sua execução.\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"O código parou através do auto-reload.\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -548,6 +556,21 @@ msgstr "Os blocos CBC devem ter múltiplos de 16 bytes"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Chame super().__init__() antes de acessar o objeto nativo."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr "O alarme só pode acontecer no RTC IO a partir do deep sleep."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
"O alarme só pode acontecer em um pino com nível baixo enquanto os outros "
|
||||
"alarmes só com nível alto a partir do deep sleep."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
"O alarme só é possível nos dois pinos com sinal baixo a partir do deep sleep."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "Não é possível definir o CCCD com a característica local"
|
||||
@ -566,7 +589,7 @@ msgstr "Não é possível excluir valores"
|
||||
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
|
||||
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
|
||||
msgid "Cannot get pull while in output mode"
|
||||
msgstr "Não é possível obter pull enquanto está modo de saída"
|
||||
msgstr "Não é possível obter (pull) enquanto estiver no modo saída"
|
||||
|
||||
#: ports/nrf/common-hal/microcontroller/Processor.c
|
||||
msgid "Cannot get temperature"
|
||||
@ -582,6 +605,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Não é possível emitir os dois canais no mesmo pino"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr "Não é possível obter (pull) nos pinos somente de entrada."
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Não é possível ler sem o pino MISO."
|
||||
@ -626,6 +653,10 @@ msgstr "Não é possível obter inequivocamente o tamanho do escalar"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "Não é possível variar a frequência em um timer que já esteja em uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr "Não é possível acordar (wake) no pino edge. Nível apenas."
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Não é possível fazer a escrita sem um pino MOSI."
|
||||
@ -957,6 +988,10 @@ msgstr "Arquivo já existe"
|
||||
msgid "Filters too complex"
|
||||
msgstr "Os filtros são muito complexos"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr "A imagem do firmware é invalida"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "O formato não é suportado"
|
||||
@ -966,11 +1001,6 @@ msgstr "O formato não é suportado"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "O Framebuffer requer %d bytes"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr ""
|
||||
"A frequência capturada está acima da capacidade. A captura está em pausa."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr ""
|
||||
@ -1323,7 +1353,7 @@ msgstr "Nenhum DAC no chip"
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Nenhum canal DMA encontrado"
|
||||
msgstr "Nenhum canal DMA foi encontrado"
|
||||
|
||||
#: shared-module/adafruit_bus_device/I2CDevice.c
|
||||
#, c-format
|
||||
@ -1488,7 +1518,7 @@ msgstr ""
|
||||
"São compatíveis apenas os BMPs monocromáticos, indexados em 4bpp ou 8bpp e "
|
||||
"16bpp ou superior: determinado %d bpp"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr "Apenas um alarme alarm.time pode ser definido."
|
||||
|
||||
@ -1554,10 +1584,6 @@ msgstr "O pino deve ser compatível com as interrupções do hardware"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "Número do PIN já está reservado através da EXTI"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr "PinAlarm ainda não foi implementado"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1608,9 +1634,9 @@ msgstr ""
|
||||
"Pressione qualquer tecla para entrar no REPL. Use CTRL-D para recarregar.\n"
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
"Simular o deep sleep até o alarme, até qualquer chave ou até a escrita do "
|
||||
"Tentando entrar no deep sleep até o alarme, pressione CTRL-C ou grave o "
|
||||
"arquivo.\n"
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2045,6 +2071,10 @@ msgstr "Operação não suportada"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "O valor pull não é compatível."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr "A atualização falou"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3085,8 +3115,8 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "o max_length deve ser 0-%d quando Fixed_length for %s"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_length deve ser > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr "max_length deve ser >= 0"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
@ -3225,6 +3255,14 @@ msgstr "um arg sem palavra-chave após */ **"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "um arg não-palavra-chave após a palavra-chave arg"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr "o tempo limite não zero deve ser > 0.01"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr "o tempo limite não zero deve ser >= intervalo"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr "a norma é definida para matrizes 1D e 2D"
|
||||
@ -3297,6 +3335,10 @@ msgstr "sequência com comprimento ímpar"
|
||||
msgid "offset is too large"
|
||||
msgstr "o offset é muito grande"
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr "o offset deve ser >= 0"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "desvio fora dos limites"
|
||||
@ -3649,6 +3691,10 @@ msgstr "a duração do tempo limite excedeu o valor máximo suportado"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "o tempo limite deve ser entre 0.0 a 100.0 segundos"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr "o tempo limite deve ser < 655.35 seg"
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "o tempo limite deve ser >= 0,0"
|
||||
@ -3908,6 +3954,28 @@ msgstr "zi deve ser de um tipo float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi deve estar na forma (n_section, 2)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "O código concluiu a execução. Esperando pela recarga.\n"
|
||||
|
||||
#~ msgid "PinAlarm not yet implemented"
|
||||
#~ msgstr "PinAlarm ainda não foi implementado"
|
||||
|
||||
#~ msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
#~ msgstr ""
|
||||
#~ "Simular o deep sleep até o alarme, até qualquer chave ou até a escrita do "
|
||||
#~ "arquivo.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr ""
|
||||
#~ "A frequência capturada está acima da capacidade. A captura está em pausa."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_length deve ser > 0"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Pressione qualquer tecla para entrar no REPL. Use CTRL-D para recarregar."
|
||||
|
101
locale/sv.po
101
locale/sv.po
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"PO-Revision-Date: 2020-12-07 20:26+0000\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-12-28 17:59+0000\n"
|
||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
@ -14,15 +14,19 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.4-dev\n"
|
||||
"X-Generator: Weblate 4.4.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Koden har kört klart. Väntar på omladdning.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -540,6 +544,18 @@ msgstr "CBC-block måste vara multiplar om 16 byte"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Anropa super().__init__() innan du använder det ursprungliga objektet."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "Kan inte ställa in CCCD på lokal karaktäristik"
|
||||
@ -573,6 +589,10 @@ msgstr ""
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Det går inte att mata ut båda kanalerna på samma pinne"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Kan inte läsa utan MISO-pinne."
|
||||
@ -617,6 +637,10 @@ msgstr "Kan inte entydigt få sizeof scalar"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "Det går inte att ändra frekvensen på en timer som redan används"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Kan inte skriva utan MOSI-pinne."
|
||||
@ -948,6 +972,10 @@ msgstr "Filen finns redan"
|
||||
msgid "Filters too complex"
|
||||
msgstr "Filter för komplexa"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr "Firmware-avbilden är ogiltig"
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Formatet stöds inte"
|
||||
@ -957,10 +985,6 @@ msgstr "Formatet stöds inte"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "Framebuffer kräver %d byte"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr "Infångningsfrekvens är för hög. Infångning pausad."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr "Frekvensen måste matcha befintlig PWMOut med denna timer"
|
||||
@ -1096,7 +1120,7 @@ msgstr "Ogiltig PWM-frekvens"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||
msgid "Invalid Pin"
|
||||
msgstr ""
|
||||
msgstr "Ogiltig pinne"
|
||||
|
||||
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid argument"
|
||||
@ -1478,7 +1502,7 @@ msgstr ""
|
||||
"Endast monokrom, indexerad 4 bpp eller 8 bpp och 16 bpp eller högre BMP: er "
|
||||
"stöds: %d bpp angiven"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr "Endast ett alarm.time kan ställas in."
|
||||
|
||||
@ -1542,10 +1566,6 @@ msgstr "Pinnen måste stödja hårdvaruavbrott"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "PInn-nummer redan reserverat av EXTI"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr "PinAlarm är inte implementerat ännu"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1591,9 +1611,11 @@ msgstr "Prefixbufferten måste finnas på heap"
|
||||
#: main.c
|
||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
"Tryck på valfri tangent för att gå in i REPL. Använd CTRL-D för att ladda "
|
||||
"om.\n"
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -1956,7 +1978,7 @@ msgstr "Det gick inte att skriva till nvm."
|
||||
|
||||
#: shared-bindings/alarm/SleepMemory.c
|
||||
msgid "Unable to write to sleep_memory."
|
||||
msgstr ""
|
||||
msgstr "Det gick inte att skriva till sleep_memory."
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
@ -2024,6 +2046,10 @@ msgstr "Åtgärd som inte stöds"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Ogiltigt Pull-värde."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr "Uppdateringen misslyckades"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -2088,7 +2114,7 @@ msgstr "WiFi-lösenord måste vara mellan 8 och 63 tecken"
|
||||
|
||||
#: main.c
|
||||
msgid "Woken up by alarm.\n"
|
||||
msgstr ""
|
||||
msgstr "Vaknade av larm.\n"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
||||
msgid "Writes not supported on Characteristic"
|
||||
@ -3056,8 +3082,8 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "max_length måste vara 0-%d när fixed_length är %s"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "max_length måste vara > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr "max_length måste vara >= 0"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
@ -3194,6 +3220,14 @@ msgstr "icke nyckelord arg efter * / **"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "icke nyckelord arg efter nyckelord arg"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr "Icke-noll timeout måste vara > 0.01"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr "Icke-noll timeout måste vara >= intervall"
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr "norm är definierad för 1D- och 2D-matriser"
|
||||
@ -3266,6 +3300,10 @@ msgstr "sträng har udda längd"
|
||||
msgid "offset is too large"
|
||||
msgstr "offset är för stor"
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr "offset måste vara >= 0"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset utanför gränserna"
|
||||
@ -3614,6 +3652,10 @@ msgstr "timeout-längd överskred det maximala värde som stöds"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "timeout måste vara 0.0-100.0 sekunder"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr "timeout måste vara < 655,35 sekunder"
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "timeout måste vara >= 0.0"
|
||||
@ -3873,6 +3915,25 @@ msgstr "zi måste vara av typ float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi måste vara i formen (n_section, 2)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Koden har kört klart. Väntar på omladdning.\n"
|
||||
|
||||
#~ msgid "PinAlarm not yet implemented"
|
||||
#~ msgstr "PinAlarm är inte implementerat ännu"
|
||||
|
||||
#~ msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
#~ msgstr "Fingerar djup sömn tills larm, valfri tangent eller filskrivning.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr "Infångningsfrekvens är för hög. Infångning pausad."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "max_length måste vara > 0"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr ""
|
||||
#~ "Tryck på valfri knapp för att gå in i REPL. Använd CTRL-D för att ladda "
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-12-14 12:59-0500\n"
|
||||
"POT-Creation-Date: 2020-12-23 23:04-0500\n"
|
||||
"PO-Revision-Date: 2020-11-19 01:28+0000\n"
|
||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
@ -20,10 +20,14 @@ msgstr ""
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Code done running. Waiting for reload.\n"
|
||||
"Code done running.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
"\n"
|
||||
"Dàimǎ yǐ wánchéng yùnxíng. Zhèngzài děngdài chóngxīn jiāzài.\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -542,6 +546,18 @@ msgstr "CBC kuài bì xū shì 16 zì jié de bèi shù"
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr "Zài fǎngwèn běn jī wùjiàn zhīqián diàoyòng super().__init__()."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on two low pins from deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
msgid "Can't set CCCD on local Characteristic"
|
||||
msgstr "Wúfǎ jiāng CCCD shèzhì wéi běndì tèzhēng"
|
||||
@ -574,6 +590,10 @@ msgstr "Nín wúfǎ sǎomiáo kuòzhǎn de, kě liánjiē de guǎnggào."
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
msgstr "Wúfǎ shūchū tóng yīgè yǐn jiǎo shàng de liǎng gè píndào"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
msgstr "Wúfǎ dòu qǔ méiyǒu MISO de yǐn jiǎo."
|
||||
@ -617,6 +637,10 @@ msgstr "Wúfǎ míngquè de huòdé biāoliàng de dàxiǎo"
|
||||
msgid "Cannot vary frequency on a timer that is already in use"
|
||||
msgstr "Wúfǎ gēnggǎi yǐ zài shǐyòng de jìshí qì shàng de pínlǜ"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
msgstr "Wúfǎ xiě rù MOSI de yǐn jiǎo."
|
||||
@ -946,6 +970,10 @@ msgstr "Wénjiàn cúnzài"
|
||||
msgid "Filters too complex"
|
||||
msgstr "guò lǜ qì tài fù zá"
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Firmware image is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Format not supported"
|
||||
msgstr "Bù zhīyuán géshì"
|
||||
@ -955,10 +983,6 @@ msgstr "Bù zhīyuán géshì"
|
||||
msgid "Framebuffer requires %d bytes"
|
||||
msgstr "zhēn huǎn chōng qū xū yào %d zì jié"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Frequency captured is above capability. Capture Paused."
|
||||
msgstr "Pínlǜ bǔhuò gāo yú nénglì. Bǔhuò zàntíng."
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Frequency must match existing PWMOut using this timer"
|
||||
msgstr "Pínlǜ bìxū yǔ shǐyòng cǐ jìshí qì de xiàn yǒu PWMOut xiāng pǐpèi"
|
||||
@ -1475,7 +1499,7 @@ msgstr ""
|
||||
"Jǐn zhīchí dān sè, suǒyǐn wéi 4bpp huò 8bpp yǐjí 16bpp huò gèng gāo de BMP: "
|
||||
"Gěi chū %d bpp"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
|
||||
msgid "Only one alarm.time alarm can be set."
|
||||
msgstr ""
|
||||
|
||||
@ -1538,10 +1562,6 @@ msgstr "Yǐn jiǎo bìxū zhīchí yìngjiàn zhōngduàn"
|
||||
msgid "Pin number already reserved by EXTI"
|
||||
msgstr "Zhēn hào yǐ bèi EXTI bǎoliú"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/__init__.c
|
||||
msgid "PinAlarm not yet implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -1586,7 +1606,7 @@ msgid "Press any key to enter the REPL. Use CTRL-D to reload.\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c
|
||||
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
|
||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
@ -2016,6 +2036,10 @@ msgstr "Bù zhīchí de cāozuò"
|
||||
msgid "Unsupported pull value."
|
||||
msgstr "Bù zhīchí de lādòng zhí."
|
||||
|
||||
#: ports/esp32s2/common-hal/dualbank/__init__.c
|
||||
msgid "Update Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||
#: ports/nrf/common-hal/_bleio/Descriptor.c
|
||||
msgid "Value length != required fixed length"
|
||||
@ -3047,8 +3071,8 @@ msgid "max_length must be 0-%d when fixed_length is %s"
|
||||
msgstr "Dāng gùdìng chángdù wèi %s shí, zuìdà chángdù bìxū wèi 0-%d"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
msgid "max_length must be > 0"
|
||||
msgstr "Max_length bìxū > 0"
|
||||
msgid "max_length must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "maximum number of dimensions is 4"
|
||||
@ -3185,6 +3209,14 @@ msgstr "zài */** zhīhòu fēi guānjiàn cí cānshù"
|
||||
msgid "non-keyword arg after keyword arg"
|
||||
msgstr "guānjiàn zì cānshù zhīhòu de fēi guānjiàn zì cānshù"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be > 0.01"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "non-zero timeout must be >= interval"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/linalg/linalg.c
|
||||
msgid "norm is defined for 1D and 2D arrays"
|
||||
msgstr ""
|
||||
@ -3257,6 +3289,10 @@ msgstr "jīshù zìfú chuàn"
|
||||
msgid "offset is too large"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/dualbank/__init__.c
|
||||
msgid "offset must be >= 0"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "piānlí biānjiè"
|
||||
@ -3604,6 +3640,10 @@ msgstr "chāoshí shíjiān chāoguò zuìdà zhīchí zhí"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "Chāo shí shíjiān bìxū wèi 0.0 Dào 100.0 Miǎo"
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "timeout must be < 655.35 secs"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "chāoshí bìxū shì >= 0.0"
|
||||
@ -3863,6 +3903,19 @@ msgstr "zi bìxū wèi fú diǎn xíng"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Dàimǎ yǐ wánchéng yùnxíng. Zhèngzài děngdài chóngxīn jiāzài.\n"
|
||||
|
||||
#~ msgid "Frequency captured is above capability. Capture Paused."
|
||||
#~ msgstr "Pínlǜ bǔhuò gāo yú nénglì. Bǔhuò zàntíng."
|
||||
|
||||
#~ msgid "max_length must be > 0"
|
||||
#~ msgstr "Max_length bìxū > 0"
|
||||
|
||||
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
#~ msgstr "Àn xià rènhé jiàn jìnrù REPL. Shǐyòng CTRL-D chóngxīn jiāzài."
|
||||
|
||||
|
23
main.c
23
main.c
@ -260,10 +260,10 @@ STATIC void print_code_py_status_message(safe_mode_t safe_mode) {
|
||||
STATIC bool run_code_py(safe_mode_t safe_mode) {
|
||||
bool serial_connected_at_start = serial_connected();
|
||||
#if CIRCUITPY_AUTORELOAD_DELAY_MS > 0
|
||||
if (serial_connected_at_start) {
|
||||
serial_write("\n");
|
||||
print_code_py_status_message(safe_mode);
|
||||
}
|
||||
print_safe_mode_message(safe_mode);
|
||||
serial_write("\n");
|
||||
#endif
|
||||
|
||||
pyexec_result_t result;
|
||||
@ -307,16 +307,17 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
|
||||
if (result.return_code & PYEXEC_FORCED_EXIT) {
|
||||
return reload_requested;
|
||||
}
|
||||
|
||||
if (reload_requested && result.return_code == PYEXEC_EXCEPTION) {
|
||||
serial_write_compressed(translate("\nCode stopped by auto-reload.\n"));
|
||||
} else {
|
||||
serial_write_compressed(translate("\nCode done running.\n"));
|
||||
}
|
||||
}
|
||||
|
||||
// Program has finished running.
|
||||
|
||||
// Display a different completion message if the user has no USB attached (cannot save files)
|
||||
if (!serial_connected_at_start) {
|
||||
serial_write_compressed(translate("\nCode done running. Waiting for reload.\n"));
|
||||
}
|
||||
|
||||
bool serial_connected_before_animation = false;
|
||||
bool serial_connected_before_animation = serial_connected();
|
||||
#if CIRCUITPY_DISPLAYIO
|
||||
bool refreshed_epaper_display = false;
|
||||
#endif
|
||||
@ -409,7 +410,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
|
||||
alarm_enter_deep_sleep();
|
||||
// Does not return.
|
||||
} else {
|
||||
serial_write_compressed(translate("Pretending to deep sleep until alarm, any key or file write.\n"));
|
||||
serial_write_compressed(translate("Pretending to deep sleep until alarm, CTRL-C or file write.\n"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -615,6 +616,10 @@ void gc_collect(void) {
|
||||
|
||||
background_callback_gc_collect();
|
||||
|
||||
#if CIRCUITPY_ALARM
|
||||
common_hal_alarm_gc_collect();
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_DISPLAYIO
|
||||
displayio_gc_collect();
|
||||
#endif
|
||||
|
37
ports/atmel-samd/boards/stackrduino_m0_pro/board.c
Normal file
37
ports/atmel-samd/boards/stackrduino_m0_pro/board.c
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
}
|
33
ports/atmel-samd/boards/stackrduino_m0_pro/mpconfigboard.h
Normal file
33
ports/atmel-samd/boards/stackrduino_m0_pro/mpconfigboard.h
Normal file
@ -0,0 +1,33 @@
|
||||
#define MICROPY_HW_BOARD_NAME "StackRduino M0 PRO"
|
||||
#define MICROPY_HW_MCU_NAME "samd21g18"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA17)
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_PA06)
|
||||
|
||||
#define SPI_FLASH_BAUDRATE (8000000)
|
||||
|
||||
#define SPI_FLASH_MOSI_PIN &pin_PB22
|
||||
#define SPI_FLASH_MISO_PIN &pin_PB03
|
||||
#define SPI_FLASH_SCK_PIN &pin_PB23
|
||||
#define SPI_FLASH_CS_PIN &pin_PA27
|
||||
|
||||
// These are pins not to reset.
|
||||
#define MICROPY_PORT_A (PORT_PA06)
|
||||
#define MICROPY_PORT_B (0)
|
||||
#define MICROPY_PORT_C (0)
|
||||
|
||||
#define BOARD_HAS_CRYSTAL 1
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PA12)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PA11)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PA10)
|
||||
|
||||
// USB is always used internally so skip the pin objects for it.
|
||||
#define IGNORE_PIN_PA24 1
|
||||
#define IGNORE_PIN_PA25 1
|
58
ports/atmel-samd/boards/stackrduino_m0_pro/mpconfigboard.mk
Normal file
58
ports/atmel-samd/boards/stackrduino_m0_pro/mpconfigboard.mk
Normal file
@ -0,0 +1,58 @@
|
||||
USB_VID = 0x1209
|
||||
USB_PID = 0xE3E3
|
||||
USB_PRODUCT = "StackRduino M0 PRO"
|
||||
USB_MANUFACTURER = "StackRduino"
|
||||
|
||||
CHIP_VARIANT = SAMD21G18A
|
||||
CHIP_FAMILY = samd21
|
||||
|
||||
SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_VECTORIO = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 55
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||
ifeq ($(TRANSLATION), ja)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), de_DE)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), pl)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), fr)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), pt_BR)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), es)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
40
ports/atmel-samd/boards/stackrduino_m0_pro/pins.c
Normal file
40
ports/atmel-samd/boards/stackrduino_m0_pro/pins.c
Normal file
@ -0,0 +1,40 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_CHRG_EN), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -197,7 +197,7 @@ void common_hal_audioio_audioout_construct(audioio_audioout_obj_t* self,
|
||||
#endif
|
||||
#ifdef SAM_D5X_E5X
|
||||
DAC->EVCTRL.reg |= DAC_EVCTRL_STARTEI0;
|
||||
DAC->DACCTRL[0].reg = DAC_DACCTRL_CCTRL_CC100K |
|
||||
DAC->DACCTRL[0].reg = DAC_DACCTRL_CCTRL_CC12M |
|
||||
DAC_DACCTRL_ENABLE |
|
||||
DAC_DACCTRL_LEFTADJ;
|
||||
DAC->CTRLB.reg = DAC_CTRLB_REFSEL_VREFPU;
|
||||
@ -206,7 +206,7 @@ void common_hal_audioio_audioout_construct(audioio_audioout_obj_t* self,
|
||||
#ifdef SAM_D5X_E5X
|
||||
if (channel1_enabled) {
|
||||
DAC->EVCTRL.reg |= DAC_EVCTRL_STARTEI1;
|
||||
DAC->DACCTRL[1].reg = DAC_DACCTRL_CCTRL_CC100K |
|
||||
DAC->DACCTRL[1].reg = DAC_DACCTRL_CCTRL_CC12M |
|
||||
DAC_DACCTRL_ENABLE |
|
||||
DAC_DACCTRL_LEFTADJ;
|
||||
DAC->CTRLB.reg = DAC_CTRLB_REFSEL_VREFPU;
|
||||
|
@ -82,7 +82,8 @@ void frequencyin_emergency_cancel_capture(uint8_t index) {
|
||||
#ifdef SAM_D5X_E5X
|
||||
NVIC_EnableIRQ(EIC_0_IRQn + self->channel);
|
||||
#endif
|
||||
mp_raise_RuntimeError(translate("Frequency captured is above capability. Capture Paused."));
|
||||
// Frequency captured is above capability. Capture paused.
|
||||
// We can't raise an error here; we're in an interrupt handler.
|
||||
}
|
||||
|
||||
void frequencyin_interrupt_handler(uint8_t index) {
|
||||
|
@ -169,6 +169,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
}
|
||||
|
||||
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
if (pin == NULL) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(pin->number);
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,8 @@ INC += -isystem esp-idf/components/heap/include
|
||||
INC += -isystem esp-idf/components/esp_system/include
|
||||
INC += -isystem esp-idf/components/spi_flash/include
|
||||
INC += -isystem esp-idf/components/nvs_flash/include
|
||||
INC += -isystem esp-idf/components/app_update/include
|
||||
INC += -isystem esp-idf/components/bootloader_support/include
|
||||
INC += -I$(BUILD)/esp-idf/config
|
||||
|
||||
CFLAGS += -DHAVE_CONFIG_H \
|
||||
@ -143,7 +145,6 @@ LDFLAGS += -L$(BUILD)/esp-idf/esp-idf/esp32s2 \
|
||||
-Tesp32s2.peripherals.ld \
|
||||
-Lesp-idf/components/esp_rom/esp32s2/ld \
|
||||
-Tesp32s2.rom.ld \
|
||||
-Tesp32s2.rom.api.ld \
|
||||
-Tesp32s2.rom.libgcc.ld \
|
||||
-Tesp32s2.rom.newlib-data.ld \
|
||||
-Tesp32s2.rom.newlib-funcs.ld \
|
||||
@ -277,7 +278,7 @@ menuconfig: $(BUILD)/esp-idf/config
|
||||
# qstr builds include headers so we need to make sure they are up to date
|
||||
$(HEADER_BUILD)/qstr.split: | $(BUILD)/esp-idf/config/sdkconfig.h
|
||||
|
||||
ESP_IDF_COMPONENTS_LINK = freertos log hal esp_system esp_adc_cal esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
|
||||
ESP_IDF_COMPONENTS_LINK = freertos log esp_system esp_adc_cal esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp-tls
|
||||
|
||||
ESP_IDF_COMPONENTS_INCLUDE = driver freertos log soc
|
||||
|
||||
@ -289,11 +290,11 @@ ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENT
|
||||
MBEDTLS_COMPONENTS_LINK = crypto tls x509
|
||||
MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component).a)
|
||||
|
||||
BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libxt_hal.a
|
||||
BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libhal.a
|
||||
BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a librtc.a libsmartconfig.a libphy.a
|
||||
BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/esp32s2/, $(BINARY_WIFI_BLOBS))
|
||||
|
||||
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/soc/soc/esp32s2/libsoc_esp32s2.a esp-idf/components/xtensa/esp32s2/libxt_hal.a
|
||||
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/soc/soc/esp32s2/libsoc_esp32s2.a
|
||||
ESP_AUTOGEN_LD = $(BUILD)/esp-idf/esp-idf/esp32s2/esp32s2_out.ld $(BUILD)/esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld
|
||||
|
||||
FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE)
|
||||
@ -309,7 +310,6 @@ esp-idf-stamp: $(BUILD)/esp-idf/config/sdkconfig.h
|
||||
esp-idf/esp32s2/ld/esp32s2.project.ld \
|
||||
esp-idf/esp_event/libesp_event.a \
|
||||
esp-idf/esp_netif/libesp_netif.a \
|
||||
esp-idf/esp_rom/libesp_rom.a \
|
||||
esp-idf/esp_system/libesp_system.a \
|
||||
esp-idf/esp_wifi/libesp_wifi.a \
|
||||
esp-idf/lwip/liblwip.a \
|
||||
@ -337,10 +337,10 @@ $(BUILD)/firmware.uf2: $(BUILD)/circuitpython-firmware.bin
|
||||
$(Q)$(PYTHON3) $(TOP)/tools/uf2/utils/uf2conv.py -f 0xbfdd4eee -b 0x0000 -c -o $@ $^
|
||||
|
||||
flash: $(BUILD)/firmware.bin
|
||||
esptool.py --chip esp32s2 -p $(PORT) --no-stub -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x0000 $^
|
||||
esptool.py --chip esp32s2 -p $(PORT) -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x0000 $^
|
||||
|
||||
flash-circuitpython-only: $(BUILD)/circuitpython-firmware.bin
|
||||
esptool.py --chip esp32s2 -p $(PORT) --no-stub -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x10000 $^
|
||||
esptool.py --chip esp32s2 -p $(PORT) -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x10000 $^
|
||||
|
||||
include $(TOP)/py/mkrules.mk
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
//Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "MagTag"
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit MagTag"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO1)
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
//Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Metro ESP32S2"
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Metro ESP32S2"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO45)
|
||||
|
@ -25,10 +25,12 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "py/gc.h"
|
||||
#include "py/obj.h"
|
||||
#include "py/objtuple.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "shared-bindings/alarm/__init__.h"
|
||||
#include "shared-bindings/alarm/SleepMemory.h"
|
||||
#include "shared-bindings/alarm/pin/PinAlarm.h"
|
||||
#include "shared-bindings/alarm/time/TimeAlarm.h"
|
||||
@ -40,10 +42,11 @@
|
||||
#include "supervisor/port.h"
|
||||
#include "supervisor/shared/workflow.h"
|
||||
|
||||
#include "common-hal/alarm/__init__.h"
|
||||
|
||||
#include "esp_sleep.h"
|
||||
|
||||
#include "components/soc/soc/esp32s2/include/soc/rtc_cntl_reg.h"
|
||||
#include "components/driver/include/driver/uart.h"
|
||||
|
||||
// Singleton instance of SleepMemory.
|
||||
const alarm_sleep_memory_obj_t alarm_sleep_memory_obj = {
|
||||
.base = {
|
||||
@ -53,19 +56,22 @@ const alarm_sleep_memory_obj_t alarm_sleep_memory_obj = {
|
||||
|
||||
void alarm_reset(void) {
|
||||
alarm_sleep_memory_reset();
|
||||
alarm_pin_pinalarm_reset();
|
||||
alarm_time_timealarm_reset();
|
||||
alarm_touch_touchalarm_reset();
|
||||
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
|
||||
}
|
||||
|
||||
STATIC esp_sleep_wakeup_cause_t _get_wakeup_cause(void) {
|
||||
if (alarm_pin_pinalarm_woke_us_up()) {
|
||||
return ESP_SLEEP_WAKEUP_GPIO;
|
||||
}
|
||||
if (alarm_time_timealarm_woke_us_up()) {
|
||||
return ESP_SLEEP_WAKEUP_TIMER;
|
||||
}
|
||||
if (alarm_touch_touchalarm_woke_us_up()) {
|
||||
return ESP_SLEEP_WAKEUP_TOUCHPAD;
|
||||
}
|
||||
|
||||
return esp_sleep_get_wakeup_cause();
|
||||
}
|
||||
|
||||
@ -74,14 +80,16 @@ bool alarm_woken_from_sleep(void) {
|
||||
}
|
||||
|
||||
STATIC mp_obj_t _get_wake_alarm(size_t n_alarms, const mp_obj_t *alarms) {
|
||||
switch (_get_wakeup_cause()) {
|
||||
esp_sleep_wakeup_cause_t cause = _get_wakeup_cause();
|
||||
switch (cause) {
|
||||
case ESP_SLEEP_WAKEUP_TIMER: {
|
||||
return alarm_time_timealarm_get_wakeup_alarm(n_alarms, alarms);
|
||||
}
|
||||
|
||||
case ESP_SLEEP_WAKEUP_EXT0: {
|
||||
// TODO: implement pin alarm wake.
|
||||
break;
|
||||
case ESP_SLEEP_WAKEUP_GPIO:
|
||||
case ESP_SLEEP_WAKEUP_EXT0:
|
||||
case ESP_SLEEP_WAKEUP_EXT1: {
|
||||
return alarm_pin_pinalarm_get_wakeup_alarm(n_alarms, alarms);
|
||||
}
|
||||
|
||||
case ESP_SLEEP_WAKEUP_TOUCHPAD:
|
||||
@ -102,24 +110,8 @@ mp_obj_t common_hal_alarm_get_wake_alarm(void) {
|
||||
|
||||
// Set up light sleep or deep sleep alarms.
|
||||
STATIC void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
|
||||
bool time_alarm_set = false;
|
||||
alarm_time_time_alarm_obj_t *time_alarm = MP_OBJ_NULL;
|
||||
|
||||
for (size_t i = 0; i < n_alarms; i++) {
|
||||
if (MP_OBJ_IS_TYPE(alarms[i], &alarm_pin_pin_alarm_type)) {
|
||||
mp_raise_NotImplementedError(translate("PinAlarm not yet implemented"));
|
||||
} else if (MP_OBJ_IS_TYPE(alarms[i], &alarm_time_time_alarm_type)) {
|
||||
if (time_alarm_set) {
|
||||
mp_raise_ValueError(translate("Only one alarm.time alarm can be set."));
|
||||
}
|
||||
time_alarm = MP_OBJ_TO_PTR(alarms[i]);
|
||||
time_alarm_set = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (time_alarm_set) {
|
||||
alarm_time_timealarm_set_alarm(time_alarm);
|
||||
}
|
||||
alarm_pin_pinalarm_set_alarms(deep_sleep, n_alarms, alarms);
|
||||
alarm_time_timealarm_set_alarms(deep_sleep, n_alarms, alarms);
|
||||
alarm_touch_touchalarm_set_alarm(deep_sleep, n_alarms, alarms);
|
||||
}
|
||||
|
||||
@ -136,21 +128,16 @@ STATIC void _idle_until_alarm(void) {
|
||||
}
|
||||
}
|
||||
|
||||
// Is it safe to do a light sleep? Check whether WiFi is on or there are
|
||||
// other ongoing tasks that should not be shut down.
|
||||
STATIC bool _light_sleep_ok(void) {
|
||||
return !common_hal_wifi_radio_get_enabled(&common_hal_wifi_radio_obj) && !supervisor_workflow_active();
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_alarm_light_sleep_until_alarms(size_t n_alarms, const mp_obj_t *alarms) {
|
||||
_setup_sleep_alarms(false, n_alarms, alarms);
|
||||
|
||||
// Light sleep can break some functionality so only do it when possible. Otherwise we idle.
|
||||
if (_light_sleep_ok()) {
|
||||
esp_light_sleep_start();
|
||||
} else {
|
||||
// We cannot esp_light_sleep_start() here because it shuts down all non-RTC peripherals.
|
||||
_idle_until_alarm();
|
||||
|
||||
if (mp_hal_is_interrupted()) {
|
||||
return mp_const_none; // Shouldn't be given to python code because exception handling should kick in.
|
||||
}
|
||||
|
||||
mp_obj_t wake_alarm = _get_wake_alarm(n_alarms, alarms);
|
||||
alarm_reset();
|
||||
return wake_alarm;
|
||||
@ -161,8 +148,13 @@ void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj_t *ala
|
||||
}
|
||||
|
||||
void NORETURN alarm_enter_deep_sleep(void) {
|
||||
alarm_pin_pinalarm_prepare_for_deep_sleep();
|
||||
alarm_touch_touchalarm_prepare_for_deep_sleep();
|
||||
// The ESP-IDF caches the deep sleep settings and applies them before sleep.
|
||||
// We don't need to worry about resetting them in the interim.
|
||||
esp_deep_sleep_start();
|
||||
}
|
||||
|
||||
void common_hal_alarm_gc_collect(void) {
|
||||
gc_collect_ptr(alarm_get_wake_alarm());
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Dan Halbert for Adafruit Industries
|
||||
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@ -24,30 +25,283 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "esp_sleep.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "shared-bindings/alarm/pin/PinAlarm.h"
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/esp_port.h"
|
||||
|
||||
void common_hal_alarm_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull) {
|
||||
#include "components/driver/include/driver/rtc_io.h"
|
||||
#include "components/esp32s2/include/esp_sleep.h"
|
||||
#include "components/freertos/include/freertos/FreeRTOS.h"
|
||||
#include "components/soc/src/esp32s2/include/hal/gpio_ll.h"
|
||||
#include "components/xtensa/include/esp_debug_helpers.h"
|
||||
|
||||
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull) {
|
||||
if (edge) {
|
||||
mp_raise_ValueError(translate("Cannot wake on pin edge. Only level."));
|
||||
}
|
||||
|
||||
if (pull && !GPIO_IS_VALID_OUTPUT_GPIO(pin->number)) {
|
||||
mp_raise_ValueError(translate("Cannot pull on input-only pin."));
|
||||
}
|
||||
self->pin = pin;
|
||||
self->value = value;
|
||||
self->edge = edge;
|
||||
self->pull = pull;
|
||||
}
|
||||
|
||||
mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self) {
|
||||
mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self) {
|
||||
return self->pin;
|
||||
}
|
||||
|
||||
bool common_hal_alarm_pin_pin_alarm_get_value(alarm_pin_pin_alarm_obj_t *self) {
|
||||
bool common_hal_alarm_pin_pinalarm_get_value(alarm_pin_pinalarm_obj_t *self) {
|
||||
return self->value;
|
||||
}
|
||||
|
||||
bool common_hal_alarm_pin_pin_alarm_get_edge(alarm_pin_pin_alarm_obj_t *self) {
|
||||
return self->edge;
|
||||
bool common_hal_alarm_pin_pinalarm_get_edge(alarm_pin_pinalarm_obj_t *self) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool common_hal_alarm_pin_pin_alarm_get_pull(alarm_pin_pin_alarm_obj_t *self) {
|
||||
bool common_hal_alarm_pin_pinalarm_get_pull(alarm_pin_pinalarm_obj_t *self) {
|
||||
return self->pull;
|
||||
}
|
||||
|
||||
gpio_isr_handle_t gpio_interrupt_handle;
|
||||
// Low and high are relative to pin number. 32+ is high. <32 is low.
|
||||
static volatile uint32_t pin_31_0_status = 0;
|
||||
static volatile uint32_t pin_63_32_status = 0;
|
||||
void gpio_interrupt(void *arg) {
|
||||
(void) arg;
|
||||
|
||||
gpio_ll_get_intr_status(&GPIO, xPortGetCoreID(), (uint32_t*) &pin_31_0_status);
|
||||
gpio_ll_clear_intr_status(&GPIO, pin_31_0_status);
|
||||
gpio_ll_get_intr_status_high(&GPIO, xPortGetCoreID(), (uint32_t*) &pin_63_32_status);
|
||||
gpio_ll_clear_intr_status_high(&GPIO, pin_63_32_status);
|
||||
|
||||
// disable the interrupts that fired, maybe all of them
|
||||
for (size_t i = 0; i < 32; i++) {
|
||||
uint32_t mask = 1 << i;
|
||||
if ((pin_31_0_status & mask) != 0) {
|
||||
gpio_ll_intr_disable(&GPIO, i);
|
||||
}
|
||||
if ((pin_63_32_status & mask) != 0) {
|
||||
gpio_ll_intr_disable(&GPIO, 32 + i);
|
||||
}
|
||||
}
|
||||
BaseType_t high_task_wakeup;
|
||||
vTaskNotifyGiveFromISR(circuitpython_task, &high_task_wakeup);
|
||||
if (high_task_wakeup) {
|
||||
portYIELD_FROM_ISR();
|
||||
}
|
||||
}
|
||||
|
||||
bool alarm_pin_pinalarm_woke_us_up(void) {
|
||||
return pin_31_0_status != 0 || pin_63_32_status != 0;
|
||||
}
|
||||
|
||||
mp_obj_t alarm_pin_pinalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms) {
|
||||
// First, check to see if we match any given alarms.
|
||||
uint64_t pin_status = ((uint64_t) pin_63_32_status) << 32 | pin_31_0_status;
|
||||
for (size_t i = 0; i < n_alarms; i++) {
|
||||
if (!MP_OBJ_IS_TYPE(alarms[i], &alarm_pin_pinalarm_type)) {
|
||||
continue;
|
||||
}
|
||||
alarm_pin_pinalarm_obj_t *alarm = MP_OBJ_TO_PTR(alarms[i]);
|
||||
if ((pin_status & (1ull << alarm->pin->number)) != 0) {
|
||||
return alarms[i];
|
||||
}
|
||||
}
|
||||
esp_sleep_wakeup_cause_t cause = esp_sleep_get_wakeup_cause();
|
||||
size_t pin_number = 64;
|
||||
if (cause == ESP_SLEEP_WAKEUP_EXT0) {
|
||||
pin_number = REG_GET_FIELD(RTC_IO_EXT_WAKEUP0_REG, RTC_IO_EXT_WAKEUP0_SEL);
|
||||
} else {
|
||||
if (cause == ESP_SLEEP_WAKEUP_EXT1) {
|
||||
pin_status = esp_sleep_get_ext1_wakeup_status();
|
||||
}
|
||||
// If the cause is GPIO, we've already snagged pin_status in the interrupt.
|
||||
// We'll only get here if we pretended to deep sleep. Light sleep will
|
||||
// pass in existing objects.
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
if ((pin_status & (1ull << i)) != 0) {
|
||||
pin_number = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
alarm_pin_pinalarm_obj_t *alarm = m_new_obj(alarm_pin_pinalarm_obj_t);
|
||||
alarm->base.type = &alarm_pin_pinalarm_type;
|
||||
alarm->pin = NULL;
|
||||
// Map the pin number back to a pin object.
|
||||
for (size_t i = 0; i < mcu_pin_globals.map.used; i++) {
|
||||
const mcu_pin_obj_t* pin_obj = MP_OBJ_TO_PTR(mcu_pin_globals.map.table[i].value);
|
||||
if ((size_t) pin_obj->number == pin_number) {
|
||||
alarm->pin = mcu_pin_globals.map.table[i].value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return alarm;
|
||||
}
|
||||
|
||||
// These must be static because we need to configure pulls later, right before
|
||||
// deep sleep.
|
||||
static uint64_t high_alarms = 0;
|
||||
static uint64_t low_alarms = 0;
|
||||
static uint64_t pull_pins = 0;
|
||||
|
||||
void alarm_pin_pinalarm_reset(void) {
|
||||
if (gpio_interrupt_handle != NULL) {
|
||||
esp_intr_free(gpio_interrupt_handle);
|
||||
gpio_interrupt_handle = NULL;
|
||||
}
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
uint64_t mask = 1ull << i;
|
||||
bool high = (high_alarms & mask) != 0;
|
||||
bool low = (low_alarms & mask) != 0;
|
||||
if (!(high || low)) {
|
||||
continue;
|
||||
}
|
||||
reset_pin_number(i);
|
||||
}
|
||||
high_alarms = 0;
|
||||
low_alarms = 0;
|
||||
pull_pins = 0;
|
||||
pin_63_32_status = 0;
|
||||
pin_31_0_status = 0;
|
||||
}
|
||||
|
||||
void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
|
||||
// Bitmask of wake up settings.
|
||||
size_t high_count = 0;
|
||||
size_t low_count = 0;
|
||||
|
||||
for (size_t i = 0; i < n_alarms; i++) {
|
||||
// TODO: Check for ULP or touch alarms because they can't coexist with GPIO alarms.
|
||||
if (!MP_OBJ_IS_TYPE(alarms[i], &alarm_pin_pinalarm_type)) {
|
||||
continue;
|
||||
}
|
||||
alarm_pin_pinalarm_obj_t *alarm = MP_OBJ_TO_PTR(alarms[i]);
|
||||
|
||||
gpio_num_t pin_number = alarm->pin->number;
|
||||
if (alarm->value) {
|
||||
high_alarms |= 1ull << pin_number;
|
||||
high_count++;
|
||||
} else {
|
||||
low_alarms |= 1ull << pin_number;
|
||||
low_count++;
|
||||
}
|
||||
if (alarm->pull) {
|
||||
pull_pins |= 1ull << pin_number;
|
||||
}
|
||||
}
|
||||
if (high_count == 0 && low_count == 0) {
|
||||
return;
|
||||
}
|
||||
if (deep_sleep && low_count > 2 && high_count == 0) {
|
||||
mp_raise_ValueError(translate("Can only alarm on two low pins from deep sleep."));
|
||||
}
|
||||
if (deep_sleep && low_count > 1 && high_count > 0) {
|
||||
mp_raise_ValueError(translate("Can only alarm on one low pin while others alarm high from deep sleep."));
|
||||
}
|
||||
// Only use ext0 and ext1 during deep sleep.
|
||||
if (deep_sleep) {
|
||||
if (high_count > 0) {
|
||||
if (esp_sleep_enable_ext1_wakeup(high_alarms, ESP_EXT1_WAKEUP_ANY_HIGH) != ESP_OK) {
|
||||
mp_raise_ValueError(translate("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
}
|
||||
size_t low_pins[2];
|
||||
size_t j = 0;
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
uint64_t mask = 1ull << i;
|
||||
if ((low_alarms & mask) != 0) {
|
||||
low_pins[j++] = i;
|
||||
}
|
||||
if (j == 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (low_count > 1) {
|
||||
if (esp_sleep_enable_ext1_wakeup(1ull << low_pins[1], ESP_EXT1_WAKEUP_ALL_LOW) != ESP_OK) {
|
||||
mp_raise_ValueError(translate("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
}
|
||||
if (low_count > 0) {
|
||||
if (esp_sleep_enable_ext0_wakeup(low_pins[0], 0) != ESP_OK) {
|
||||
mp_raise_ValueError(translate("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Enable GPIO wake up if we're sleeping.
|
||||
esp_sleep_enable_gpio_wakeup();
|
||||
}
|
||||
// Set GPIO interrupts so they wake us from light sleep or from idle via the
|
||||
// interrupt handler above.
|
||||
pin_31_0_status = 0;
|
||||
pin_63_32_status = 0;
|
||||
if (gpio_isr_register(gpio_interrupt, NULL, 0, &gpio_interrupt_handle) != ESP_OK) {
|
||||
mp_raise_ValueError(translate("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
uint64_t mask = 1ull << i;
|
||||
bool high = (high_alarms & mask) != 0;
|
||||
bool low = (low_alarms & mask) != 0;
|
||||
bool pull = (pull_pins & mask) != 0;
|
||||
if (!(high || low)) {
|
||||
continue;
|
||||
}
|
||||
if (rtc_gpio_is_valid_gpio(i)) {
|
||||
rtc_gpio_deinit(i);
|
||||
}
|
||||
gpio_int_type_t interrupt_mode = GPIO_INTR_DISABLE;
|
||||
gpio_pull_mode_t pull_mode = GPIO_FLOATING;
|
||||
if (high) {
|
||||
interrupt_mode = GPIO_INTR_HIGH_LEVEL;
|
||||
pull_mode = GPIO_PULLDOWN_ONLY;
|
||||
}
|
||||
if (low) {
|
||||
interrupt_mode = GPIO_INTR_LOW_LEVEL;
|
||||
pull_mode = GPIO_PULLUP_ONLY;
|
||||
}
|
||||
gpio_set_direction(i, GPIO_MODE_DEF_INPUT);
|
||||
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[i], PIN_FUNC_GPIO);
|
||||
if (pull) {
|
||||
gpio_set_pull_mode(i, pull_mode);
|
||||
size_t j = 0;
|
||||
while (gpio_get_level(i) == false) {
|
||||
j++;
|
||||
}
|
||||
}
|
||||
never_reset_pin_number(i);
|
||||
// Sets interrupt type and wakeup bits.
|
||||
gpio_wakeup_enable(i, interrupt_mode);
|
||||
gpio_intr_enable(i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void alarm_pin_pinalarm_prepare_for_deep_sleep(void) {
|
||||
if (pull_pins == 0) {
|
||||
return;
|
||||
}
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
uint64_t mask = 1ull << i;
|
||||
bool pull = (pull_pins & mask) != 0;
|
||||
if (!pull) {
|
||||
continue;
|
||||
}
|
||||
bool high = (high_alarms & mask) != 0;
|
||||
bool low = (low_alarms & mask) != 0;
|
||||
// The pull direction is opposite from alarm value.
|
||||
if (high) {
|
||||
rtc_gpio_pullup_dis(i);
|
||||
rtc_gpio_pulldown_en(i);
|
||||
}
|
||||
if (low) {
|
||||
rtc_gpio_pullup_en(i);
|
||||
rtc_gpio_pulldown_dis(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,11 @@ typedef struct {
|
||||
mp_obj_base_t base;
|
||||
mcu_pin_obj_t *pin;
|
||||
bool value;
|
||||
bool all_same_value;
|
||||
bool edge;
|
||||
bool pull;
|
||||
} alarm_pin_pin_alarm_obj_t;
|
||||
} alarm_pin_pinalarm_obj_t;
|
||||
|
||||
void alarm_pin_pinalarm_reset(void);
|
||||
void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms);
|
||||
void alarm_pin_pinalarm_prepare_for_deep_sleep(void);
|
||||
mp_obj_t alarm_pin_pinalarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms);
|
||||
bool alarm_pin_pinalarm_woke_us_up(void);
|
||||
|
@ -34,23 +34,23 @@
|
||||
#include "shared-bindings/alarm/time/TimeAlarm.h"
|
||||
#include "shared-bindings/time/__init__.h"
|
||||
|
||||
void common_hal_alarm_time_time_alarm_construct(alarm_time_time_alarm_obj_t *self, mp_float_t monotonic_time) {
|
||||
void common_hal_alarm_time_timealarm_construct(alarm_time_timealarm_obj_t *self, mp_float_t monotonic_time) {
|
||||
self->monotonic_time = monotonic_time;
|
||||
}
|
||||
|
||||
mp_float_t common_hal_alarm_time_time_alarm_get_monotonic_time(alarm_time_time_alarm_obj_t *self) {
|
||||
mp_float_t common_hal_alarm_time_timealarm_get_monotonic_time(alarm_time_timealarm_obj_t *self) {
|
||||
return self->monotonic_time;
|
||||
}
|
||||
|
||||
mp_obj_t alarm_time_timealarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms) {
|
||||
// First, check to see if we match
|
||||
for (size_t i = 0; i < n_alarms; i++) {
|
||||
if (MP_OBJ_IS_TYPE(alarms[i], &alarm_time_time_alarm_type)) {
|
||||
if (MP_OBJ_IS_TYPE(alarms[i], &alarm_time_timealarm_type)) {
|
||||
return alarms[i];
|
||||
}
|
||||
}
|
||||
alarm_time_time_alarm_obj_t *timer = m_new_obj(alarm_time_time_alarm_obj_t);
|
||||
timer->base.type = &alarm_time_time_alarm_type;
|
||||
alarm_time_timealarm_obj_t *timer = m_new_obj(alarm_time_timealarm_obj_t);
|
||||
timer->base.type = &alarm_time_timealarm_type;
|
||||
// TODO: Set monotonic_time based on the RTC state.
|
||||
timer->monotonic_time = 0.0f;
|
||||
return timer;
|
||||
@ -63,9 +63,7 @@ STATIC bool woke_up = false;
|
||||
void timer_callback(void *arg) {
|
||||
(void) arg;
|
||||
woke_up = true;
|
||||
if (sleeping_circuitpython_task) {
|
||||
xTaskNotifyGive(sleeping_circuitpython_task);
|
||||
}
|
||||
xTaskNotifyGive(circuitpython_task);
|
||||
}
|
||||
|
||||
bool alarm_time_timealarm_woke_us_up(void) {
|
||||
@ -79,7 +77,24 @@ void alarm_time_timealarm_reset(void) {
|
||||
woke_up = false;
|
||||
}
|
||||
|
||||
void alarm_time_timealarm_set_alarm(alarm_time_time_alarm_obj_t *self) {
|
||||
void alarm_time_timealarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
|
||||
bool timealarm_set = false;
|
||||
alarm_time_timealarm_obj_t *timealarm = MP_OBJ_NULL;
|
||||
|
||||
for (size_t i = 0; i < n_alarms; i++) {
|
||||
if (!MP_OBJ_IS_TYPE(alarms[i], &alarm_time_timealarm_type)) {
|
||||
continue;
|
||||
}
|
||||
if (timealarm_set) {
|
||||
mp_raise_ValueError(translate("Only one alarm.time alarm can be set."));
|
||||
}
|
||||
timealarm = MP_OBJ_TO_PTR(alarms[i]);
|
||||
timealarm_set = true;
|
||||
}
|
||||
if (!timealarm_set) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (pretend_sleep_timer != NULL) {
|
||||
esp_timer_stop(pretend_sleep_timer);
|
||||
} else {
|
||||
@ -94,7 +109,7 @@ void alarm_time_timealarm_set_alarm(alarm_time_time_alarm_obj_t *self) {
|
||||
|
||||
// Compute how long to actually sleep, considering the time now.
|
||||
mp_float_t now_secs = uint64_to_float(common_hal_time_monotonic_ms()) / 1000.0f;
|
||||
mp_float_t wakeup_in_secs = MAX(0.0f, self->monotonic_time - now_secs);
|
||||
mp_float_t wakeup_in_secs = MAX(0.0f, timealarm->monotonic_time - now_secs);
|
||||
const uint64_t sleep_for_us = (uint64_t) (wakeup_in_secs * 1000000);
|
||||
esp_sleep_enable_timer_wakeup(sleep_for_us);
|
||||
|
||||
|
@ -30,11 +30,11 @@
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
mp_float_t monotonic_time; // values compatible with time.monotonic_time()
|
||||
} alarm_time_time_alarm_obj_t;
|
||||
} alarm_time_timealarm_obj_t;
|
||||
|
||||
// Find the alarm object that caused us to wake up or create an equivalent one.
|
||||
mp_obj_t alarm_time_timealarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *alarms);
|
||||
// Check for the wake up alarm from pretend deep sleep.
|
||||
bool alarm_time_timealarm_woke_us_up(void);
|
||||
void alarm_time_timealarm_set_alarm(alarm_time_time_alarm_obj_t *self);
|
||||
void alarm_time_timealarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms);
|
||||
void alarm_time_timealarm_reset(void);
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "components/hal/include/hal/adc_types.h"
|
||||
#include "components/soc/include/hal/adc_types.h"
|
||||
#include "FreeRTOS.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "py/obj.h"
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "components/hal/include/hal/i2c_types.h"
|
||||
#include "components/soc/include/hal/i2c_types.h"
|
||||
#include "FreeRTOS.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "py/obj.h"
|
||||
|
@ -248,12 +248,8 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
|
||||
spi_bus_free(self->host_id);
|
||||
|
||||
common_hal_reset_pin(self->clock_pin);
|
||||
if (self->MOSI_pin != NULL) {
|
||||
common_hal_reset_pin(self->MOSI_pin);
|
||||
}
|
||||
if (self->MISO_pin != NULL) {
|
||||
common_hal_reset_pin(self->MISO_pin);
|
||||
}
|
||||
self->clock_pin = NULL;
|
||||
self->MISO_pin = NULL;
|
||||
self->MOSI_pin = NULL;
|
||||
@ -273,7 +269,7 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
|
||||
self->bits = bits;
|
||||
self->target_frequency = baudrate;
|
||||
self->hal_context.timing_conf = &self->timing_conf;
|
||||
esp_err_t result = spi_hal_cal_clock_conf(&self->hal_context,
|
||||
esp_err_t result = spi_hal_get_clock_conf(&self->hal_context,
|
||||
self->target_frequency,
|
||||
128 /* duty_cycle */,
|
||||
self->connected_through_gpio,
|
||||
@ -366,7 +362,8 @@ bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, const uint8_t *data_ou
|
||||
burst_length = sizeof(hal->hw->data_buf);
|
||||
// When switching to non-DMA, we need to make sure DMA is off. Otherwise,
|
||||
// the S2 will transmit zeroes instead of our data.
|
||||
spi_ll_txdma_disable(hal->hw);
|
||||
hal->hw->dma_out_link.dma_tx_ena = 0;
|
||||
hal->hw->dma_out_link.stop = 1;
|
||||
}
|
||||
|
||||
// This rounds up.
|
||||
|
@ -30,8 +30,8 @@
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "components/driver/include/driver/spi_common_internal.h"
|
||||
#include "components/hal/include/hal/spi_hal.h"
|
||||
#include "components/hal/include/hal/spi_types.h"
|
||||
#include "components/soc/include/hal/spi_hal.h"
|
||||
#include "components/soc/include/hal/spi_types.h"
|
||||
#include "py/obj.h"
|
||||
|
||||
typedef struct {
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "components/hal/include/hal/uart_types.h"
|
||||
#include "components/soc/include/hal/uart_types.h"
|
||||
#include "py/obj.h"
|
||||
|
||||
typedef struct {
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
#include "components/driver/include/driver/gpio.h"
|
||||
|
||||
#include "components/hal/include/hal/gpio_hal.h"
|
||||
#include "components/soc/include/hal/gpio_hal.h"
|
||||
|
||||
void common_hal_digitalio_digitalinout_never_reset(
|
||||
digitalio_digitalinout_obj_t *self) {
|
||||
|
139
ports/esp32s2/common-hal/dualbank/__init__.c
Normal file
139
ports/esp32s2/common-hal/dualbank/__init__.c
Normal file
@ -0,0 +1,139 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "common-hal/dualbank/__init__.h"
|
||||
#include "shared-bindings/dualbank/__init__.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "esp_log.h"
|
||||
#include "esp_ota_ops.h"
|
||||
|
||||
static const esp_partition_t *update_partition = NULL;
|
||||
static esp_ota_handle_t update_handle = 0;
|
||||
|
||||
static const char *TAG = "dualbank";
|
||||
|
||||
void dualbank_reset(void) {
|
||||
// should use `abort` instead of `end`
|
||||
// but not in idf v4.2
|
||||
// esp_ota_abort(update_handle);
|
||||
if (esp_ota_end(update_handle) == ESP_OK) {
|
||||
update_handle = 0;
|
||||
update_partition = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void __attribute__((noreturn)) task_fatal_error(void) {
|
||||
ESP_LOGE(TAG, "Exiting task due to fatal error...");
|
||||
mp_raise_RuntimeError(translate("Update Failed"));
|
||||
}
|
||||
|
||||
void common_hal_dualbank_flash(const void *buf, const size_t len, const size_t offset) {
|
||||
esp_err_t err;
|
||||
|
||||
const esp_partition_t *running = esp_ota_get_running_partition();
|
||||
const esp_partition_t *last_invalid = esp_ota_get_last_invalid_partition();
|
||||
|
||||
if (update_partition == NULL) {
|
||||
update_partition = esp_ota_get_next_update_partition(NULL);
|
||||
|
||||
ESP_LOGI(TAG, "Running partition type %d subtype %d (offset 0x%08x)",
|
||||
running->type, running->subtype, running->address);
|
||||
|
||||
ESP_LOGI(TAG, "Writing partition type %d subtype %d (offset 0x%08x)\n",
|
||||
update_partition->type, update_partition->subtype, update_partition->address);
|
||||
|
||||
assert(update_partition != NULL);
|
||||
}
|
||||
|
||||
if (update_handle == 0) {
|
||||
if (len > sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t) + sizeof(esp_app_desc_t)) {
|
||||
esp_app_desc_t new_app_info;
|
||||
memcpy(&new_app_info, &((char *)buf)[sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t)], sizeof(esp_app_desc_t));
|
||||
ESP_LOGI(TAG, "New firmware version: %s", new_app_info.version);
|
||||
|
||||
esp_app_desc_t running_app_info;
|
||||
if (esp_ota_get_partition_description(running, &running_app_info) == ESP_OK) {
|
||||
ESP_LOGI(TAG, "Running firmware version: %s", running_app_info.version);
|
||||
}
|
||||
|
||||
esp_app_desc_t invalid_app_info;
|
||||
if (esp_ota_get_partition_description(last_invalid, &invalid_app_info) == ESP_OK) {
|
||||
ESP_LOGI(TAG, "Last invalid firmware version: %s", invalid_app_info.version);
|
||||
}
|
||||
|
||||
// check new version with running version
|
||||
if (memcmp(new_app_info.version, running_app_info.version, sizeof(new_app_info.version)) == 0) {
|
||||
ESP_LOGW(TAG, "New version is the same as running version.");
|
||||
task_fatal_error();
|
||||
}
|
||||
|
||||
// check new version with last invalid partition
|
||||
if (last_invalid != NULL) {
|
||||
if (memcmp(new_app_info.version, invalid_app_info.version, sizeof(new_app_info.version)) == 0) {
|
||||
ESP_LOGW(TAG, "New version is the same as invalid version.");
|
||||
task_fatal_error();
|
||||
}
|
||||
}
|
||||
|
||||
err = esp_ota_begin(update_partition, OTA_SIZE_UNKNOWN, &update_handle);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGE(TAG, "esp_ota_begin failed (%s)", esp_err_to_name(err));
|
||||
task_fatal_error();
|
||||
}
|
||||
} else {
|
||||
ESP_LOGE(TAG, "received package is not fit len");
|
||||
task_fatal_error();
|
||||
}
|
||||
}
|
||||
|
||||
if (offset == 0) {
|
||||
err = esp_ota_write(update_handle, buf, len);
|
||||
} else {
|
||||
err = esp_ota_write_with_offset(update_handle, buf, len, offset);
|
||||
}
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGE(TAG, "esp_ota_write failed (%s)", esp_err_to_name(err));
|
||||
task_fatal_error();
|
||||
}
|
||||
}
|
||||
|
||||
void common_hal_dualbank_switch(void) {
|
||||
if (esp_ota_end(update_handle) == ESP_OK) {
|
||||
update_handle = 0;
|
||||
update_partition = NULL;
|
||||
}
|
||||
esp_err_t err = esp_ota_set_boot_partition(esp_ota_get_next_update_partition(NULL));
|
||||
if (err != ESP_OK) {
|
||||
if (err == ESP_ERR_OTA_VALIDATE_FAILED) {
|
||||
ESP_LOGE(TAG, "Image validation failed, image is corrupted");
|
||||
mp_raise_RuntimeError(translate("Firmware image is invalid"));
|
||||
}
|
||||
ESP_LOGE(TAG, "esp_ota_set_boot_partition failed (%s)!", esp_err_to_name(err));
|
||||
task_fatal_error();
|
||||
}
|
||||
}
|
32
ports/esp32s2/common-hal/dualbank/__init__.h
Normal file
32
ports/esp32s2/common-hal/dualbank/__init__.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_DUALBANK___INIT___H
|
||||
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_DUALBANK___INIT___H
|
||||
|
||||
extern void dualbank_reset(void);
|
||||
|
||||
#endif //MICROPY_INCLUDED_ESP32S2_COMMON_HAL_DUALBANK___INIT___H
|
@ -32,7 +32,7 @@
|
||||
#include "py/mphal.h"
|
||||
|
||||
#include "components/driver/include/driver/gpio.h"
|
||||
#include "components/hal/include/hal/gpio_hal.h"
|
||||
#include "components/soc/include/hal/gpio_hal.h"
|
||||
|
||||
#ifdef MICROPY_HW_NEOPIXEL
|
||||
bool neopixel_in_use;
|
||||
@ -89,6 +89,9 @@ void reset_pin_number(gpio_num_t pin_number) {
|
||||
}
|
||||
|
||||
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
if (pin == NULL) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(pin->number);
|
||||
}
|
||||
|
||||
|
@ -48,3 +48,9 @@ mp_obj_t common_hal_wifi_network_get_rssi(wifi_network_obj_t *self) {
|
||||
mp_obj_t common_hal_wifi_network_get_channel(wifi_network_obj_t *self) {
|
||||
return mp_obj_new_int(self->record.primary);
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_wifi_network_get_country(wifi_network_obj_t *self) {
|
||||
const char* cstr = (const char*) self->record.country.cc;
|
||||
// 2 instead of strlen(cstr) as this gives us only the country-code
|
||||
return mp_obj_new_str(cstr, 2);
|
||||
}
|
||||
|
@ -198,6 +198,17 @@ mp_obj_t common_hal_wifi_radio_get_ap_info(wifi_radio_obj_t *self) {
|
||||
if (esp_wifi_sta_get_ap_info(&self->ap_info.record) != ESP_OK){
|
||||
return mp_const_none;
|
||||
} else {
|
||||
if (strlen(self->ap_info.record.country.cc) == 0) {
|
||||
// Workaround to fill country related information in ap_info until ESP-IDF carries a fix
|
||||
// esp_wifi_sta_get_ap_info does not appear to fill wifi_country_t (e.g. country.cc) details
|
||||
// (IDFGH-4437) #6267
|
||||
// Note: It is possible that Wi-Fi APs don't have a CC set, then even after this workaround
|
||||
// the element would remain empty.
|
||||
memset(&self->ap_info.record.country, 0, sizeof(wifi_country_t));
|
||||
if (esp_wifi_get_country(&self->ap_info.record.country) != ESP_OK) {
|
||||
return mp_const_none;
|
||||
}
|
||||
}
|
||||
memcpy(&ap_info->record, &self->ap_info.record, sizeof(wifi_ap_record_t));
|
||||
return MP_OBJ_FROM_PTR(ap_info);
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit d06744f5efc382c61cbad8758107cec308feef09
|
||||
Subproject commit ebe7784258d8c10e9cc334ccc00c3fd270746c8b
|
@ -19,6 +19,7 @@ CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_CANIO = 1
|
||||
CIRCUITPY_COUNTIO = 1
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_FREQUENCYIO = 1
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_ROTARYIO = 1
|
||||
|
@ -35,9 +35,9 @@
|
||||
#include "esp32s2_peripherals_config.h"
|
||||
#include "esp-idf/config/sdkconfig.h"
|
||||
|
||||
#include "components/hal/include/hal/gpio_types.h"
|
||||
#include "components/hal/include/hal/adc_types.h"
|
||||
#include "components/hal/include/hal/touch_sensor_types.h"
|
||||
#include "components/soc/include/hal/gpio_types.h"
|
||||
#include "components/soc/include/hal/adc_types.h"
|
||||
#include "components/soc/include/hal/touch_sensor_types.h"
|
||||
|
||||
typedef struct {
|
||||
PIN_PREFIX_FIELDS
|
||||
|
@ -30,6 +30,6 @@
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
|
||||
extern TaskHandle_t sleeping_circuitpython_task;
|
||||
extern TaskHandle_t circuitpython_task;
|
||||
|
||||
#endif // MICROPY_INCLUDED_ESP32S2_SUPERVISOR_PORT_H
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "common-hal/busio/I2C.h"
|
||||
#include "common-hal/busio/SPI.h"
|
||||
#include "common-hal/busio/UART.h"
|
||||
#include "common-hal/dualbank/__init__.h"
|
||||
#include "common-hal/ps2io/Ps2.h"
|
||||
#include "common-hal/pulseio/PulseIn.h"
|
||||
#include "common-hal/pwmio/PWMOut.h"
|
||||
@ -54,7 +55,7 @@
|
||||
#include "peripherals/pcnt.h"
|
||||
#include "peripherals/timer.h"
|
||||
#include "peripherals/touch.h"
|
||||
#include "components/esp_rom/include/esp_rom_uart.h"
|
||||
#include "components/esp_rom/include/esp32s2/rom/ets_sys.h"
|
||||
#include "components/heap/include/esp_heap_caps.h"
|
||||
#include "components/xtensa/include/esp_debug_helpers.h"
|
||||
#include "components/soc/soc/esp32s2/include/soc/cache_memory.h"
|
||||
@ -66,13 +67,22 @@ uint32_t* heap;
|
||||
uint32_t heap_size;
|
||||
|
||||
STATIC esp_timer_handle_t _tick_timer;
|
||||
STATIC esp_timer_handle_t _sleep_timer;
|
||||
|
||||
TaskHandle_t circuitpython_task = NULL;
|
||||
|
||||
extern void esp_restart(void) NORETURN;
|
||||
|
||||
void tick_timer_cb(void* arg) {
|
||||
supervisor_tick();
|
||||
|
||||
// CircuitPython's VM is run in a separate FreeRTOS task from timer callbacks. So, we have to
|
||||
// notify the main task every time in case it's waiting for us.
|
||||
xTaskNotifyGive(circuitpython_task);
|
||||
}
|
||||
|
||||
void sleep_timer_cb(void* arg);
|
||||
|
||||
safe_mode_t port_init(void) {
|
||||
esp_timer_create_args_t args;
|
||||
args.callback = &tick_timer_cb;
|
||||
@ -81,9 +91,17 @@ safe_mode_t port_init(void) {
|
||||
args.name = "CircuitPython Tick";
|
||||
esp_timer_create(&args, &_tick_timer);
|
||||
|
||||
#ifdef DEBUG
|
||||
args.callback = &sleep_timer_cb;
|
||||
args.arg = NULL;
|
||||
args.dispatch_method = ESP_TIMER_TASK;
|
||||
args.name = "CircuitPython Sleep";
|
||||
esp_timer_create(&args, &_sleep_timer);
|
||||
|
||||
circuitpython_task = xTaskGetCurrentTaskHandle();
|
||||
|
||||
// Send the ROM output out of the UART. This includes early logs.
|
||||
esp_rom_install_channel_putc(1, esp_rom_uart_putc);
|
||||
#ifdef DEBUG
|
||||
ets_install_uart_printf();
|
||||
#endif
|
||||
|
||||
heap = NULL;
|
||||
@ -103,11 +121,15 @@ safe_mode_t port_init(void) {
|
||||
}
|
||||
|
||||
esp_reset_reason_t reason = esp_reset_reason();
|
||||
if (reason == ESP_RST_BROWNOUT) {
|
||||
switch (reason) {
|
||||
case ESP_RST_BROWNOUT:
|
||||
return BROWNOUT;
|
||||
}
|
||||
if (reason == ESP_RST_PANIC) {
|
||||
case ESP_RST_PANIC:
|
||||
case ESP_RST_INT_WDT:
|
||||
case ESP_RST_WDT:
|
||||
return HARD_CRASH;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return NO_SAFE_MODE;
|
||||
@ -123,6 +145,10 @@ void reset_port(void) {
|
||||
analogout_reset();
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_DUALBANK
|
||||
dualbank_reset();
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_PS2IO
|
||||
ps2_reset();
|
||||
#endif
|
||||
@ -247,32 +273,24 @@ void port_enable_tick(void) {
|
||||
// Disable 1/1024 second tick.
|
||||
void port_disable_tick(void) {
|
||||
esp_timer_stop(_tick_timer);
|
||||
|
||||
// CircuitPython's VM is run in a separate FreeRTOS task from TinyUSB.
|
||||
// Tick disable can happen via auto-reload so poke the main task here.
|
||||
if (sleeping_circuitpython_task != NULL) {
|
||||
xTaskNotifyGive(sleeping_circuitpython_task);
|
||||
}
|
||||
}
|
||||
|
||||
TickType_t sleep_time_duration;
|
||||
void sleep_timer_cb(void* arg) {
|
||||
xTaskNotifyGive(circuitpython_task);
|
||||
}
|
||||
|
||||
void port_interrupt_after_ticks(uint32_t ticks) {
|
||||
sleep_time_duration = (ticks * 100)/1024;
|
||||
uint64_t timeout_us = ticks * 1000000ull / 1024;
|
||||
if (esp_timer_start_once(_sleep_timer, timeout_us) != ESP_OK) {
|
||||
esp_timer_stop(_sleep_timer);
|
||||
esp_timer_start_once(_sleep_timer, timeout_us);
|
||||
}
|
||||
}
|
||||
|
||||
// On the ESP we use FreeRTOS notifications instead of interrupts so this is a
|
||||
// bit of a misnomer.
|
||||
void port_idle_until_interrupt(void) {
|
||||
uint32_t notify_value = 0;
|
||||
|
||||
if (sleep_time_duration == 0) {
|
||||
return;
|
||||
}
|
||||
sleeping_circuitpython_task = xTaskGetCurrentTaskHandle();
|
||||
xTaskNotifyWait(0x01, 0x01, ¬ify_value, sleep_time_duration );
|
||||
sleeping_circuitpython_task = NULL;
|
||||
if (notify_value == 1) {
|
||||
mp_handle_pending();
|
||||
}
|
||||
xTaskNotifyWait(0x01, 0x01, NULL, portMAX_DELAY);
|
||||
}
|
||||
|
||||
// Wrap main in app_main that the IDF expects.
|
||||
|
@ -26,6 +26,7 @@
|
||||
*/
|
||||
|
||||
#include "supervisor/usb.h"
|
||||
#include "supervisor/esp_port.h"
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "lib/mp-readline/readline.h"
|
||||
|
||||
@ -33,8 +34,7 @@
|
||||
#include "components/driver/include/driver/periph_ctrl.h"
|
||||
#include "components/driver/include/driver/gpio.h"
|
||||
#include "components/esp_rom/include/esp32s2/rom/gpio.h"
|
||||
#include "components/esp_rom/include/esp_rom_gpio.h"
|
||||
#include "components/hal/esp32s2/include/hal/gpio_ll.h"
|
||||
#include "components/soc/src/esp32s2/include/hal/gpio_ll.h"
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
@ -52,8 +52,6 @@
|
||||
StackType_t usb_device_stack[USBD_STACK_SIZE];
|
||||
StaticTask_t usb_device_taskdef;
|
||||
|
||||
TaskHandle_t sleeping_circuitpython_task = NULL;
|
||||
|
||||
// USB Device Driver task
|
||||
// This top level thread process all usb events and invoke callbacks
|
||||
void usb_device_task(void* param)
|
||||
@ -80,21 +78,18 @@ static void configure_pins (usb_hal_context_t *usb)
|
||||
*/
|
||||
for (const usb_iopin_dsc_t* iopin = usb_periph_iopins; iopin->pin != -1; ++iopin) {
|
||||
if ((usb->use_external_phy) || (iopin->ext_phy_only == 0)) {
|
||||
esp_rom_gpio_pad_select_gpio(iopin->pin);
|
||||
gpio_pad_select_gpio(iopin->pin);
|
||||
if (iopin->is_output) {
|
||||
esp_rom_gpio_connect_out_signal(iopin->pin, iopin->func, false, false);
|
||||
gpio_matrix_out(iopin->pin, iopin->func, false, false);
|
||||
} else {
|
||||
gpio_matrix_in(iopin->pin, iopin->func, false);
|
||||
gpio_pad_input_enable(iopin->pin);
|
||||
}
|
||||
else {
|
||||
esp_rom_gpio_connect_in_signal(iopin->pin, iopin->func, false);
|
||||
if ( (iopin->pin != GPIO_FUNC_IN_LOW) && (iopin->pin != GPIO_FUNC_IN_HIGH) ) {
|
||||
gpio_ll_input_enable(&GPIO, iopin->pin);
|
||||
}
|
||||
}
|
||||
esp_rom_gpio_pad_unhold(iopin->pin);
|
||||
gpio_pad_unhold(iopin->pin);
|
||||
}
|
||||
}
|
||||
if (!usb->use_external_phy) {
|
||||
gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
|
||||
gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
|
||||
gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
|
||||
}
|
||||
}
|
||||
@ -131,8 +126,6 @@ void tud_cdc_rx_wanted_cb(uint8_t itf, char wanted_char)
|
||||
mp_keyboard_interrupt();
|
||||
// CircuitPython's VM is run in a separate FreeRTOS task from TinyUSB.
|
||||
// So, we must notify the other task when a CTRL-C is received.
|
||||
if (sleeping_circuitpython_task != NULL) {
|
||||
xTaskNotifyGive(sleeping_circuitpython_task);
|
||||
}
|
||||
xTaskNotifyGive(circuitpython_task);
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,11 @@ SECTIONS
|
||||
*(.text.tu_edpt_dir)
|
||||
*(.text.tu_fifo_empty)
|
||||
*(.text.usbd_edpt_busy)
|
||||
*(.text.usb_irq_handler)
|
||||
*(.text.supervisor_tick)
|
||||
*(.text.port_get_raw_ticks)
|
||||
*(.text.__modsi3)
|
||||
*(.text.__udivsi3)
|
||||
*(.text.irq_getmask)
|
||||
*(.text.irq_setmask)
|
||||
*(.text.irq_pending)
|
||||
|
@ -42,6 +42,9 @@ void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
|
||||
}
|
||||
|
||||
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
if (pin == NULL) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(0, pin->number);
|
||||
}
|
||||
|
||||
|
@ -59,12 +59,15 @@ void common_hal_mcu_delay_us(uint32_t delay) {
|
||||
|
||||
volatile uint32_t nesting_count = 0;
|
||||
|
||||
__attribute__((section(".ramtext")))
|
||||
void common_hal_mcu_disable_interrupts(void) {
|
||||
if (nesting_count == 0) {
|
||||
irq_setie(0);
|
||||
// __DMB();
|
||||
}
|
||||
nesting_count++;
|
||||
}
|
||||
|
||||
__attribute__((section(".ramtext")))
|
||||
void common_hal_mcu_enable_interrupts(void) {
|
||||
if (nesting_count == 0) {
|
||||
// This is very very bad because it means there was mismatched disable/enables so we
|
||||
|
@ -44,16 +44,31 @@ void mp_hal_delay_us(mp_uint_t delay) {
|
||||
|
||||
extern void SysTick_Handler(void);
|
||||
|
||||
// This value contains the number of times "common_hal_mcu_disable_interrupts()"
|
||||
// has been called without calling "common_hal_mcu_enable_interrupts()". Since
|
||||
// this is the interrupt handler, that means we're handling an interrupt, so
|
||||
// this value should be `0`.
|
||||
//
|
||||
// Interrupts should already be disabled when this handler is running, which means
|
||||
// this value is logically already `1`. If we didn't do this, then interrupts would
|
||||
// be prematurely enabled by interrupt handlers that enable and disable interrupts.
|
||||
extern volatile uint32_t nesting_count;
|
||||
|
||||
__attribute__((section(".ramtext")))
|
||||
void isr(void) {
|
||||
uint8_t irqs = irq_pending() & irq_getmask();
|
||||
|
||||
// Increase the "nesting count". Note: This should be going from 0 -> 1.
|
||||
nesting_count += 1;
|
||||
#ifdef CFG_TUSB_MCU
|
||||
if (irqs & (1 << USB_INTERRUPT))
|
||||
usb_irq_handler();
|
||||
#endif
|
||||
if (irqs & (1 << TIMER0_INTERRUPT))
|
||||
SysTick_Handler();
|
||||
|
||||
// Decrease the "nesting count". Note: This should be going from 1 -> 0.
|
||||
nesting_count -= 1;
|
||||
}
|
||||
|
||||
mp_uint_t cpu_get_regs_and_sp(mp_uint_t *regs) {
|
||||
|
@ -32,6 +32,8 @@
|
||||
#include "irq.h"
|
||||
#include "csr.h"
|
||||
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
|
||||
// Global millisecond tick count. 1024 per second because most RTCs are clocked with 32.768khz
|
||||
// crystals.
|
||||
volatile uint64_t raw_ticks = 0;
|
||||
@ -129,9 +131,9 @@ uint32_t port_get_saved_word(void) {
|
||||
|
||||
uint64_t port_get_raw_ticks(uint8_t* subticks) {
|
||||
// Reading 64 bits may take two loads, so turn of interrupts while we do it.
|
||||
irq_setie(false);
|
||||
common_hal_mcu_disable_interrupts();
|
||||
uint64_t raw_tick_snapshot = raw_ticks;
|
||||
irq_setie(true);
|
||||
common_hal_mcu_enable_interrupts();
|
||||
return raw_tick_snapshot;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Feather MIMXRT1011"
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Feather MIMXRT1011"
|
||||
#define MICROPY_HW_MCU_NAME "IMXRT1011DAE5A"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO_00)
|
||||
|
@ -220,12 +220,9 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
|
||||
never_reset_spi[self->clock->bank_idx - 1] = false;
|
||||
|
||||
common_hal_reset_pin(self->clock->pin);
|
||||
if (self->mosi != NULL) {
|
||||
common_hal_reset_pin(self->mosi->pin);
|
||||
}
|
||||
if (self->miso != NULL) {
|
||||
common_hal_reset_pin(self->miso->pin);
|
||||
}
|
||||
|
||||
self->clock = NULL;
|
||||
self->mosi = NULL;
|
||||
self->miso = NULL;
|
||||
|
@ -295,12 +295,10 @@ void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
||||
LPUART_Deinit(self->uart);
|
||||
gc_free(self->ringbuf);
|
||||
|
||||
if (self->rx) {
|
||||
|
||||
common_hal_reset_pin(self->rx->pin);
|
||||
}
|
||||
if (self->tx) {
|
||||
common_hal_reset_pin(self->tx->pin);
|
||||
}
|
||||
|
||||
|
||||
self->rx = NULL;
|
||||
self->tx = NULL;
|
||||
|
@ -67,6 +67,9 @@ void reset_all_pins(void) {
|
||||
// Since i.MX pins need extra register and reset information to reset properly,
|
||||
// resetting pins by number alone has been removed.
|
||||
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
if (pin == NULL) {
|
||||
return;
|
||||
}
|
||||
never_reset_pins[pin->mux_idx] = false;
|
||||
claimed_pins[pin->mux_idx] = false;
|
||||
*(uint32_t*)pin->mux_reg = pin->mux_reset;
|
||||
|
4
ports/nrf/boards/bastble/README.md
Normal file
4
ports/nrf/boards/bastble/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
# Electronic Cats BastBLE
|
||||
|
||||
The [BastBLE](https://electroniccats.com/store/bast-ble/) based on Nordic nRF 52840 and containing
|
||||
a powerful Cortex M4F. This board include a external memory QSPI flash.
|
41
ports/nrf/boards/bastble/board.c
Normal file
41
ports/nrf/boards/bastble/board.c
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "nrf.h"
|
||||
#include "nrf_rtc.h"
|
||||
|
||||
void board_init(void) {
|
||||
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
|
||||
}
|
25
ports/nrf/boards/bastble/mpconfigboard.h
Normal file
25
ports/nrf/boards/bastble/mpconfigboard.h
Normal file
@ -0,0 +1,25 @@
|
||||
#include "nrfx/hal/nrf_gpio.h"
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "BastBLE"
|
||||
#define MICROPY_HW_MCU_NAME "nRF52840"
|
||||
|
||||
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
|
||||
|
||||
#if QSPI_FLASH_FILESYSTEM
|
||||
#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 30)
|
||||
#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 29)
|
||||
#define MICROPY_QSPI_DATA2 NRF_GPIO_PIN_MAP(0, 28)
|
||||
#define MICROPY_QSPI_DATA3 NRF_GPIO_PIN_MAP(0, 2)
|
||||
#define MICROPY_QSPI_SCK NRF_GPIO_PIN_MAP(0, 3)
|
||||
#define MICROPY_QSPI_CS NRF_GPIO_PIN_MAP(0, 26)
|
||||
#endif
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_P1_10)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_P1_11)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_P1_00)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_P1_06)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_P0_15)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_P0_09)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_P0_10)
|
10
ports/nrf/boards/bastble/mpconfigboard.mk
Normal file
10
ports/nrf/boards/bastble/mpconfigboard.mk
Normal file
@ -0,0 +1,10 @@
|
||||
USB_VID = 0x1209
|
||||
USB_PID = 0x805A
|
||||
USB_PRODUCT = "BastBLE"
|
||||
USB_MANUFACTURER = "ElectronicCats"
|
||||
|
||||
MCU_CHIP = nrf52840
|
||||
|
||||
QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = "GD25Q16C"
|
47
ports/nrf/boards/bastble/pins.c
Normal file
47
ports/nrf/boards/bastble/pins.c
Normal file
@ -0,0 +1,47 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_P1_11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P1_10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P1_00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P1_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P1_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P1_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P1_09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_26) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_07) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_03) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P1_11) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P1_10) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P1_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_15) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P1_00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_P0_24) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_AREF), MP_ROM_PTR(&pin_P0_31) },
|
||||
|
||||
// voltage sense battery
|
||||
{ MP_ROM_QSTR(MP_QSTR_VBAT), MP_ROM_PTR(&pin_P0_26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_09) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
};
|
||||
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
@ -470,7 +470,16 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t*
|
||||
ble_drv_add_event_handler(scan_on_ble_evt, self->scan_results);
|
||||
|
||||
uint32_t nrf_timeout = SEC_TO_UNITS(timeout, UNIT_10_MS);
|
||||
if (timeout <= 0.0001) {
|
||||
if (nrf_timeout > UINT16_MAX) {
|
||||
// 0xffff / 100
|
||||
mp_raise_ValueError(translate("timeout must be < 655.35 secs"));
|
||||
}
|
||||
if (nrf_timeout == 0 && timeout > 0.0f) {
|
||||
// Make sure converted timeout is > 0 if original timeout is > 0.
|
||||
mp_raise_ValueError(translate("non-zero timeout must be > 0.01"));
|
||||
}
|
||||
|
||||
if (nrf_timeout) {
|
||||
nrf_timeout = BLE_GAP_SCAN_TIMEOUT_UNLIMITED;
|
||||
}
|
||||
|
||||
|
@ -134,6 +134,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
}
|
||||
|
||||
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
if (pin == NULL) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(pin->number);
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
//Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "Feather STM32F405 Express"
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Feather STM32F405 Express"
|
||||
#define MICROPY_HW_MCU_NAME "STM32F405RG"
|
||||
|
||||
#define FLASH_SIZE (0x100000)
|
||||
|
@ -42,6 +42,9 @@
|
||||
// #define SPI_FLASH_SCK_PIN (&pin_PA05)
|
||||
// #define SPI_FLASH_CS_PIN (&pin_PA04)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PB06)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PB07)
|
||||
|
||||
#define CIRCUITPY_AUTORELOAD_DELAY_MS (500)
|
||||
|
||||
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x2000 - 0xC000)
|
||||
|
@ -35,5 +35,10 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_C14), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_C13), MP_ROM_PTR(&pin_PC13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PC13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB06) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
|
@ -125,6 +125,9 @@ void common_hal_never_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
}
|
||||
|
||||
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
|
||||
if (pin == NULL) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(pin->port, pin->number);
|
||||
}
|
||||
|
||||
|
@ -24,12 +24,14 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include <unistd.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifndef CHAR_CTRL_C
|
||||
#define CHAR_CTRL_C (3)
|
||||
#endif
|
||||
|
||||
void mp_hal_set_interrupt_char(char c);
|
||||
bool mp_hal_is_interrupted(void);
|
||||
|
||||
void mp_hal_stdio_mode_raw(void);
|
||||
void mp_hal_stdio_mode_orig(void);
|
||||
|
@ -81,6 +81,10 @@ void mp_hal_set_interrupt_char(char c) {
|
||||
}
|
||||
}
|
||||
|
||||
bool mp_hal_is_interrupted(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#if MICROPY_USE_READLINE == 1
|
||||
|
||||
#include <termios.h>
|
||||
|
@ -205,6 +205,9 @@ endif
|
||||
ifeq ($(CIRCUITPY_OS),1)
|
||||
SRC_PATTERNS += os/%
|
||||
endif
|
||||
ifeq ($(CIRCUITPY_DUALBANK),1)
|
||||
SRC_PATTERNS += dualbank/%
|
||||
endif
|
||||
ifeq ($(CIRCUITPY_PIXELBUF),1)
|
||||
SRC_PATTERNS += _pixelbuf/%
|
||||
endif
|
||||
@ -349,6 +352,7 @@ SRC_COMMON_HAL_ALL = \
|
||||
nvm/ByteArray.c \
|
||||
nvm/__init__.c \
|
||||
os/__init__.c \
|
||||
dualbank/__init__.c \
|
||||
ps2io/Ps2.c \
|
||||
ps2io/__init__.c \
|
||||
pulseio/PulseIn.c \
|
||||
|
@ -539,6 +539,13 @@ extern const struct _mp_obj_module_t os_module;
|
||||
#define OS_MODULE_ALT_NAME
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_DUALBANK
|
||||
extern const struct _mp_obj_module_t dualbank_module;
|
||||
#define DUALBANK_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_dualbank), (mp_obj_t)&dualbank_module },
|
||||
#else
|
||||
#define DUALBANK_MODULE
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_PEW
|
||||
extern const struct _mp_obj_module_t pew_module;
|
||||
#define PEW_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__pew),(mp_obj_t)&pew_module },
|
||||
@ -827,6 +834,7 @@ extern const struct _mp_obj_module_t wifi_module;
|
||||
NETWORK_MODULE \
|
||||
SOCKET_MODULE \
|
||||
WIZNET_MODULE \
|
||||
DUALBANK_MODULE \
|
||||
PEW_MODULE \
|
||||
PIXELBUF_MODULE \
|
||||
PS2IO_MODULE \
|
||||
|
@ -96,7 +96,7 @@ CFLAGS += -DCIRCUITPY_BLEIO=$(CIRCUITPY_BLEIO)
|
||||
CIRCUITPY_BOARD ?= 1
|
||||
CFLAGS += -DCIRCUITPY_BOARD=$(CIRCUITPY_BOARD)
|
||||
|
||||
CIRCUITPY_BUSDEVICE ?= $(CIRCUITPY_FULL_BUILD)
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
CFLAGS += -DCIRCUITPY_BUSDEVICE=$(CIRCUITPY_BUSDEVICE)
|
||||
|
||||
CIRCUITPY_BUILTINS_POW3 ?= $(CIRCUITPY_FULL_BUILD)
|
||||
@ -179,6 +179,9 @@ CFLAGS += -DCIRCUITPY_NVM=$(CIRCUITPY_NVM)
|
||||
CIRCUITPY_OS ?= 1
|
||||
CFLAGS += -DCIRCUITPY_OS=$(CIRCUITPY_OS)
|
||||
|
||||
CIRCUITPY_DUALBANK ?= 0
|
||||
CFLAGS += -DCIRCUITPY_DUALBANK=$(CIRCUITPY_DUALBANK)
|
||||
|
||||
CIRCUITPY_PIXELBUF ?= $(CIRCUITPY_FULL_BUILD)
|
||||
CFLAGS += -DCIRCUITPY_PIXELBUF=$(CIRCUITPY_PIXELBUF)
|
||||
|
||||
|
8
py/obj.c
8
py/obj.c
@ -29,6 +29,7 @@
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "py/obj.h"
|
||||
#include "py/objtype.h"
|
||||
#include "py/objint.h"
|
||||
@ -67,7 +68,12 @@ void mp_obj_print_helper(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t
|
||||
#ifdef RUN_BACKGROUND_TASKS
|
||||
RUN_BACKGROUND_TASKS;
|
||||
#endif
|
||||
mp_handle_pending();
|
||||
#if MICROPY_KBD_EXCEPTION
|
||||
// Stop printing if we've been interrupted.
|
||||
if (mp_hal_is_interrupted()) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef NDEBUG
|
||||
if (o_in == MP_OBJ_NULL) {
|
||||
|
2
py/vm.c
2
py/vm.c
@ -1015,7 +1015,7 @@ unwind_jump:;
|
||||
}
|
||||
#endif
|
||||
SET_TOP(mp_call_method_n_kw(unum & 0xff, (unum >> 8) & 0xff, sp));
|
||||
DISPATCH();
|
||||
DISPATCH_WITH_PEND_EXC_CHECK();
|
||||
}
|
||||
|
||||
ENTRY(MP_BC_CALL_METHOD_VAR_KW): {
|
||||
|
@ -33,8 +33,8 @@
|
||||
#include "shared-bindings/_bleio/Address.h"
|
||||
#include "shared-bindings/_bleio/Adapter.h"
|
||||
|
||||
#define ADV_INTERVAL_MIN (0.0020f)
|
||||
#define ADV_INTERVAL_MIN_STRING "0.0020"
|
||||
#define ADV_INTERVAL_MIN (0.02001f)
|
||||
#define ADV_INTERVAL_MIN_STRING "0.02001"
|
||||
#define ADV_INTERVAL_MAX (10.24f)
|
||||
#define ADV_INTERVAL_MAX_STRING "10.24"
|
||||
// 20ms is recommended by Apple
|
||||
@ -307,7 +307,7 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
mp_float_t timeout = 0;
|
||||
mp_float_t timeout = 0.0f;
|
||||
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||
}
|
||||
@ -325,6 +325,13 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
|
||||
mp_raise_ValueError_varg(translate("interval must be in range %s-%s"), INTERVAL_MIN_STRING, INTERVAL_MAX_STRING);
|
||||
}
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wfloat-equal"
|
||||
if (timeout != 0.0f && timeout < interval) {
|
||||
mp_raise_ValueError(translate("non-zero timeout must be >= interval"));
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
const mp_float_t window = mp_obj_float_get(args[ARG_window].u_obj);
|
||||
if (window > interval) {
|
||||
mp_raise_ValueError(translate("window must be <= interval"));
|
||||
|
@ -110,8 +110,8 @@ STATIC mp_obj_t bleio_characteristic_add_to_service(size_t n_args, const mp_obj_
|
||||
common_hal_bleio_attribute_security_mode_check_valid(write_perm);
|
||||
|
||||
const mp_int_t max_length_int = args[ARG_max_length].u_int;
|
||||
if (max_length_int <= 0) {
|
||||
mp_raise_ValueError(translate("max_length must be > 0"));
|
||||
if (max_length_int < 0) {
|
||||
mp_raise_ValueError(translate("max_length must be >= 0"));
|
||||
}
|
||||
const size_t max_length = (size_t) max_length_int;
|
||||
const bool fixed_length = args[ARG_fixed_length].u_bool;
|
||||
|
@ -101,8 +101,8 @@ STATIC mp_obj_t bleio_descriptor_add_to_characteristic(size_t n_args, const mp_o
|
||||
common_hal_bleio_attribute_security_mode_check_valid(write_perm);
|
||||
|
||||
const mp_int_t max_length_int = args[ARG_max_length].u_int;
|
||||
if (max_length_int <= 0) {
|
||||
mp_raise_ValueError(translate("max_length must be > 0"));
|
||||
if (max_length_int < 0) {
|
||||
mp_raise_ValueError(translate("max_length must be >= 0"));
|
||||
}
|
||||
const size_t max_length = (size_t) max_length_int;
|
||||
const bool fixed_length = args[ARG_fixed_length].u_bool;
|
||||
|
@ -163,7 +163,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(adafruit_bus_device_i2cdevice_readinto_obj, 2,
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
STATIC void write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, int32_t start, mp_int_t end) {
|
||||
STATIC void write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, int32_t start, mp_int_t end, bool transmit_stop_bit) {
|
||||
mp_buffer_info_t bufinfo;
|
||||
mp_get_buffer_raise(buffer, &bufinfo, MP_BUFFER_READ);
|
||||
|
||||
@ -173,7 +173,7 @@ STATIC void write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, in
|
||||
mp_raise_ValueError(translate("Buffer must be at least length 1"));
|
||||
}
|
||||
|
||||
uint8_t status = common_hal_adafruit_bus_device_i2cdevice_write(MP_OBJ_TO_PTR(self), ((uint8_t*)bufinfo.buf) + start, length);
|
||||
uint8_t status = common_hal_adafruit_bus_device_i2cdevice_write(MP_OBJ_TO_PTR(self), ((uint8_t*)bufinfo.buf) + start, length, transmit_stop_bit);
|
||||
if (status != 0) {
|
||||
mp_raise_OSError(status);
|
||||
}
|
||||
@ -191,7 +191,7 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_write(size_t n_args, const mp_obj_
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
write(self, args[ARG_buffer].u_obj, args[ARG_start].u_int, args[ARG_end].u_int);
|
||||
write(self, args[ARG_buffer].u_obj, args[ARG_start].u_int, args[ARG_end].u_int, true);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(adafruit_bus_device_i2cdevice_write_obj, 2, adafruit_bus_device_i2cdevice_write);
|
||||
@ -233,7 +233,7 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_write_then_readinto(size_t n_args,
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
write(self, args[ARG_out_buffer].u_obj, args[ARG_out_start].u_int, args[ARG_out_end].u_int);
|
||||
write(self, args[ARG_out_buffer].u_obj, args[ARG_out_start].u_int, args[ARG_out_end].u_int, false);
|
||||
|
||||
readinto(self, args[ARG_in_buffer].u_obj, args[ARG_in_start].u_int, args[ARG_in_end].u_int);
|
||||
|
||||
|
@ -45,7 +45,7 @@ extern const mp_obj_type_t adafruit_bus_device_i2cdevice_type;
|
||||
// Initializes the hardware peripheral.
|
||||
extern void common_hal_adafruit_bus_device_i2cdevice_construct(adafruit_bus_device_i2cdevice_obj_t *self, busio_i2c_obj_t *i2c, uint8_t device_address);
|
||||
extern uint8_t common_hal_adafruit_bus_device_i2cdevice_readinto(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length);
|
||||
extern uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length);
|
||||
extern uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length, bool transmit_stop_bit);
|
||||
extern void common_hal_adafruit_bus_device_i2cdevice_lock(adafruit_bus_device_i2cdevice_obj_t *self);
|
||||
extern void common_hal_adafruit_bus_device_i2cdevice_unlock(adafruit_bus_device_i2cdevice_obj_t *self);
|
||||
extern void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_device_i2cdevice_obj_t *self);
|
||||
|
@ -72,8 +72,8 @@
|
||||
|
||||
void validate_objs_are_alarms(size_t n_args, const mp_obj_t *objs) {
|
||||
for (size_t i = 0; i < n_args; i++) {
|
||||
if (MP_OBJ_IS_TYPE(objs[i], &alarm_pin_pin_alarm_type) ||
|
||||
MP_OBJ_IS_TYPE(objs[i], &alarm_time_time_alarm_type) ||
|
||||
if (MP_OBJ_IS_TYPE(objs[i], &alarm_pin_pinalarm_type) ||
|
||||
MP_OBJ_IS_TYPE(objs[i], &alarm_time_timealarm_type) ||
|
||||
MP_OBJ_IS_TYPE(objs[i], &alarm_touch_touchalarm_type)) {
|
||||
continue;
|
||||
}
|
||||
@ -161,7 +161,7 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(alarm_exit_and_deep_sleep_until_alarms_obj,
|
||||
STATIC const mp_map_elem_t alarm_pin_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_pin) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_PinAlarm), MP_OBJ_FROM_PTR(&alarm_pin_pin_alarm_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PinAlarm), MP_OBJ_FROM_PTR(&alarm_pin_pinalarm_type) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(alarm_pin_globals, alarm_pin_globals_table);
|
||||
@ -174,7 +174,7 @@ STATIC const mp_obj_module_t alarm_pin_module = {
|
||||
STATIC const mp_map_elem_t alarm_time_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_time) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_TimeAlarm), MP_OBJ_FROM_PTR(&alarm_time_time_alarm_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TimeAlarm), MP_OBJ_FROM_PTR(&alarm_time_timealarm_type) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(alarm_time_globals, alarm_time_globals_table);
|
||||
@ -216,6 +216,17 @@ STATIC mp_map_elem_t alarm_module_globals_table[] = {
|
||||
};
|
||||
STATIC MP_DEFINE_MUTABLE_DICT(alarm_module_globals, alarm_module_globals_table);
|
||||
|
||||
// Fetch value from module dict.
|
||||
mp_obj_t alarm_get_wake_alarm(void) {
|
||||
mp_map_elem_t *elem =
|
||||
mp_map_lookup(&alarm_module_globals.map, MP_ROM_QSTR(MP_QSTR_wake_alarm), MP_MAP_LOOKUP);
|
||||
if (elem) {
|
||||
return elem->value;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC void alarm_set_wake_alarm(mp_obj_t alarm) {
|
||||
// Equivalent of:
|
||||
// alarm.wake_alarm = alarm
|
||||
|
@ -43,6 +43,10 @@ extern void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj
|
||||
// Deep sleep is entered outside of the VM so we omit the `common_hal_` prefix.
|
||||
extern NORETURN void alarm_enter_deep_sleep(void);
|
||||
|
||||
// Fetches value from module dict.
|
||||
extern mp_obj_t alarm_get_wake_alarm(void);
|
||||
|
||||
extern void common_hal_alarm_gc_collect(void);
|
||||
extern mp_obj_t common_hal_alarm_get_wake_alarm(void);
|
||||
|
||||
// Used by wake-up code.
|
||||
@ -52,4 +56,5 @@ void alarm_save_wakeup_alarm(void);
|
||||
// True if an alarm is alerting. This is most useful for pretend deep sleep.
|
||||
extern bool alarm_woken_from_sleep(void);
|
||||
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM___INIT___H
|
||||
|
@ -60,9 +60,9 @@
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t alarm_pin_pin_alarm_make_new(const mp_obj_type_t *type, mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
alarm_pin_pin_alarm_obj_t *self = m_new_obj(alarm_pin_pin_alarm_obj_t);
|
||||
self->base.type = &alarm_pin_pin_alarm_type;
|
||||
STATIC mp_obj_t alarm_pin_pinalarm_make_new(const mp_obj_type_t *type, mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
alarm_pin_pinalarm_obj_t *self = m_new_obj(alarm_pin_pinalarm_obj_t);
|
||||
self->base.type = &alarm_pin_pinalarm_type;
|
||||
enum { ARG_pin, ARG_value, ARG_edge, ARG_pull };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_pin, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
@ -75,7 +75,7 @@ STATIC mp_obj_t alarm_pin_pin_alarm_make_new(const mp_obj_type_t *type, mp_uint_
|
||||
|
||||
mcu_pin_obj_t *pin = validate_obj_is_free_pin(args[ARG_pin].u_obj);
|
||||
|
||||
common_hal_alarm_pin_pin_alarm_construct(self,
|
||||
common_hal_alarm_pin_pinalarm_construct(self,
|
||||
pin,
|
||||
args[ARG_value].u_bool,
|
||||
args[ARG_edge].u_bool,
|
||||
@ -87,15 +87,19 @@ STATIC mp_obj_t alarm_pin_pin_alarm_make_new(const mp_obj_type_t *type, mp_uint_
|
||||
//| pin: microcontroller.Pin
|
||||
//| """The trigger pin."""
|
||||
//|
|
||||
STATIC mp_obj_t alarm_pin_pin_alarm_obj_get_pin(mp_obj_t self_in) {
|
||||
alarm_pin_pin_alarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
return common_hal_alarm_pin_pin_alarm_get_pin(self);
|
||||
STATIC mp_obj_t alarm_pin_pinalarm_obj_get_pin(mp_obj_t self_in) {
|
||||
alarm_pin_pinalarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
mcu_pin_obj_t* pin = common_hal_alarm_pin_pinalarm_get_pin(self);
|
||||
if (pin == NULL) {
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(alarm_pin_pin_alarm_get_pin_obj, alarm_pin_pin_alarm_obj_get_pin);
|
||||
return MP_OBJ_FROM_PTR(pin);
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(alarm_pin_pinalarm_get_pin_obj, alarm_pin_pinalarm_obj_get_pin);
|
||||
|
||||
const mp_obj_property_t alarm_pin_pin_alarm_pin_obj = {
|
||||
const mp_obj_property_t alarm_pin_pinalarm_pin_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&alarm_pin_pin_alarm_get_pin_obj,
|
||||
.proxy = {(mp_obj_t)&alarm_pin_pinalarm_get_pin_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
@ -103,29 +107,29 @@ const mp_obj_property_t alarm_pin_pin_alarm_pin_obj = {
|
||||
//| value: bool
|
||||
//| """The value on which to trigger."""
|
||||
//|
|
||||
STATIC mp_obj_t alarm_pin_pin_alarm_obj_get_value(mp_obj_t self_in) {
|
||||
alarm_pin_pin_alarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
return mp_obj_new_bool(common_hal_alarm_pin_pin_alarm_get_value(self));
|
||||
STATIC mp_obj_t alarm_pin_pinalarm_obj_get_value(mp_obj_t self_in) {
|
||||
alarm_pin_pinalarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
return mp_obj_new_bool(common_hal_alarm_pin_pinalarm_get_value(self));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(alarm_pin_pin_alarm_get_value_obj, alarm_pin_pin_alarm_obj_get_value);
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(alarm_pin_pinalarm_get_value_obj, alarm_pin_pinalarm_obj_get_value);
|
||||
|
||||
const mp_obj_property_t alarm_pin_pin_alarm_value_obj = {
|
||||
const mp_obj_property_t alarm_pin_pinalarm_value_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&alarm_pin_pin_alarm_get_value_obj,
|
||||
.proxy = {(mp_obj_t)&alarm_pin_pinalarm_get_value_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
|
||||
STATIC const mp_rom_map_elem_t alarm_pin_pin_alarm_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&alarm_pin_pin_alarm_pin_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_value), MP_ROM_PTR(&alarm_pin_pin_alarm_value_obj) },
|
||||
STATIC const mp_rom_map_elem_t alarm_pin_pinalarm_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&alarm_pin_pinalarm_pin_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_value), MP_ROM_PTR(&alarm_pin_pinalarm_value_obj) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(alarm_pin_pin_alarm_locals_dict, alarm_pin_pin_alarm_locals_dict_table);
|
||||
STATIC MP_DEFINE_CONST_DICT(alarm_pin_pinalarm_locals_dict, alarm_pin_pinalarm_locals_dict_table);
|
||||
|
||||
const mp_obj_type_t alarm_pin_pin_alarm_type = {
|
||||
const mp_obj_type_t alarm_pin_pinalarm_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_PinAlarm,
|
||||
.make_new = alarm_pin_pin_alarm_make_new,
|
||||
.locals_dict = (mp_obj_t)&alarm_pin_pin_alarm_locals_dict,
|
||||
.make_new = alarm_pin_pinalarm_make_new,
|
||||
.locals_dict = (mp_obj_t)&alarm_pin_pinalarm_locals_dict,
|
||||
};
|
||||
|
@ -24,20 +24,20 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PIN_ALARM_H
|
||||
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PIN_ALARM_H
|
||||
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PINALARM_H
|
||||
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PINALARM_H
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "py/objtuple.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "common-hal/alarm/pin/PinAlarm.h"
|
||||
|
||||
extern const mp_obj_type_t alarm_pin_pin_alarm_type;
|
||||
extern const mp_obj_type_t alarm_pin_pinalarm_type;
|
||||
|
||||
void common_hal_alarm_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull);
|
||||
extern mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self);
|
||||
extern bool common_hal_alarm_pin_pin_alarm_get_value(alarm_pin_pin_alarm_obj_t *self);
|
||||
extern bool common_hal_alarm_pin_pin_alarm_get_edge(alarm_pin_pin_alarm_obj_t *self);
|
||||
extern bool common_hal_alarm_pin_pin_alarm_get_pull(alarm_pin_pin_alarm_obj_t *self);
|
||||
void common_hal_alarm_pin_pinalarm_construct(alarm_pin_pinalarm_obj_t *self, mcu_pin_obj_t *pin, bool value, bool edge, bool pull);
|
||||
extern mcu_pin_obj_t *common_hal_alarm_pin_pinalarm_get_pin(alarm_pin_pinalarm_obj_t *self);
|
||||
extern bool common_hal_alarm_pin_pinalarm_get_value(alarm_pin_pinalarm_obj_t *self);
|
||||
extern bool common_hal_alarm_pin_pinalarm_get_edge(alarm_pin_pinalarm_obj_t *self);
|
||||
extern bool common_hal_alarm_pin_pinalarm_get_pull(alarm_pin_pinalarm_obj_t *self);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PIN_ALARM_H
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PINALARM_H
|
||||
|
@ -56,10 +56,10 @@ mp_obj_t MP_WEAK rtc_get_time_source_time(void) {
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t alarm_time_time_alarm_make_new(const mp_obj_type_t *type,
|
||||
STATIC mp_obj_t alarm_time_timealarm_make_new(const mp_obj_type_t *type,
|
||||
mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
alarm_time_time_alarm_obj_t *self = m_new_obj(alarm_time_time_alarm_obj_t);
|
||||
self->base.type = &alarm_time_time_alarm_type;
|
||||
alarm_time_timealarm_obj_t *self = m_new_obj(alarm_time_timealarm_obj_t);
|
||||
self->base.type = &alarm_time_timealarm_type;
|
||||
|
||||
enum { ARG_monotonic_time, ARG_epoch_time };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
@ -105,7 +105,7 @@ STATIC mp_obj_t alarm_time_time_alarm_make_new(const mp_obj_type_t *type,
|
||||
mp_raise_ValueError(translate("Time is in the past."));
|
||||
}
|
||||
|
||||
common_hal_alarm_time_time_alarm_construct(self, monotonic_time);
|
||||
common_hal_alarm_time_timealarm_construct(self, monotonic_time);
|
||||
|
||||
return MP_OBJ_FROM_PTR(self);
|
||||
}
|
||||
@ -116,28 +116,28 @@ STATIC mp_obj_t alarm_time_time_alarm_make_new(const mp_obj_type_t *type,
|
||||
//| by this property only as a `time.monotonic()` time.
|
||||
//| """
|
||||
//|
|
||||
STATIC mp_obj_t alarm_time_time_alarm_obj_get_monotonic_time(mp_obj_t self_in) {
|
||||
alarm_time_time_alarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
return mp_obj_new_float(common_hal_alarm_time_time_alarm_get_monotonic_time(self));
|
||||
STATIC mp_obj_t alarm_time_timealarm_obj_get_monotonic_time(mp_obj_t self_in) {
|
||||
alarm_time_timealarm_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
return mp_obj_new_float(common_hal_alarm_time_timealarm_get_monotonic_time(self));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(alarm_time_time_alarm_get_monotonic_time_obj, alarm_time_time_alarm_obj_get_monotonic_time);
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(alarm_time_timealarm_get_monotonic_time_obj, alarm_time_timealarm_obj_get_monotonic_time);
|
||||
|
||||
const mp_obj_property_t alarm_time_time_alarm_monotonic_time_obj = {
|
||||
const mp_obj_property_t alarm_time_timealarm_monotonic_time_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&alarm_time_time_alarm_get_monotonic_time_obj,
|
||||
.proxy = {(mp_obj_t)&alarm_time_timealarm_get_monotonic_time_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
|
||||
STATIC const mp_rom_map_elem_t alarm_time_time_alarm_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_monotonic_time), MP_ROM_PTR(&alarm_time_time_alarm_monotonic_time_obj) },
|
||||
STATIC const mp_rom_map_elem_t alarm_time_timealarm_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_monotonic_time), MP_ROM_PTR(&alarm_time_timealarm_monotonic_time_obj) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(alarm_time_time_alarm_locals_dict, alarm_time_time_alarm_locals_dict_table);
|
||||
STATIC MP_DEFINE_CONST_DICT(alarm_time_timealarm_locals_dict, alarm_time_timealarm_locals_dict_table);
|
||||
|
||||
const mp_obj_type_t alarm_time_time_alarm_type = {
|
||||
const mp_obj_type_t alarm_time_timealarm_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_TimeAlarm,
|
||||
.make_new = alarm_time_time_alarm_make_new,
|
||||
.locals_dict = (mp_obj_t)&alarm_time_time_alarm_locals_dict,
|
||||
.make_new = alarm_time_timealarm_make_new,
|
||||
.locals_dict = (mp_obj_t)&alarm_time_timealarm_locals_dict,
|
||||
};
|
||||
|
@ -24,16 +24,16 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_MONOTONIC_TIME_ALARM_H
|
||||
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_MONOTINIC_TIME_ALARM_H
|
||||
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_TIMEALARM_H
|
||||
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_TIMEALARM_H
|
||||
|
||||
#include "py/obj.h"
|
||||
|
||||
#include "common-hal/alarm/time/TimeAlarm.h"
|
||||
|
||||
extern const mp_obj_type_t alarm_time_time_alarm_type;
|
||||
extern const mp_obj_type_t alarm_time_timealarm_type;
|
||||
|
||||
extern void common_hal_alarm_time_time_alarm_construct(alarm_time_time_alarm_obj_t *self, mp_float_t monotonic_time);
|
||||
extern mp_float_t common_hal_alarm_time_time_alarm_get_monotonic_time(alarm_time_time_alarm_obj_t *self);
|
||||
extern void common_hal_alarm_time_timealarm_construct(alarm_time_timealarm_obj_t *self, mp_float_t monotonic_time);
|
||||
extern mp_float_t common_hal_alarm_time_timealarm_get_monotonic_time(alarm_time_timealarm_obj_t *self);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_MONOTONIC_TIME_ALARM_H
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_TIMEALARM_H
|
||||
|
115
shared-bindings/dualbank/__init__.c
Normal file
115
shared-bindings/dualbank/__init__.c
Normal file
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* This file is part of the Micro Python project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "shared-bindings/dualbank/__init__.h"
|
||||
|
||||
//| """DUALBANK Module
|
||||
//|
|
||||
//| The `dualbank` module adds ability to update and switch
|
||||
//| between the two app partitions.
|
||||
//|
|
||||
//| There are two identical partitions, these contain different
|
||||
//| firmware versions.
|
||||
//| Having two partitions enables rollback functionality.
|
||||
//|
|
||||
//| The two partitions are defined as boot partition and
|
||||
//| next-update partition. Calling `dualbank.flash()` writes
|
||||
//| the next-update partition.
|
||||
//|
|
||||
//| After the next-update partition is written a validation
|
||||
//| check is performed and on a successful validation this
|
||||
//| partition is set as the boot partition. On next reset,
|
||||
//| firmware will be loaded from this partition.
|
||||
//|
|
||||
//| Here is the sequence of commands to follow:
|
||||
//|
|
||||
//| .. code-block:: python
|
||||
//|
|
||||
//| import dualbank
|
||||
//|
|
||||
//| dualbank.flash(buffer, offset)
|
||||
//| dualbank.switch()
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
|
||||
//| def flash(*buffer: ReadableBuffer, offset: int=0) -> None:
|
||||
//| """Writes one of two app partitions at the given offset.
|
||||
//|
|
||||
//| This can be called multiple times when flashing the firmware
|
||||
//| in small chunks.
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t dualbank_flash(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_buffer, ARG_offset };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_buffer, MP_ARG_OBJ | MP_ARG_REQUIRED },
|
||||
{ MP_QSTR_offset, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0} },
|
||||
};
|
||||
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
if (args[ARG_offset].u_int < 0) {
|
||||
mp_raise_ValueError(translate("offset must be >= 0"));
|
||||
}
|
||||
|
||||
mp_buffer_info_t bufinfo;
|
||||
mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_READ);
|
||||
|
||||
common_hal_dualbank_flash(bufinfo.buf, bufinfo.len, args[ARG_offset].u_int);
|
||||
return mp_const_none;
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(dualbank_flash_obj, 0, dualbank_flash);
|
||||
|
||||
//| def switch() -> None:
|
||||
//| """Switches the boot partition.
|
||||
//|
|
||||
//| On next reset, firmware will be loaded from the partition
|
||||
//| just switched over to.
|
||||
//| """
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t dualbank_switch(void) {
|
||||
common_hal_dualbank_switch();
|
||||
return mp_const_none;
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(dualbank_switch_obj, dualbank_switch);
|
||||
|
||||
STATIC const mp_rom_map_elem_t dualbank_module_globals_table[] = {
|
||||
// module name
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_dualbank) },
|
||||
// module functions
|
||||
{ MP_ROM_QSTR(MP_QSTR_flash), MP_ROM_PTR(&dualbank_flash_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_switch), MP_ROM_PTR(&dualbank_switch_obj) },
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(dualbank_module_globals, dualbank_module_globals_table);
|
||||
|
||||
const mp_obj_module_t dualbank_module = {
|
||||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t*)&dualbank_module_globals,
|
||||
};
|
35
shared-bindings/dualbank/__init__.h
Normal file
35
shared-bindings/dualbank/__init__.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DUALBANK___INIT___H
|
||||
#define MICROPY_INCLUDED_SHARED_BINDINGS_DUALBANK___INIT___H
|
||||
|
||||
#include "py/runtime.h"
|
||||
|
||||
extern void common_hal_dualbank_switch(void);
|
||||
extern void common_hal_dualbank_flash(const void *buf, const size_t len, const size_t offset);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DUALBANK___INIT___H
|
@ -108,12 +108,29 @@ const mp_obj_property_t wifi_network_channel_obj = {
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| country: str
|
||||
//| """String id of the country code"""
|
||||
//|
|
||||
STATIC mp_obj_t wifi_network_get_country(mp_obj_t self) {
|
||||
return common_hal_wifi_network_get_country(self);
|
||||
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(wifi_network_get_country_obj, wifi_network_get_country);
|
||||
|
||||
const mp_obj_property_t wifi_network_country_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = { (mp_obj_t)&wifi_network_get_country_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
|
||||
STATIC const mp_rom_map_elem_t wifi_network_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_ssid), MP_ROM_PTR(&wifi_network_ssid_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_bssid), MP_ROM_PTR(&wifi_network_bssid_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_rssi), MP_ROM_PTR(&wifi_network_rssi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_channel), MP_ROM_PTR(&wifi_network_channel_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_country), MP_ROM_PTR(&wifi_network_country_obj) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(wifi_network_locals_dict, wifi_network_locals_dict_table);
|
||||
|
@ -39,5 +39,6 @@ extern mp_obj_t common_hal_wifi_network_get_ssid(wifi_network_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_network_get_bssid(wifi_network_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_network_get_rssi(wifi_network_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_network_get_channel(wifi_network_obj_t *self);
|
||||
extern mp_obj_t common_hal_wifi_network_get_country(wifi_network_obj_t *self);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_WIFI_NETWORK_H
|
||||
|
@ -295,7 +295,7 @@ const mp_obj_property_t wifi_radio_ipv4_dns_obj = {
|
||||
};
|
||||
|
||||
//| ap_info: Optional[Network]
|
||||
//| """Network object containing BSSID, SSID, channel, and RSSI when connected to an access point. None otherwise."""
|
||||
//| """Network object containing BSSID, SSID, channel, country and RSSI when connected to an access point. None otherwise."""
|
||||
//|
|
||||
STATIC mp_obj_t wifi_radio_get_ap_info(mp_obj_t self) {
|
||||
return common_hal_wifi_radio_get_ap_info(self);
|
||||
|
@ -57,8 +57,8 @@ uint8_t common_hal_adafruit_bus_device_i2cdevice_readinto(adafruit_bus_device_i2
|
||||
return common_hal_busio_i2c_read(self->i2c, self->device_address, buffer, length);
|
||||
}
|
||||
|
||||
uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length) {
|
||||
return common_hal_busio_i2c_write(self->i2c, self->device_address, buffer, length, true);
|
||||
uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length, bool transmit_stop_bit) {
|
||||
return common_hal_busio_i2c_write(self->i2c, self->device_address, buffer, length, transmit_stop_bit);
|
||||
}
|
||||
|
||||
void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_device_i2cdevice_obj_t *self) {
|
||||
|
@ -29,6 +29,8 @@
|
||||
#include "py/misc.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#define NO_TRANSPARENT_COLOR (0x1000000)
|
||||
|
||||
uint32_t displayio_colorconverter_dither_noise_1 (uint32_t n)
|
||||
{
|
||||
n = (n >> 13) ^ n;
|
||||
@ -42,6 +44,7 @@ uint32_t displayio_colorconverter_dither_noise_2(uint32_t x, uint32_t y) {
|
||||
|
||||
void common_hal_displayio_colorconverter_construct(displayio_colorconverter_t* self, bool dither) {
|
||||
self->dither = dither;
|
||||
self->transparent_color = NO_TRANSPARENT_COLOR;
|
||||
}
|
||||
|
||||
uint16_t displayio_colorconverter_compute_rgb565(uint32_t color_rgb888) {
|
||||
@ -130,7 +133,7 @@ bool common_hal_displayio_colorconverter_get_dither(displayio_colorconverter_t*
|
||||
}
|
||||
|
||||
void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color) {
|
||||
if (self->transparent_color >= 0x1000000) {
|
||||
if (self->transparent_color != NO_TRANSPARENT_COLOR) {
|
||||
mp_raise_RuntimeError(translate("Only one color can be transparent at a time"));
|
||||
}
|
||||
self->transparent_color = transparent_color;
|
||||
@ -138,8 +141,8 @@ void common_hal_displayio_colorconverter_make_transparent(displayio_colorconvert
|
||||
|
||||
void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color) {
|
||||
(void) transparent_color;
|
||||
// 0x1000000 will never equal a valid color
|
||||
self->transparent_color = 0x1000000;
|
||||
// NO_TRANSPARENT_COLOR will never equal a valid color
|
||||
self->transparent_color = NO_TRANSPARENT_COLOR;
|
||||
}
|
||||
|
||||
void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _displayio_colorspace_t* colorspace, const displayio_input_pixel_t *input_pixel, displayio_output_pixel_t *output_color) {
|
||||
|
@ -76,10 +76,8 @@ void common_hal_displayio_fourwire_deinit(displayio_fourwire_obj_t* self) {
|
||||
|
||||
common_hal_reset_pin(self->command.pin);
|
||||
common_hal_reset_pin(self->chip_select.pin);
|
||||
if (self->reset.pin) {
|
||||
common_hal_reset_pin(self->reset.pin);
|
||||
}
|
||||
}
|
||||
|
||||
bool common_hal_displayio_fourwire_reset(mp_obj_t obj) {
|
||||
displayio_fourwire_obj_t* self = MP_OBJ_TO_PTR(obj);
|
||||
|
@ -57,7 +57,7 @@ void common_hal_displayio_ondiskbitmap_construct(displayio_ondiskbitmap_t *self,
|
||||
uint32_t compression = read_word(bmp_header, 15);
|
||||
uint32_t number_of_colors = read_word(bmp_header, 23);
|
||||
|
||||
bool indexed = ((bits_per_pixel <= 8) && (number_of_colors != 0));
|
||||
bool indexed = bits_per_pixel <= 8;
|
||||
self->bitfield_compressed = (compression == 3);
|
||||
self->bits_per_pixel = bits_per_pixel;
|
||||
self->width = read_word(bmp_header, 9);
|
||||
@ -75,6 +75,9 @@ void common_hal_displayio_ondiskbitmap_construct(displayio_ondiskbitmap_t *self,
|
||||
self->b_bitmask = 0x1f;
|
||||
}
|
||||
} else if (indexed && self->bits_per_pixel != 1) {
|
||||
if (number_of_colors == 0) {
|
||||
number_of_colors = 1 << bits_per_pixel;
|
||||
}
|
||||
uint16_t palette_size = number_of_colors * sizeof(uint32_t);
|
||||
uint16_t palette_offset = 0xe + header_size;
|
||||
|
||||
|
@ -94,6 +94,26 @@ typedef struct {
|
||||
.single_status_byte = false, \
|
||||
}
|
||||
|
||||
// Settings for the Adesto Tech AT25DF641-SSHD-T 8MiB SPI flash
|
||||
// for the Oak Dev Tech Icy Tree M0 (SAMD21) feather board.
|
||||
// Source: https://www.digikey.com/product-detail/en/adesto-technologies/AT25SF641-SDHD-T/1265-1180-1-ND/
|
||||
// Datasheet: https://www.adestotech.com/wp-content/uploads/doc8693.pdf
|
||||
#define AT25DF641A {\
|
||||
.total_size = (1 << 23), /* 8 MiB */ \
|
||||
.start_up_time_us = 10000, \
|
||||
.manufacturer_id = 0x1f, \
|
||||
.memory_type = 0x48, \
|
||||
.capacity = 0x00, \
|
||||
.max_clock_speed_mhz = 85, \
|
||||
.quad_enable_bit_mask = 0x00, \
|
||||
.has_sector_protection = true, \
|
||||
.supports_fast_read = true, \
|
||||
.supports_qspi = false, \
|
||||
.supports_qspi_writes = false, \
|
||||
.write_status_register_split = false, \
|
||||
.single_status_byte = false, \
|
||||
}
|
||||
|
||||
// Settings for the Adesto Tech AT25SF161-SSHD-T 2MiB SPI flash
|
||||
// for the StringCar M0 (SAMD21) Express board.
|
||||
// Source: https://www.digikey.com/product-detail/en/adesto-technologies/AT25SF161-SDHD-T/1265-1230-1-ND/
|
||||
@ -114,6 +134,7 @@ typedef struct {
|
||||
.single_status_byte = false, \
|
||||
}
|
||||
|
||||
|
||||
// Settings for the Adesto Tech AT25SF041 1MiB SPI flash. It's on the SparkFun
|
||||
// SAMD51 Thing Plus board
|
||||
// Datasheet: https://www.adestotech.com/wp-content/uploads/DS-AT25SF041_044.pdf
|
||||
@ -363,6 +384,24 @@ typedef struct {
|
||||
.write_status_register_split = false, \
|
||||
}
|
||||
|
||||
// Settings for the Winbond W25Q64FV 8MiB SPI flash.
|
||||
// Datasheet: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
|
||||
#define W25Q64FV {\
|
||||
.total_size = (1 << 23), /* 8 MiB */ \
|
||||
.start_up_time_us = 5000, \
|
||||
.manufacturer_id = 0xef, \
|
||||
.memory_type = 0x40, \
|
||||
.capacity = 0x17, \
|
||||
.max_clock_speed_mhz = 104, \
|
||||
.quad_enable_bit_mask = 0x02, \
|
||||
.has_sector_protection = false, \
|
||||
.supports_fast_read = true, \
|
||||
.supports_qspi = true, \
|
||||
.supports_qspi_writes = true, \
|
||||
.write_status_register_split = false, \
|
||||
.single_status_byte = false, \
|
||||
}
|
||||
|
||||
// Settings for the Winbond W25Q64JV-IM 8MiB SPI flash. Note that JV-IQ has a different .memory_type (0x40)
|
||||
// Datasheet: http://www.winbond.com/resource-files/w25q64jv%20revj%2003272018%20plus.pdf
|
||||
#define W25Q64JV_IM {\
|
||||
@ -537,7 +576,7 @@ typedef struct {
|
||||
.start_up_time_us = 800, \
|
||||
.manufacturer_id = 0xc2, \
|
||||
.memory_type = 0x28, \
|
||||
.capacity = 0x18, \
|
||||
.capacity = 0x15, \
|
||||
.max_clock_speed_mhz = 33, /* 8 mhz for dual/quad */ \
|
||||
.quad_enable_bit_mask = 0x80, \
|
||||
.has_sector_protection = false, \
|
||||
@ -566,6 +605,43 @@ typedef struct {
|
||||
.single_status_byte = true, \
|
||||
}
|
||||
|
||||
// Settings for the Macronix MX25L51245G 64MiB SPI flash.
|
||||
// Datasheet: https://www.macronix.com/Lists/Datasheet/Attachments/7437/MX25L51245G,%203V,%20512Mb,%20v1.6.pdf
|
||||
#define MX25L25645G {\
|
||||
.total_size = (1 << 25), /* 32 MiB */ \
|
||||
.start_up_time_us = 5000, \
|
||||
.manufacturer_id = 0x9f, \
|
||||
.memory_type = 0xab, \
|
||||
.capacity = 0x90, \
|
||||
.max_clock_speed_mhz = 133, \
|
||||
.quad_enable_bit_mask = 0xaf, \
|
||||
.has_sector_protection = false, \
|
||||
.supports_fast_read = true, \
|
||||
.supports_qspi = true, \
|
||||
.supports_qspi_writes = true, \
|
||||
.write_status_register_split = false, \
|
||||
.single_status_byte = true, \
|
||||
}
|
||||
|
||||
// Settings for the Macronix MX25L12833F 16MiB SPI flash
|
||||
// Datasheet: https://www.macronix.com/Lists/Datasheet/Attachments/7447/MX25L12833F,%203V,%20128Mb,%20v1.0.pdf
|
||||
|
||||
#define MX25L12833F {\
|
||||
.total_size = (1UL << 24), /* 16 MiB */ \
|
||||
.start_up_time_us = 5000, \
|
||||
.manufacturer_id = 0xc2, \
|
||||
.memory_type = 0x20, \
|
||||
.capacity = 0x18, \
|
||||
.max_clock_speed_mhz = 133, \
|
||||
.quad_enable_bit_mask = 0x40, \
|
||||
.has_sector_protection = true, \
|
||||
.supports_fast_read = true, \
|
||||
.supports_qspi = true, \
|
||||
.supports_qspi_writes = true, \
|
||||
.write_status_register_split = false, \
|
||||
.single_status_byte = true, \
|
||||
}
|
||||
|
||||
// Settings for the Winbond W25Q128JV-PM 16MiB SPI flash. Note that JV-IM has a different .memory_type (0x70)
|
||||
// Datasheet: https://www.winbond.com/resource-files/w25q128jv%20revf%2003272018%20plus.pdf
|
||||
#define W25Q128JV_PM {\
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user