Merge branch 'adafruit:main' into main

This commit is contained in:
Pontus Oldberg 2023-01-03 09:31:49 +01:00 committed by GitHub
commit 14417a21d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
66 changed files with 1435 additions and 417 deletions

1
.gitmodules vendored
View File

@ -310,6 +310,7 @@
[submodule "ports/espressif/esp32-camera"] [submodule "ports/espressif/esp32-camera"]
path = ports/espressif/esp32-camera path = ports/espressif/esp32-camera
url = https://github.com/adafruit/esp32-camera/ url = https://github.com/adafruit/esp32-camera/
branch = circuitpython
[submodule "ports/raspberrypi/lib/cyw43-driver"] [submodule "ports/raspberrypi/lib/cyw43-driver"]
path = ports/raspberrypi/lib/cyw43-driver path = ports/raspberrypi/lib/cyw43-driver
url = https://github.com/adafruit/cyw43-driver.git url = https://github.com/adafruit/cyw43-driver.git

View File

@ -90,7 +90,7 @@ clean:
rm -rf autoapi rm -rf autoapi
rm -rf $(STUBDIR) $(DISTDIR) *.egg-info rm -rf $(STUBDIR) $(DISTDIR) *.egg-info
html: stubs html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo @echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html." @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

View File

@ -70,6 +70,11 @@ msgstr "%%c harus int atau char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -125,6 +130,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -299,7 +308,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "Objek '%s' tidak memiliki atribut '%q'" msgstr "Objek '%s' tidak memiliki atribut '%q'"
@ -494,6 +503,11 @@ msgstr ""
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1408,6 +1422,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Nama terlalu panjang" msgstr "Nama terlalu panjang"
@ -1779,10 +1797,6 @@ msgstr ""
"ideal. Jika ini tidak dapat dihindari, berikan allow_inefficient=True ke " "ideal. Jika ini tidak dapat dihindari, berikan allow_inefficient=True ke "
"konstruktor" "konstruktor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Pin harus berurutan" msgstr "Pin harus berurutan"
@ -1873,7 +1887,7 @@ msgid "Random number generation error"
msgstr "Kesalahan pembuatan nomor acak" msgstr "Kesalahan pembuatan nomor acak"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Baca-saja" msgstr "Baca-saja"
@ -1881,10 +1895,6 @@ msgstr "Baca-saja"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "sistem file (filesystem) bersifat Read-only" msgstr "sistem file (filesystem) bersifat Read-only"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objek Read-only"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2731,6 +2741,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3092,10 +3106,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""
@ -4368,6 +4378,9 @@ msgstr "zi harus berjenis float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "Zi harus berbentuk (n_section, 2)" msgstr "Zi harus berbentuk (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Objek Read-only"
#~ msgid "%q length must be >= 1" #~ msgid "%q length must be >= 1"
#~ msgstr "%q panjang harus >= 1" #~ msgstr "%q panjang harus >= 1"

View File

@ -65,6 +65,11 @@ msgstr ""
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -119,6 +124,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -293,7 +302,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "" msgstr ""
@ -488,6 +497,11 @@ msgstr ""
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1393,6 +1407,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "" msgstr ""
@ -1754,10 +1772,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1846,7 +1860,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1854,10 +1868,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2700,6 +2710,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3061,10 +3075,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""

View File

@ -72,6 +72,11 @@ msgstr "%%c vyžaduje int nebo char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -126,6 +131,10 @@ msgstr "Inicializace %q selhala"
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "Délka %q musí být %d" msgstr "Délka %q musí být %d"
@ -300,7 +309,7 @@ msgstr "'%s' objekt nepodporuje přiřazení položky"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' objekt nepodporuje smazání položky" msgstr "'%s' objekt nepodporuje smazání položky"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' objekt nemá žádný atribut '%q'" msgstr "'%s' objekt nemá žádný atribut '%q'"
@ -495,6 +504,11 @@ msgstr "Již běží"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Již skenuje wifi sítě" msgstr "Již skenuje wifi sítě"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Jiný PWMAudioOut je již aktivní" msgstr "Jiný PWMAudioOut je již aktivní"
@ -1408,6 +1422,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "Chyba NVS" msgstr "Chyba NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Jméno je příliš dlouhé" msgstr "Jméno je příliš dlouhé"
@ -1770,10 +1788,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1864,7 +1878,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1872,10 +1886,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2718,6 +2728,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3079,10 +3093,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""

View File

@ -71,6 +71,11 @@ msgstr "%%c erwartet Int oder Char"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -127,6 +132,10 @@ msgstr "%q Initialisierung ist gescheitert"
msgid "%q is %q" msgid "%q is %q"
msgstr "%q ist %q" msgstr "%q ist %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "%q länge muss %d betragen" msgstr "%q länge muss %d betragen"
@ -303,7 +312,7 @@ msgstr "'%s' Objekt unterstützt keine Element-Zuordnung"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' Objekt unterstützt keine Löschung von Elementen" msgstr "'%s' Objekt unterstützt keine Löschung von Elementen"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' Objekt hat kein Attribut '%q'" msgstr "'%s' Objekt hat kein Attribut '%q'"
@ -498,6 +507,11 @@ msgstr "Läuft bereits"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Sucht bereits nach Wifi-Netzwerken" msgstr "Sucht bereits nach Wifi-Netzwerken"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Ein anderer PWMAudioOut ist bereits aktiv" msgstr "Ein anderer PWMAudioOut ist bereits aktiv"
@ -1424,6 +1438,10 @@ msgstr "NLR-Sprung fehlgeschlagen. Mögliche Speicher-Beschädigung."
msgid "NVS Error" msgid "NVS Error"
msgstr "NVS-Fehler" msgstr "NVS-Fehler"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Name zu lang" msgstr "Name zu lang"
@ -1794,10 +1812,6 @@ msgstr ""
"Bytes verbraucht. Wenn dies nicht vermieden werden kann, übergib " "Bytes verbraucht. Wenn dies nicht vermieden werden kann, übergib "
"allow_inefficient=True an den Konstruktor" "allow_inefficient=True an den Konstruktor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Pins müssen geordnet sein" msgstr "Pins müssen geordnet sein"
@ -1889,7 +1903,7 @@ msgid "Random number generation error"
msgstr "Fehler bei der Erzeugung von Zufallszahlen" msgstr "Fehler bei der Erzeugung von Zufallszahlen"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Nur lesen möglich, da Schreibgeschützt" msgstr "Nur lesen möglich, da Schreibgeschützt"
@ -1897,10 +1911,6 @@ msgstr "Nur lesen möglich, da Schreibgeschützt"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Schreibgeschützte Dateisystem" msgstr "Schreibgeschützte Dateisystem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Schreibgeschützte Objekt"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "Erhaltene Antwort ist ungültig" msgstr "Erhaltene Antwort ist ungültig"
@ -2777,6 +2787,10 @@ msgstr "Kann Blockgröße von 512 nicht setzen"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "kann Attribut nicht setzen" msgstr "kann Attribut nicht setzen"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "Speichern von '%q' nicht möglich" msgstr "Speichern von '%q' nicht möglich"
@ -3148,10 +3162,6 @@ msgstr "Die Schriftart (font) muss 2048 Byte lang sein"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "Format erfordert ein Wörterbuch (dict)" msgstr "Format erfordert ein Wörterbuch (dict)"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "Frequenz ist für dieses Board schreibgeschützt"
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "voll" msgstr "voll"
@ -4438,6 +4448,12 @@ msgstr "zi muss eine Gleitkommazahl sein"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi muss die Form (n_section, 2) haben" msgstr "zi muss die Form (n_section, 2) haben"
#~ msgid "Read-only object"
#~ msgstr "Schreibgeschützte Objekt"
#~ msgid "frequency is read-only for this board"
#~ msgstr "Frequenz ist für dieses Board schreibgeschützt"
#~ msgid "Unable to write" #~ msgid "Unable to write"
#~ msgstr "Schreiben nicht möglich" #~ msgstr "Schreiben nicht möglich"

View File

@ -76,6 +76,11 @@ msgstr "%%c απαιτεί int ή char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -131,6 +136,10 @@ msgstr "%q εκκίνηση απέτυχε"
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "%q μήκος πρέπει να είναι %d" msgstr "%q μήκος πρέπει να είναι %d"
@ -305,7 +314,7 @@ msgstr "'%s' αντικείμενο δεν υποστηρίζει ορισμό
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' αντικείμενο δεν υποστηρίζει διαγραφή πράγματος" msgstr "'%s' αντικείμενο δεν υποστηρίζει διαγραφή πράγματος"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' αντικείμενο δεν έχει γνώρισμα '%q'" msgstr "'%s' αντικείμενο δεν έχει γνώρισμα '%q'"
@ -501,6 +510,11 @@ msgstr "Τρέχει ήδη"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Ήδη γίνεται σάρωση για δίκτυα wifi" msgstr "Ήδη γίνεται σάρωση για δίκτυα wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Και άλλο PWMAudioOut είναι σε χρήση" msgstr "Και άλλο PWMAudioOut είναι σε χρήση"
@ -1418,6 +1432,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "" msgstr ""
@ -1779,10 +1797,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1873,7 +1887,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1881,10 +1895,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2727,6 +2737,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3088,10 +3102,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""

View File

@ -74,6 +74,11 @@ msgstr "%%c requires int or char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -129,6 +134,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -303,7 +312,7 @@ msgstr "'%s' object doesn't support item assignment"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' object doesn't support item deletion" msgstr "'%s' object doesn't support item deletion"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' object has no attribute '%q'" msgstr "'%s' object has no attribute '%q'"
@ -498,6 +507,11 @@ msgstr "Already running"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Already scanning for WiFi networks" msgstr "Already scanning for WiFi networks"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Another PWMAudioOut is already active" msgstr "Another PWMAudioOut is already active"
@ -1409,6 +1423,10 @@ msgstr "NLR jump failed. Likely memory corruption."
msgid "NVS Error" msgid "NVS Error"
msgstr "NVS Error" msgstr "NVS Error"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Name too long" msgstr "Name too long"
@ -1778,10 +1796,6 @@ msgstr ""
"bytes. If this cannot be avoided, pass allow_inefficient=True to the " "bytes. If this cannot be avoided, pass allow_inefficient=True to the "
"constructor" "constructor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Pins must be sequential" msgstr "Pins must be sequential"
@ -1870,7 +1884,7 @@ msgid "Random number generation error"
msgstr "Random number generation error" msgstr "Random number generation error"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Read-only" msgstr "Read-only"
@ -1878,10 +1892,6 @@ msgstr "Read-only"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Read-only filesystem" msgstr "Read-only filesystem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Read-only object"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "Received response was invalid" msgstr "Received response was invalid"
@ -2734,6 +2744,10 @@ msgstr "can't set 512 block size"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "can't set attribute" msgstr "can't set attribute"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "can't store '%q'" msgstr "can't store '%q'"
@ -3098,10 +3112,6 @@ msgstr "font must be 2048 bytes long"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "format requires a dict" msgstr "format requires a dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "full" msgstr "full"
@ -4373,6 +4383,9 @@ msgstr "zi must be of float type"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi must be of shape (n_section, 2)" msgstr "zi must be of shape (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Read-only object"
#~ msgid "%q length must be >= 1" #~ msgid "%q length must be >= 1"
#~ msgstr "%q length must be >= 1" #~ msgstr "%q length must be >= 1"

View File

@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n" "POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-09-23 17:20+0000\n" "PO-Revision-Date: 2022-12-31 17:50+0000\n"
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n" "Last-Translator: Orlando Caro <ocaro@users.noreply.github.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n" "X-Generator: Weblate 4.15.1-dev\n"
#: main.c #: main.c
msgid "" msgid ""
@ -74,6 +74,11 @@ msgstr "%%c requiere int o char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -92,9 +97,8 @@ msgstr ""
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c #: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c #: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c #: ports/stm/common-hal/rtc/RTC.c
#, fuzzy
msgid "%q" msgid "%q"
msgstr "%q" msgstr ""
#: shared-bindings/microcontroller/Pin.c #: shared-bindings/microcontroller/Pin.c
msgid "%q and %q contain duplicate pins" msgid "%q and %q contain duplicate pins"
@ -129,6 +133,10 @@ msgstr "%q inicializado fallido"
#: shared-bindings/dualbank/__init__.c #: shared-bindings/dualbank/__init__.c
msgid "%q is %q" msgid "%q is %q"
msgstr "%q es %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr "" msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
@ -169,27 +177,27 @@ msgstr "%q debe ser >= %d"
#: shared-bindings/analogbufio/BufferedIn.c #: shared-bindings/analogbufio/BufferedIn.c
msgid "%q must be a bytearray or array of type 'H' or 'B'" msgid "%q must be a bytearray or array of type 'H' or 'B'"
msgstr "" msgstr "%q debe ser un byte-matriz o matriz de tipo 'H' o 'B'"
#: shared-bindings/audiocore/RawSample.c #: shared-bindings/audiocore/RawSample.c
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'" msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
msgstr "" msgstr "%q debe ser un byte-matriz o matriz de tipo 'h', 'H', 'b', o 'B'"
#: py/argcheck.c py/obj.c py/objstrunicode.c #: py/argcheck.c py/obj.c py/objstrunicode.c
msgid "%q must be of type %q" msgid "%q must be of type %q"
msgstr "" msgstr "%q debe ser de typo %q"
#: py/objexcept.c shared-bindings/digitalio/Pull.c #: py/objexcept.c shared-bindings/digitalio/Pull.c
msgid "%q must be of type %q or None" msgid "%q must be of type %q or None"
msgstr "" msgstr "%q debe ser de tipo %q o None"
#: ports/atmel-samd/common-hal/busio/UART.c #: ports/atmel-samd/common-hal/busio/UART.c
msgid "%q must be power of 2" msgid "%q must be power of 2"
msgstr "" msgstr "%q debe ser potencia de 2"
#: shared-bindings/wifi/Monitor.c #: shared-bindings/wifi/Monitor.c
msgid "%q out of bounds" msgid "%q out of bounds"
msgstr "" msgstr "%q fuera de limites"
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c #: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c
@ -206,7 +214,7 @@ msgstr "pin inválido %q"
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c #: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
msgid "%q step cannot be zero" msgid "%q step cannot be zero"
msgstr "" msgstr "%q paso no puede ser cero"
#: py/bc.c py/objnamedtuple.c #: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given" msgid "%q() takes %d positional arguments but %d were given"
@ -214,11 +222,11 @@ msgstr "%q() toma %d argumentos posicionales pero %d fueron dados"
#: shared-bindings/usb_hid/Device.c #: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length" msgid "%q, %q, and %q must all be the same length"
msgstr "" msgstr "%q, %q, y %q deben tener el mismo largo"
#: py/objint.c shared-bindings/storage/__init__.c #: py/objint.c shared-bindings/storage/__init__.c
msgid "%q=%q" msgid "%q=%q"
msgstr "" msgstr "%q=%q"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
#, c-format #, c-format
@ -305,7 +313,7 @@ msgstr "'%s' el objeto no tiene capacidad de asignación de item"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' el objeto no tiene capacidad de borrado de item" msgstr "'%s' el objeto no tiene capacidad de borrado de item"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "objeto '%s' no tiene atributo '%q'" msgstr "objeto '%s' no tiene atributo '%q'"
@ -407,7 +415,7 @@ msgstr "La dirección debe tener %d bytes de largo"
#: ports/espressif/common-hal/memorymap/AddressRange.c #: ports/espressif/common-hal/memorymap/AddressRange.c
msgid "Address range not allowed" msgid "Address range not allowed"
msgstr "" msgstr "Rango de dirección no permitido"
#: ports/espressif/common-hal/canio/CAN.c #: ports/espressif/common-hal/canio/CAN.c
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
@ -502,6 +510,11 @@ msgstr "Ya está en ejecución"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Ya se están buscando redes wifi" msgstr "Ya se están buscando redes wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr "Un error ocurrió mientras recuperaba '%s':\n"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Otra salida PWMAudioOut esta ya activada" msgstr "Otra salida PWMAudioOut esta ya activada"
@ -531,7 +544,7 @@ msgstr "Asignación del montículo mientras la VM no esta ejecutándose."
#: ports/raspberrypi/audio_dma.c #: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented" msgid "Audio conversion not implemented"
msgstr "" msgstr "Conversión de audio no esta implementada"
#: shared-bindings/wifi/Radio.c #: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password" msgid "AuthMode.OPEN is not used with password"
@ -576,11 +589,12 @@ msgstr "Bits depth debe ser múltiplo de 8."
#: shared-bindings/bitmaptools/__init__.c #: shared-bindings/bitmaptools/__init__.c
msgid "Bitmap size and bits per value must match" msgid "Bitmap size and bits per value must match"
msgstr "" msgstr "El tamaño del mapa de bits y los bits por valor deben cotejar"
#: supervisor/shared/safe_mode.c #: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)." msgid "Boot device must be first device (interface #0)."
msgstr "" msgstr ""
"El dispositivo de arranque debe de ser el primer dispositivo (interfase #0)."
#: ports/mimxrt10xx/common-hal/busio/UART.c #: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control" msgid "Both RX and TX required for flow control"
@ -591,7 +605,7 @@ msgstr "Ambos RX y TX requeridos para control de flujo"
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h #: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h #: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n" msgid "Both buttons were pressed at start up.\n"
msgstr "" msgstr "Ambos botones fueron prensados al inicio\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c #: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts" msgid "Both pins must support hardware interrupts"
@ -621,17 +635,17 @@ msgstr ""
#: shared-bindings/framebufferio/FramebufferDisplay.c #: shared-bindings/framebufferio/FramebufferDisplay.c
msgid "Buffer is not a bytearray." msgid "Buffer is not a bytearray."
msgstr "Buffer no es un bytearray." msgstr "Búfer no es un bytearray."
#: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c #: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c
#: shared-bindings/framebufferio/FramebufferDisplay.c #: shared-bindings/framebufferio/FramebufferDisplay.c
msgid "Buffer is too small" msgid "Buffer is too small"
msgstr "El buffer es muy pequeño" msgstr "fer es muy pequeño"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
#, c-format #, c-format
msgid "Buffer length %d too big. It must be less than %d" msgid "Buffer length %d too big. It must be less than %d"
msgstr "Longitud del buffer %d es demasiado grande. Tiene que ser menor a %d" msgstr "Longitud del búfer %d es demasiado grande. Tiene que ser menor a %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c #: ports/atmel-samd/common-hal/sdioio/SDCard.c
#: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c #: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c
@ -645,11 +659,11 @@ msgstr "Búfer deber ser un múltiplo de 512 bytes"
#: shared-bindings/_bleio/PacketBuffer.c #: shared-bindings/_bleio/PacketBuffer.c
#, c-format #, c-format
msgid "Buffer too short by %d bytes" msgid "Buffer too short by %d bytes"
msgstr "Búffer muy corto por %d bytes" msgstr "Búfer muy corto por %d bytes"
#: ports/espressif/common-hal/imagecapture/ParallelImageCapture.c #: ports/espressif/common-hal/imagecapture/ParallelImageCapture.c
msgid "Buffers must be same size" msgid "Buffers must be same size"
msgstr "" msgstr "Búferes deben ser del mismo tamaño"
#: ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c #: ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c
#: ports/espressif/common-hal/paralleldisplay/ParallelBus.c #: ports/espressif/common-hal/paralleldisplay/ParallelBus.c
@ -662,7 +676,7 @@ msgstr "Bus pin %d ya está siendo utilizado"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h #: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h #: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
msgid "Button A was pressed at start up.\n" msgid "Button A was pressed at start up.\n"
msgstr "" msgstr "Botón A fue presionado al inicio.\n"
#: shared-bindings/_bleio/UUID.c #: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
@ -673,8 +687,9 @@ msgid "CBC blocks must be multiples of 16 bytes"
msgstr "Los bloques CBC deben ser múltiplos de 16 bytes" msgstr "Los bloques CBC deben ser múltiplos de 16 bytes"
#: supervisor/shared/safe_mode.c #: supervisor/shared/safe_mode.c
#, fuzzy
msgid "CIRCUITPY drive could not be found or created." msgid "CIRCUITPY drive could not be found or created."
msgstr "" msgstr "CIRCUITPY dispositivo de guardo no pudo ser encontrado o creado."
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "CRC or checksum was invalid" msgid "CRC or checksum was invalid"
@ -686,7 +701,7 @@ msgstr "Llame a super().__init__() antes de acceder al objeto nativo."
#: ports/cxd56/common-hal/camera/Camera.c #: ports/cxd56/common-hal/camera/Camera.c
msgid "Camera init" msgid "Camera init"
msgstr "" msgstr "Inicialización de cámara"
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c #: ports/espressif/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on RTC IO from deep sleep." msgid "Can only alarm on RTC IO from deep sleep."
@ -1431,6 +1446,10 @@ msgstr "Salto NLR falló. Probablemente corrupción de memoria."
msgid "NVS Error" msgid "NVS Error"
msgstr "Error NVS" msgstr "Error NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Nombre muy largo" msgstr "Nombre muy largo"
@ -1803,10 +1822,6 @@ msgstr ""
"ideales. Si esto no se puede evitar, pase allow_inefficient=True al " "ideales. Si esto no se puede evitar, pase allow_inefficient=True al "
"constructor" "constructor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Los pines deben estar en orden secuencial" msgstr "Los pines deben estar en orden secuencial"
@ -1898,7 +1913,7 @@ msgid "Random number generation error"
msgstr "Error de generación de números aleatorios" msgstr "Error de generación de números aleatorios"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Solo-lectura" msgstr "Solo-lectura"
@ -1906,10 +1921,6 @@ msgstr "Solo-lectura"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Sistema de archivos de solo-Lectura" msgstr "Sistema de archivos de solo-Lectura"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objeto de solo-lectura"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "La respuesta recibida es invalida" msgstr "La respuesta recibida es invalida"
@ -2771,6 +2782,10 @@ msgstr "no se puede definir un tamaño de bloque de 512"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "no se puede asignar el atributo" msgstr "no se puede asignar el atributo"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "no se puede almacenar '%q'" msgstr "no se puede almacenar '%q'"
@ -3138,10 +3153,6 @@ msgstr "font debe ser 2048 bytes de largo"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "format requiere un dict" msgstr "format requiere un dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "lleno" msgstr "lleno"
@ -4246,7 +4257,7 @@ msgstr "nombre en unicode escapa"
#: py/parse.c #: py/parse.c
msgid "unindent doesn't match any outer indent level" msgid "unindent doesn't match any outer indent level"
msgstr "" msgstr "unindent no coteja ningún nivel de espacio exterior"
#: py/objstr.c #: py/objstr.c
#, c-format #, c-format
@ -4268,7 +4279,7 @@ msgstr "tipo desconocido '%q'"
#: py/objstr.c #: py/objstr.c
#, c-format #, c-format
msgid "unmatched '%c' in format" msgid "unmatched '%c' in format"
msgstr "" msgstr "no coteja '%c' en formato"
#: py/objtype.c py/runtime.c #: py/objtype.c py/runtime.c
msgid "unreadable attribute" msgid "unreadable attribute"
@ -4290,11 +4301,11 @@ msgstr "instrucción Xtensa '%s' con %d argumentos no soportada"
#: shared-module/gifio/GifWriter.c #: shared-module/gifio/GifWriter.c
msgid "unsupported colorspace for GifWriter" msgid "unsupported colorspace for GifWriter"
msgstr "" msgstr "espacio de color no soportado para GifWriter"
#: shared-bindings/bitmaptools/__init__.c #: shared-bindings/bitmaptools/__init__.c
msgid "unsupported colorspace for dither" msgid "unsupported colorspace for dither"
msgstr "" msgstr "espacio de color no soportado para tramado"
#: py/objstr.c #: py/objstr.c
#, c-format #, c-format
@ -4315,11 +4326,11 @@ msgstr "tipos no soportados para %q: '%q', '%q'"
#: extmod/ulab/code/numpy/io/io.c #: extmod/ulab/code/numpy/io/io.c
msgid "usecols is too high" msgid "usecols is too high"
msgstr "" msgstr "usecols es muy alto"
#: extmod/ulab/code/numpy/io/io.c #: extmod/ulab/code/numpy/io/io.c
msgid "usecols keyword must be specified" msgid "usecols keyword must be specified"
msgstr "" msgstr "usecols palabra clave debe de ser especificada"
#: py/objint.c #: py/objint.c
#, c-format #, c-format
@ -4328,7 +4339,7 @@ msgstr "el valor debe caber en %d byte(s)"
#: shared-bindings/bitmaptools/__init__.c #: shared-bindings/bitmaptools/__init__.c
msgid "value out of range of target" msgid "value out of range of target"
msgstr "" msgstr "valor fuera de alcance al blanco"
#: shared-bindings/displayio/Bitmap.c #: shared-bindings/displayio/Bitmap.c
msgid "value_count must be > 0" msgid "value_count must be > 0"
@ -4349,7 +4360,7 @@ msgstr "wifi no esta habilitado"
#: ports/raspberrypi/common-hal/wifi/Monitor.c #: ports/raspberrypi/common-hal/wifi/Monitor.c
msgid "wifi.Monitor not available" msgid "wifi.Monitor not available"
msgstr "" msgstr "wifi.Monitor no esta disponible"
#: shared-bindings/_bleio/Adapter.c #: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval" msgid "window must be <= interval"
@ -4365,7 +4376,7 @@ msgstr "eje especificado erróneo"
#: extmod/ulab/code/numpy/io/io.c #: extmod/ulab/code/numpy/io/io.c
msgid "wrong dtype" msgid "wrong dtype"
msgstr "" msgstr "erroneo dtype"
#: extmod/ulab/code/numpy/transform.c #: extmod/ulab/code/numpy/transform.c
msgid "wrong index type" msgid "wrong index type"
@ -4379,11 +4390,11 @@ msgstr "tipo de entrada incorrecta"
#: extmod/ulab/code/numpy/transform.c #: extmod/ulab/code/numpy/transform.c
msgid "wrong length of condition array" msgid "wrong length of condition array"
msgstr "" msgstr "largo erroneo en el arreglo de condiciones"
#: extmod/ulab/code/numpy/transform.c #: extmod/ulab/code/numpy/transform.c
msgid "wrong length of index array" msgid "wrong length of index array"
msgstr "" msgstr "largo erroneo en el arreglo de índices"
#: extmod/ulab/code/numpy/create.c py/objarray.c py/objstr.c #: extmod/ulab/code/numpy/create.c py/objarray.c py/objstr.c
msgid "wrong number of arguments" msgid "wrong number of arguments"
@ -4421,6 +4432,9 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)" msgstr "zi debe ser una forma (n_section,2)"
#~ msgid "Read-only object"
#~ msgstr "Objeto de solo-lectura"
#~ msgid "%q length must be >= 1" #~ msgid "%q length must be >= 1"
#~ msgstr "%q tamaño debe ser >= 1" #~ msgstr "%q tamaño debe ser >= 1"

View File

@ -6,8 +6,8 @@ msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n" "POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-08-23 14:19+0000\n" "PO-Revision-Date: 2022-12-27 18:02+0000\n"
"Last-Translator: Jeff Epler <jepler@gmail.com>\n" "Last-Translator: Blinka CircuitPython <limor@ladyada.net>\n"
"Language-Team: fil\n" "Language-Team: fil\n"
"Language: fil\n" "Language: fil\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " "Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
"|| n % 10 == 6 || n % 10 == 9);\n" "|| n % 10 == 6 || n % 10 == 9);\n"
"X-Generator: Weblate 4.8.1-dev\n" "X-Generator: Weblate 4.15.1-dev\n"
#: main.c #: main.c
msgid "" msgid ""
@ -66,6 +66,11 @@ msgstr "%%c nangangailangan ng int o char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr "%S"
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -120,6 +125,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -295,7 +304,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' object ay walang attribute '%q'" msgstr "'%s' object ay walang attribute '%q'"
@ -491,6 +500,11 @@ msgstr ""
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1405,6 +1419,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "" msgstr ""
@ -1770,10 +1788,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1862,7 +1876,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Basahin-lamang" msgstr "Basahin-lamang"
@ -1870,11 +1884,6 @@ msgstr "Basahin-lamang"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Basahin-lamang mode" msgstr "Basahin-lamang mode"
#: shared-module/displayio/Bitmap.c
#, fuzzy
msgid "Read-only object"
msgstr "Basahin-lamang"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2722,6 +2731,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "hindi ma i-set ang attribute" msgstr "hindi ma i-set ang attribute"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "hindi ma i-store ang '%q'" msgstr "hindi ma i-store ang '%q'"
@ -3091,10 +3104,6 @@ msgstr "font ay dapat 2048 bytes ang haba"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "kailangan ng format ng dict" msgstr "kailangan ng format ng dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "puno" msgstr "puno"
@ -4375,6 +4384,10 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "Read-only object"
#~ msgstr "Basahin-lamang"
#~ msgid "Invalid pins" #~ msgid "Invalid pins"
#~ msgstr "Mali ang pins" #~ msgstr "Mali ang pins"

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: 0.1\n" "Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n" "POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-11-09 19:20+0000\n" "PO-Revision-Date: 2022-12-27 18:02+0000\n"
"Last-Translator: Deleted User <noreply+52049@weblate.org>\n" "Last-Translator: Blinka CircuitPython <limor@ladyada.net>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.15-dev\n" "X-Generator: Weblate 4.15.1-dev\n"
#: main.c #: main.c
msgid "" msgid ""
@ -75,6 +75,11 @@ msgstr "%%c nécessite un chiffre entier 'int' ou un caractère 'char'"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr "%S"
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -131,6 +136,10 @@ msgstr "échec de l'initialisation %q"
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "La longeur de %q doit être %d" msgstr "La longeur de %q doit être %d"
@ -305,7 +314,7 @@ msgstr "l'objet %s ne supporte pas l'assignation d'éléments"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "L'objet '%s' ne prend pas en charge la suppression d'éléments" msgstr "L'objet '%s' ne prend pas en charge la suppression d'éléments"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "l'objet '%s' n'a pas d'attribut '%q'" msgstr "l'objet '%s' n'a pas d'attribut '%q'"
@ -500,6 +509,11 @@ msgstr "Déjà en cours d'exécution"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Déjà à la recherche des réseaux wifi" msgstr "Déjà à la recherche des réseaux wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Un autre PWMAudioOut est déjà actif" msgstr "Un autre PWMAudioOut est déjà actif"
@ -1450,6 +1464,10 @@ msgstr "Saut NLR échoué. Corruption de mémoire probable."
msgid "NVS Error" msgid "NVS Error"
msgstr "Erreur NVS" msgstr "Erreur NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Nom trop long" msgstr "Nom trop long"
@ -1823,10 +1841,6 @@ msgstr ""
"octets idéal. Si cela ne peut pas être évité, transmettez allow_inefficient " "octets idéal. Si cela ne peut pas être évité, transmettez allow_inefficient "
"= True au constructeur" "= True au constructeur"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Les broches doivent être séquentielles" msgstr "Les broches doivent être séquentielles"
@ -1919,7 +1933,7 @@ msgid "Random number generation error"
msgstr "Erreur de génération de chiffres aléatoires" msgstr "Erreur de génération de chiffres aléatoires"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Lecture seule" msgstr "Lecture seule"
@ -1927,10 +1941,6 @@ msgstr "Lecture seule"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Système de fichier en lecture seule" msgstr "Système de fichier en lecture seule"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objet en lecture seule"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "Réponse reçue invalide" msgstr "Réponse reçue invalide"
@ -2805,6 +2815,10 @@ msgstr "impossible de définir une taille de bloc de 512"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "attribut non modifiable" msgstr "attribut non modifiable"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "impossible de stocker '%q'" msgstr "impossible de stocker '%q'"
@ -3178,10 +3192,6 @@ msgstr "la police doit être longue de 2048 octets"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "le format nécessite un dict" msgstr "le format nécessite un dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "la fréquence est en lecture seule pour cette carte"
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "plein" msgstr "plein"
@ -4466,6 +4476,12 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)" msgstr "zi doit être de forme (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Objet en lecture seule"
#~ msgid "frequency is read-only for this board"
#~ msgstr "la fréquence est en lecture seule pour cette carte"
#~ msgid "Unable to write" #~ msgid "Unable to write"
#~ msgstr "Écriture impossible" #~ msgstr "Écriture impossible"

View File

@ -65,6 +65,11 @@ msgstr ""
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -119,6 +124,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -293,7 +302,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "" msgstr ""
@ -488,6 +497,11 @@ msgstr ""
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1393,6 +1407,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "" msgstr ""
@ -1754,10 +1772,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1846,7 +1860,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1854,10 +1868,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2700,6 +2710,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3061,10 +3075,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""

View File

@ -71,6 +71,11 @@ msgstr "%%c necessita di int o char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -126,6 +131,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -300,7 +309,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "l'oggetto '%s' non ha l'attributo '%q'" msgstr "l'oggetto '%s' non ha l'attributo '%q'"
@ -497,6 +506,11 @@ msgstr "Già in funzione"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Già in ricerca di collegamenti WiFi" msgstr "Già in ricerca di collegamenti WiFi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1411,6 +1425,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "" msgstr ""
@ -1779,10 +1797,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1872,7 +1886,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Sola lettura" msgstr "Sola lettura"
@ -1880,11 +1894,6 @@ msgstr "Sola lettura"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Filesystem in sola lettura" msgstr "Filesystem in sola lettura"
#: shared-module/displayio/Bitmap.c
#, fuzzy
msgid "Read-only object"
msgstr "Sola lettura"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2733,6 +2742,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "impossibile impostare attributo" msgstr "impossibile impostare attributo"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "impossibile memorizzare '%q'" msgstr "impossibile memorizzare '%q'"
@ -3099,10 +3112,6 @@ msgstr "il font deve essere lungo 2048 byte"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "la formattazione richiede un dict" msgstr "la formattazione richiede un dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "pieno" msgstr "pieno"
@ -4388,6 +4397,10 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#, fuzzy
#~ msgid "Read-only object"
#~ msgstr "Sola lettura"
#~ msgid "At most %d %q may be specified (not %d)" #~ msgid "At most %d %q may be specified (not %d)"
#~ msgstr "Almeno %d %q devono essere specificati (non %d)" #~ msgstr "Almeno %d %q devono essere specificati (non %d)"

View File

@ -70,6 +70,11 @@ msgstr "%%c にはintまたはcharが必要"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -124,6 +129,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -298,7 +307,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "" msgstr ""
@ -493,6 +502,11 @@ msgstr "すでに実行中"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1404,6 +1418,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "名前が長すぎます" msgstr "名前が長すぎます"
@ -1767,10 +1785,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1859,7 +1873,7 @@ msgid "Random number generation error"
msgstr "乱数生成エラー" msgstr "乱数生成エラー"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "読み込み専用" msgstr "読み込み専用"
@ -1867,10 +1881,6 @@ msgstr "読み込み専用"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "読み込み専用のファイルシステム" msgstr "読み込み専用のファイルシステム"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "読み込み専用のオブジェクト"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2714,6 +2724,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3079,10 +3093,6 @@ msgstr "fontは2048バイト長でなければなりません"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "formatにはdictが必要" msgstr "formatにはdictが必要"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""
@ -4357,6 +4367,9 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Read-only object"
#~ msgstr "読み込み専用のオブジェクト"
#~ msgid "At most %d %q may be specified (not %d)" #~ msgid "At most %d %q may be specified (not %d)"
#~ msgstr "最大で %d個の %q が指定できます(%d個でなく" #~ msgstr "最大で %d個の %q が指定できます(%d個でなく"

View File

@ -66,6 +66,11 @@ msgstr "%%c 전수(int)또는 캐릭터(char)필요합니다"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -120,6 +125,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -294,7 +303,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "" msgstr ""
@ -489,6 +498,11 @@ msgstr ""
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1396,6 +1410,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "" msgstr ""
@ -1757,10 +1775,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1849,7 +1863,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1857,10 +1871,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2704,6 +2714,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3065,10 +3079,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "완전한(full)" msgstr "완전한(full)"

View File

@ -68,6 +68,11 @@ msgstr "%%c vereist een int of char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -122,6 +127,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -296,7 +305,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' object heeft geen attribuut '%q'" msgstr "'%s' object heeft geen attribuut '%q'"
@ -491,6 +500,11 @@ msgstr "Wordt al uitgevoerd"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Zoekt al naar WiFi netwerken" msgstr "Zoekt al naar WiFi netwerken"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1404,6 +1418,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "NVS-fout" msgstr "NVS-fout"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Naam te lang" msgstr "Naam te lang"
@ -1776,10 +1794,6 @@ msgstr ""
"gebruikt. Als dit niet kan worden vermeden, geef dan het argument " "gebruikt. Als dit niet kan worden vermeden, geef dan het argument "
"allow_inefficient=True aan de constructor" "allow_inefficient=True aan de constructor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1870,7 +1884,7 @@ msgid "Random number generation error"
msgstr "Random number generatie fout" msgstr "Random number generatie fout"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Alleen-lezen" msgstr "Alleen-lezen"
@ -1878,10 +1892,6 @@ msgstr "Alleen-lezen"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Alleen-lezen bestandssysteem" msgstr "Alleen-lezen bestandssysteem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Alleen-lezen object"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2731,6 +2741,10 @@ msgstr "kan geen 512 blokgrootte instellen"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "kan attribute niet instellen" msgstr "kan attribute niet instellen"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "kan '%q' niet opslaan" msgstr "kan '%q' niet opslaan"
@ -3094,10 +3108,6 @@ msgstr "lettertype moet 2048 bytes lang zijn"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "format vereist een dict" msgstr "format vereist een dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "vol" msgstr "vol"
@ -4373,6 +4383,9 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben" msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid "Read-only object"
#~ msgstr "Alleen-lezen object"
#~ msgid "At most %d %q may be specified (not %d)" #~ msgid "At most %d %q may be specified (not %d)"
#~ msgstr "Op zijn meest %d %q mogen worden gespecificeerd (niet %d)" #~ msgstr "Op zijn meest %d %q mogen worden gespecificeerd (niet %d)"

View File

@ -70,6 +70,11 @@ msgstr "%%c wymaga int lub char"
msgid "%02X" msgid "%02X"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -124,6 +129,10 @@ msgstr ""
msgid "%q is %q" msgid "%q is %q"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr ""
@ -298,7 +307,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' obiekt nie ma atrybutu '%q'" msgstr "'%s' obiekt nie ma atrybutu '%q'"
@ -493,6 +502,11 @@ msgstr ""
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "" msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "" msgstr ""
@ -1404,6 +1418,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Za długa nazwa" msgstr "Za długa nazwa"
@ -1765,10 +1783,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1857,7 +1871,7 @@ msgid "Random number generation error"
msgstr "Błąd generowania liczb losowych" msgstr "Błąd generowania liczb losowych"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Tylko do odczytu" msgstr "Tylko do odczytu"
@ -1865,10 +1879,6 @@ msgstr "Tylko do odczytu"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "System plików tylko do odczytu" msgstr "System plików tylko do odczytu"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Obiekt tylko do odczytu"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "Otrzymana odpowiedź była nieprawidłowa" msgstr "Otrzymana odpowiedź była nieprawidłowa"
@ -2711,6 +2721,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "nie można ustawić atrybutu" msgstr "nie można ustawić atrybutu"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "nie można zapisać '%q'" msgstr "nie można zapisać '%q'"
@ -3073,10 +3087,6 @@ msgstr "font musi mieć 2048 bajtów długości"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "format wymaga słownika" msgstr "format wymaga słownika"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "pełny" msgstr "pełny"
@ -4349,6 +4359,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Read-only object"
#~ msgstr "Obiekt tylko do odczytu"
#~ msgid "Invalid pins" #~ msgid "Invalid pins"
#~ msgstr "Złe nóżki" #~ msgstr "Złe nóżki"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n" "POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-12-22 15:49+0000\n" "PO-Revision-Date: 2022-12-28 03:47+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n" "Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: pt_BR\n" "Language: pt_BR\n"
@ -72,6 +72,11 @@ msgstr "%%c requer int ou char"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -128,6 +133,10 @@ msgstr "a inicialização do %q falhou"
msgid "%q is %q" msgid "%q is %q"
msgstr "%q é %q" msgstr "%q é %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "O comprimento de %q deve ser %d" msgstr "O comprimento de %q deve ser %d"
@ -302,7 +311,7 @@ msgstr "O objeto '%s' não suporta a atribuição dos itens"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "O objeto '%s' não é compatível com exclusão do item" msgstr "O objeto '%s' não é compatível com exclusão do item"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "O objeto '%s' não possui o atributo '%q'" msgstr "O objeto '%s' não possui o atributo '%q'"
@ -501,6 +510,11 @@ msgstr "Já está em execução"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Já está em busca das redes de wifi" msgstr "Já está em busca das redes de wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr "Ocorreu um erro ao recuperar '%s':\n"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Um outro PWMAudioOut já está ativo" msgstr "Um outro PWMAudioOut já está ativo"
@ -1432,6 +1446,10 @@ msgstr "O salto NLR falhou. Possível corrupção da memória."
msgid "NVS Error" msgid "NVS Error"
msgstr "Erro NVS" msgstr "Erro NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr "Nome ou serviço desconhecido"
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Nome muito longo" msgstr "Nome muito longo"
@ -1805,10 +1823,6 @@ msgstr ""
"ideal. Caso isso não possa ser evitado, passe allow_inefficient=True ao " "ideal. Caso isso não possa ser evitado, passe allow_inefficient=True ao "
"construtor" "construtor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr "Os pinos 21+ não são suportados pelo ULP"
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Os pinos devem ser sequenciais" msgstr "Os pinos devem ser sequenciais"
@ -1902,7 +1916,7 @@ msgid "Random number generation error"
msgstr "Houve um erro na geração do número aleatório" msgstr "Houve um erro na geração do número aleatório"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Somente leitura" msgstr "Somente leitura"
@ -1910,10 +1924,6 @@ msgstr "Somente leitura"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Sistema de arquivos somente leitura" msgstr "Sistema de arquivos somente leitura"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objeto de leitura apenas"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "A resposta recebida foi inválida" msgstr "A resposta recebida foi inválida"
@ -2785,6 +2795,10 @@ msgstr "não é possível definir o tamanho de 512 blocos"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "não é possível definir o atributo" msgstr "não é possível definir o atributo"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "não é possível armazenar '%q'" msgstr "não é possível armazenar '%q'"
@ -3155,10 +3169,6 @@ msgstr "a fonte deve ter 2048 bytes de comprimento"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "formato requer um dict" msgstr "formato requer um dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "nesta placa, a frequência é de apenas leitura"
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "cheio" msgstr "cheio"
@ -4441,6 +4451,15 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)" msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Objeto de leitura apenas"
#~ msgid "frequency is read-only for this board"
#~ msgstr "nesta placa, a frequência é de apenas leitura"
#~ msgid "Pins 21+ not supported from ULP"
#~ msgstr "Os pinos 21+ não são suportados pelo ULP"
#~ msgid "Unable to write" #~ msgid "Unable to write"
#~ msgstr "Não é possível escrever" #~ msgstr "Não é possível escrever"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-11-29 01:02+0000\n" "PO-Revision-Date: 2022-12-27 17:42+0000\n"
"Last-Translator: Clay <code.clayt@gmail.com>\n" "Last-Translator: Clay <code.clayt@gmail.com>\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: ru\n" "Language: ru\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.15-dev\n" "X-Generator: Weblate 4.15.1-dev\n"
#: main.c #: main.c
msgid "" msgid ""
@ -75,6 +75,11 @@ msgstr "%%c требует int или char"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -130,6 +135,10 @@ msgstr "Инициализация %q не удалась"
msgid "%q is %q" msgid "%q is %q"
msgstr "%q является %q" msgstr "%q является %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "Длинна %q должна быть %d" msgstr "Длинна %q должна быть %d"
@ -168,7 +177,7 @@ msgstr "%q должно быть >= %d"
#: shared-bindings/analogbufio/BufferedIn.c #: shared-bindings/analogbufio/BufferedIn.c
msgid "%q must be a bytearray or array of type 'H' or 'B'" msgid "%q must be a bytearray or array of type 'H' or 'B'"
msgstr "" msgstr "%q должно быть bytearray или array типа 'H' или 'B'"
#: shared-bindings/audiocore/RawSample.c #: shared-bindings/audiocore/RawSample.c
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'" msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
@ -205,7 +214,7 @@ msgstr "Пин %q не допустим"
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c #: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
msgid "%q step cannot be zero" msgid "%q step cannot be zero"
msgstr "" msgstr "Шаг %q не может быть нулём"
#: py/bc.c py/objnamedtuple.c #: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given" msgid "%q() takes %d positional arguments but %d were given"
@ -304,7 +313,7 @@ msgstr "Объект '%s' не поддерживает присвоение э
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "Объект '%s' не поддерживает удаление элементов" msgstr "Объект '%s' не поддерживает удаление элементов"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "Объект '%s' не имеет атрибута '%q'" msgstr "Объект '%s' не имеет атрибута '%q'"
@ -406,7 +415,7 @@ msgstr "Адрес должен быть длиной %d байт"
#: ports/espressif/common-hal/memorymap/AddressRange.c #: ports/espressif/common-hal/memorymap/AddressRange.c
msgid "Address range not allowed" msgid "Address range not allowed"
msgstr "" msgstr "Диапазон адресов не разрешен"
#: ports/espressif/common-hal/canio/CAN.c #: ports/espressif/common-hal/canio/CAN.c
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
@ -499,6 +508,11 @@ msgstr "Уже запущен"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Поиск сетей wifi уже происходит" msgstr "Поиск сетей wifi уже происходит"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Другой PWMAudioOut уже активен" msgstr "Другой PWMAudioOut уже активен"
@ -917,8 +931,10 @@ msgid "Drive mode not used when direction is input."
msgstr "Drive mode не используется, когда направление является входным." msgstr "Drive mode не используется, когда направление является входным."
#: py/obj.c #: py/obj.c
#, fuzzy
msgid "During handling of the above exception, another exception occurred:" msgid "During handling of the above exception, another exception occurred:"
msgstr "" msgstr ""
"Во время обработки вышеупомянутого исключения произошло другое исключение:"
#: shared-bindings/aesio/aes.c #: shared-bindings/aesio/aes.c
msgid "ECB only operates on 16 bytes at a time" msgid "ECB only operates on 16 bytes at a time"
@ -1040,7 +1056,7 @@ msgstr "Файл существует"
#: shared-module/os/getenv.c #: shared-module/os/getenv.c
msgid "File not found" msgid "File not found"
msgstr "" msgstr "Файл не найден"
#: ports/atmel-samd/common-hal/canio/Listener.c #: ports/atmel-samd/common-hal/canio/Listener.c
#: ports/espressif/common-hal/canio/Listener.c #: ports/espressif/common-hal/canio/Listener.c
@ -1291,7 +1307,7 @@ msgstr "Недопустимое бит-на-значение"
#: shared-module/os/getenv.c #: shared-module/os/getenv.c
#, c-format #, c-format
msgid "Invalid byte %.*s" msgid "Invalid byte %.*s"
msgstr "" msgstr "Неверный байт %.*s"
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c #: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
#, c-format #, c-format
@ -1333,7 +1349,7 @@ msgstr "Ключ должен быть длинной 16, 24 или 32 байт
#: shared-module/os/getenv.c #: shared-module/os/getenv.c
msgid "Key not found" msgid "Key not found"
msgstr "" msgstr "Ключ не найден"
#: shared-module/is31fl3741/FrameBuffer.c #: shared-module/is31fl3741/FrameBuffer.c
msgid "LED mappings must match display size" msgid "LED mappings must match display size"
@ -1377,7 +1393,7 @@ msgstr "Размер данных различается"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Mismatched swap flag" msgid "Mismatched swap flag"
msgstr "" msgstr "Несоответствие флага swap"
#: ports/mimxrt10xx/common-hal/busio/SPI.c #: ports/mimxrt10xx/common-hal/busio/SPI.c
msgid "Missing MISO or MOSI Pin" msgid "Missing MISO or MOSI Pin"
@ -1444,6 +1460,10 @@ msgstr "Не удалось выполнить NLR jump. Вероятно, по
msgid "NVS Error" msgid "NVS Error"
msgstr "Ошибка NVS" msgstr "Ошибка NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Имя слишком длинное" msgstr "Имя слишком длинное"
@ -1694,7 +1714,7 @@ msgstr ""
#: ports/espressif/common-hal/alarm/touch/TouchAlarm.c #: ports/espressif/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one %q can be set in deep sleep." msgid "Only one %q can be set in deep sleep."
msgstr "" msgstr "Только один %q может быть погружен в глубокий сон."
#: ports/espressif/common-hal/espulp/ULPAlarm.c #: ports/espressif/common-hal/espulp/ULPAlarm.c
msgid "Only one %q can be set." msgid "Only one %q can be set."
@ -1818,10 +1838,6 @@ msgstr ""
"%d байт. Если этого нельзя избежать, передайте allow_inefficient=True в " "%d байт. Если этого нельзя избежать, передайте allow_inefficient=True в "
"конструктор" "конструктор"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Пины должны быть последовательными" msgstr "Пины должны быть последовательными"
@ -1912,7 +1928,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1920,10 +1936,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2768,6 +2780,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3129,10 +3145,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""
@ -4378,7 +4390,7 @@ msgstr ""
#: extmod/ulab/code/numpy/vector.c #: extmod/ulab/code/numpy/vector.c
msgid "wrong output type" msgid "wrong output type"
msgstr "" msgstr "неверный тип вывода"
#: shared-module/displayio/Shape.c #: shared-module/displayio/Shape.c
msgid "x value out of bounds" msgid "x value out of bounds"
@ -4386,7 +4398,7 @@ msgstr ""
#: ports/espressif/common-hal/audiobusio/__init__.c #: ports/espressif/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed" msgid "xTaskCreate failed"
msgstr "" msgstr "xTaskCreate провалился"
#: shared-module/displayio/Shape.c #: shared-module/displayio/Shape.c
msgid "y value out of bounds" msgid "y value out of bounds"
@ -4394,7 +4406,7 @@ msgstr ""
#: extmod/ulab/code/scipy/signal/signal.c #: extmod/ulab/code/scipy/signal/signal.c
msgid "zi must be an ndarray" msgid "zi must be an ndarray"
msgstr "" msgstr "zi должен быть bytearray"
#: extmod/ulab/code/scipy/signal/signal.c #: extmod/ulab/code/scipy/signal/signal.c
msgid "zi must be of float type" msgid "zi must be of float type"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n" "POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-12-22 15:49+0000\n" "PO-Revision-Date: 2022-12-28 03:47+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n" "Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n" "Language: sv\n"
@ -72,6 +72,11 @@ msgstr "%%c kräver int eller char"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr "%S"
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -127,6 +132,10 @@ msgstr "%q init misslyckades"
msgid "%q is %q" msgid "%q is %q"
msgstr "%q är %q" msgstr "%q är %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "längden på %q måste vara %d" msgstr "längden på %q måste vara %d"
@ -303,7 +312,7 @@ msgstr "Objektet '%s' stöder inte tilldelning"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "Objektet '%s' stöder inte borttagning" msgstr "Objektet '%s' stöder inte borttagning"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "Objektet '%s' har inget attribut '%q'" msgstr "Objektet '%s' har inget attribut '%q'"
@ -498,6 +507,11 @@ msgstr "Kör redan"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Skannar redan efter WiFi-nätverk" msgstr "Skannar redan efter WiFi-nätverk"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr "Ett fel uppstod vid hämtning av '%s':\n"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "En annan PWMAudioOut är redan aktiv" msgstr "En annan PWMAudioOut är redan aktiv"
@ -1417,6 +1431,10 @@ msgstr "NLR jump misslyckades. Troligen korrupt minne."
msgid "NVS Error" msgid "NVS Error"
msgstr "NVS-fel" msgstr "NVS-fel"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr "Namn eller tjänst inte känd"
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Name är för långt" msgstr "Name är för långt"
@ -1788,10 +1806,6 @@ msgstr ""
"%d byte. Om detta inte kan undvikas, skicka allow_inefficient=True till " "%d byte. Om detta inte kan undvikas, skicka allow_inefficient=True till "
"konstruktorn" "konstruktorn"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr "Pins 21+ stöds inte av ULP"
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "Pinnarna måste vara i sekvens" msgstr "Pinnarna måste vara i sekvens"
@ -1882,7 +1896,7 @@ msgid "Random number generation error"
msgstr "Fel vid generering av slumptal" msgstr "Fel vid generering av slumptal"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Skrivskyddad" msgstr "Skrivskyddad"
@ -1890,10 +1904,6 @@ msgstr "Skrivskyddad"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Skrivskyddat filsystem" msgstr "Skrivskyddat filsystem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Skrivskyddat objekt"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "Mottaget svar var ogiltigt" msgstr "Mottaget svar var ogiltigt"
@ -2756,6 +2766,10 @@ msgstr "kan inte sätta blockstorlek 512"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "kan inte att ange attribut" msgstr "kan inte att ange attribut"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "kan inte lagra '%q'" msgstr "kan inte lagra '%q'"
@ -3124,10 +3138,6 @@ msgstr "typsnitt måste vara 2048 bytes långt"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "formatet kräver en dict" msgstr "formatet kräver en dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "frekvens är skrivskyddad för detta kort"
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "full" msgstr "full"
@ -4403,6 +4413,15 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)" msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Skrivskyddat objekt"
#~ msgid "frequency is read-only for this board"
#~ msgstr "frekvens är skrivskyddad för detta kort"
#~ msgid "Pins 21+ not supported from ULP"
#~ msgstr "Pins 21+ stöds inte av ULP"
#~ msgid "Unable to write" #~ msgid "Unable to write"
#~ msgstr "Kan inte skriva" #~ msgstr "Kan inte skriva"

View File

@ -75,6 +75,11 @@ msgstr "%%c int veya char tipine ihtiyaç duyar"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -131,6 +136,10 @@ msgstr "%q init başarısız oldu"
msgid "%q is %q" msgid "%q is %q"
msgstr "%q %q dir" msgstr "%q %q dir"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "%q boyutu %d olmalıdır" msgstr "%q boyutu %d olmalıdır"
@ -305,7 +314,7 @@ msgstr "'%s' nesnesi, öğe atamasını desteklemiyor"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' nesnesi, öğe silmeyi desteklemiyor" msgstr "'%s' nesnesi, öğe silmeyi desteklemiyor"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' nesnesinin '%q' özelliği yok" msgstr "'%s' nesnesinin '%q' özelliği yok"
@ -501,6 +510,11 @@ msgstr "Halihazırda çalışıyor"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "Halihazırda wifi ağları için tarama yapılıyor" msgstr "Halihazırda wifi ağları için tarama yapılıyor"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "Başka bir PWMAudioOut zaten aktif durumda" msgstr "Başka bir PWMAudioOut zaten aktif durumda"
@ -1416,6 +1430,10 @@ msgstr ""
msgid "NVS Error" msgid "NVS Error"
msgstr "NVS hatası" msgstr "NVS hatası"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "İsim çok uzun" msgstr "İsim çok uzun"
@ -1777,10 +1795,6 @@ msgid ""
"constructor" "constructor"
msgstr "" msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "" msgstr ""
@ -1872,7 +1886,7 @@ msgid "Random number generation error"
msgstr "" msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "" msgstr ""
@ -1880,10 +1894,6 @@ msgstr ""
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "" msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "" msgstr ""
@ -2726,6 +2736,10 @@ msgstr ""
msgid "can't set attribute" msgid "can't set attribute"
msgstr "" msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "" msgstr ""
@ -3087,10 +3101,6 @@ msgstr ""
msgid "format requires a dict" msgid "format requires a dict"
msgstr "" msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "" msgstr ""

View File

@ -74,6 +74,11 @@ msgstr "%%c xūyào zhěngshù huòzhě zìfú"
msgid "%02X" msgid "%02X"
msgstr "%02X" msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
msgid "" msgid ""
@ -130,6 +135,10 @@ msgstr "%q chūshǐhuà shībài"
msgid "%q is %q" msgid "%q is %q"
msgstr "%q shì %q" msgstr "%q shì %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c #: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "%q de chángdù bìxū shì %d" msgstr "%q de chángdù bìxū shì %d"
@ -305,7 +314,7 @@ msgstr "'%s' duìxiàng bù zhīchí yuánsù fùzhí"
msgid "'%s' object doesn't support item deletion" msgid "'%s' object doesn't support item deletion"
msgstr "'%s' duìxiàng bù zhīchí yuánsù shānchú" msgstr "'%s' duìxiàng bù zhīchí yuánsù shānchú"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c #: py/runtime.c
msgid "'%s' object has no attribute '%q'" msgid "'%s' object has no attribute '%q'"
msgstr "'%s' duìxiàng méiyǒu shǔxìng '%q'" msgstr "'%s' duìxiàng méiyǒu shǔxìng '%q'"
@ -500,6 +509,11 @@ msgstr "yǐjīng zài yùnxíng"
msgid "Already scanning for wifi networks" msgid "Already scanning for wifi networks"
msgstr "yǐjīng zài sǎomiáo WIFI wǎngluò" msgstr "yǐjīng zài sǎomiáo WIFI wǎngluò"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c #: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active" msgid "Another PWMAudioOut is already active"
msgstr "lìng yí gè PWMAudioOut yǐ jīng zài gōngzuò" msgstr "lìng yí gè PWMAudioOut yǐ jīng zài gōngzuò"
@ -1423,6 +1437,10 @@ msgstr "NLR tiào zhuǎn shī bài. kě néng shì nèi cún sǔn huài."
msgid "NVS Error" msgid "NVS Error"
msgstr "NVS cuò wù" msgstr "NVS cuò wù"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c #: py/qstr.c
msgid "Name too long" msgid "Name too long"
msgstr "Míngchēng tài zhǎng" msgstr "Míngchēng tài zhǎng"
@ -1792,10 +1810,6 @@ msgstr ""
"duōzì jié. Rúguǒ wúfǎ bìmiǎn, qǐng jiāng allow_inefficient = True chuándì " "duōzì jié. Rúguǒ wúfǎ bìmiǎn, qǐng jiāng allow_inefficient = True chuándì "
"gěigòuzào hánshù" "gěigòuzào hánshù"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c #: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential" msgid "Pins must be sequential"
msgstr "yǐn jiǎo bì xū shì lián xù de" msgstr "yǐn jiǎo bì xū shì lián xù de"
@ -1886,7 +1900,7 @@ msgid "Random number generation error"
msgstr "Suíjī shù shēngchéng cuòwù" msgstr "Suíjī shù shēngchéng cuòwù"
#: shared-bindings/memorymonitor/AllocationSize.c #: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c #: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only" msgid "Read-only"
msgstr "Zhǐ dú" msgstr "Zhǐ dú"
@ -1894,10 +1908,6 @@ msgstr "Zhǐ dú"
msgid "Read-only filesystem" msgid "Read-only filesystem"
msgstr "Zhǐ dú wénjiàn xìtǒng" msgstr "Zhǐ dú wénjiàn xìtǒng"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Zhǐ dú duìxiàng"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid" msgid "Received response was invalid"
msgstr "shōu dào de xiǎng yìng wú xiào" msgstr "shōu dào de xiǎng yìng wú xiào"
@ -2761,6 +2771,10 @@ msgstr "wúfǎ shèzhì 512 kuài dàxiǎo"
msgid "can't set attribute" msgid "can't set attribute"
msgstr "wúfǎ shèzhì shǔxìng" msgstr "wúfǎ shèzhì shǔxìng"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c #: py/emitnative.c
msgid "can't store '%q'" msgid "can't store '%q'"
msgstr "wúfǎ cúnchú '%q'" msgstr "wúfǎ cúnchú '%q'"
@ -3130,10 +3144,6 @@ msgstr "zìtǐ bìxū wèi 2048 zì jié"
msgid "format requires a dict" msgid "format requires a dict"
msgstr "géshì yāoqiú yīgè yǔjù" msgstr "géshì yāoqiú yīgè yǔjù"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "cǐ zhǔ bǎn de pín lǜ wéi zhǐ dú"
#: py/objdeque.c #: py/objdeque.c
msgid "full" msgid "full"
msgstr "chōngfèn" msgstr "chōngfèn"
@ -4409,6 +4419,12 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)" msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "Read-only object"
#~ msgstr "Zhǐ dú duìxiàng"
#~ msgid "frequency is read-only for this board"
#~ msgstr "cǐ zhǔ bǎn de pín lǜ wéi zhǐ dú"
#~ msgid "Unable to write" #~ msgid "Unable to write"
#~ msgstr "wú fǎ xiě rù" #~ msgstr "wú fǎ xiě rù"

@ -1 +1 @@
Subproject commit 57133eefeb077f73b5ac17ee044d9feaf566da8e Subproject commit baca4c084334aa8625f525a4032d66a397199ea6

View File

@ -46,6 +46,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) }, { MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) }, { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO7) }, { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) }, { MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) }, { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "M5Stack Atom Echo"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO27)
#define CIRCUITPY_BOARD_I2C (1)
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO32, .sda = &pin_GPIO26}}
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x10151015
CIRCUITPY_CREATION_ID = 0x00320005
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -0,0 +1,43 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
// External pins are in silkscreen order, from top to bottom, left side, then right side
{ MP_ROM_QSTR(MP_QSTR_SPK_I2S_SDO), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_SPK_I2S_SCK), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_SPK_I2S_LRC), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_CLK), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_DATA), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_A25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_A32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,26 @@
CONFIG_ESP32_SPIRAM_SUPPORT=n
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="M5StaskAtomEcho"
# end of LWIP
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
### #
### # ESP System Settings
### #
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
### CONFIG_ESP_CONSOLE_NONE is not set
### CONFIG_ESP_CONSOLE_UART=y
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
### CONFIG_ESP_CONSOLE_UART_NUM=0
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,49 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "M5Stack Atom Matrix"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO27)
#define CIRCUITPY_BOARD_I2C (2)
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO21, .sda = &pin_GPIO25}, \
{.scl = &pin_GPIO32, .sda = &pin_GPIO26}}
#define CIRCUITPY_BOARD_SPI (1)
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO23, .mosi = &pin_GPIO19, .miso = &pin_GPIO33}}
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x10151015
CIRCUITPY_CREATION_ID = 0x00320004
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -0,0 +1,51 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
CIRCUITPY_BOARD_BUS_SINGLETON(porta_i2c, i2c, 1)
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
// External pins are in silkscreen order, from top to bottom, left side, then right side
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_A33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_A25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_A32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_porta_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,26 @@
CONFIG_ESP32_SPIRAM_SUPPORT=n
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="M5StaskAtomMatrix"
# end of LWIP
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
### #
### # ESP System Settings
### #
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
### CONFIG_ESP_CONSOLE_NONE is not set
### CONFIG_ESP_CONSOLE_UART=y
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
### CONFIG_ESP_CONSOLE_UART_NUM=0
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,48 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "M5Stack Atom U"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO27)
#define CIRCUITPY_BOARD_I2C (1)
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO32, .sda = &pin_GPIO26}}
#define CIRCUITPY_BOARD_SPI (1)
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO23, .mosi = &pin_GPIO19, .miso = &pin_GPIO33}}
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x10151015
CIRCUITPY_CREATION_ID = 0x00320006
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -0,0 +1,42 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
// External pins are in silkscreen order, from top to bottom, left side, then right side
{ MP_ROM_QSTR(MP_QSTR_A25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_A33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_A32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_CLK), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_DATA), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,26 @@
CONFIG_ESP32_SPIRAM_SUPPORT=n
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="M5StaskAtomU"
# end of LWIP
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
### #
### # ESP System Settings
### #
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
### CONFIG_ESP_CONSOLE_NONE is not set
### CONFIG_ESP_CONSOLE_UART=y
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
### CONFIG_ESP_CONSOLE_UART_NUM=0
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -369,7 +369,7 @@ void common_hal_socketpool_socket_connect(socketpool_socket_obj_t *self,
struct addrinfo *result_i; struct addrinfo *result_i;
int error = lwip_getaddrinfo(host, NULL, &hints, &result_i); int error = lwip_getaddrinfo(host, NULL, &hints, &result_i);
if (error != 0 || result_i == NULL) { if (error != 0 || result_i == NULL) {
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known); common_hal_socketpool_socketpool_raise_gaierror_noname();
} }
// Set parameters // Set parameters
@ -550,7 +550,7 @@ mp_uint_t common_hal_socketpool_socket_sendto(socketpool_socket_obj_t *self,
struct addrinfo *result_i; struct addrinfo *result_i;
int error = lwip_getaddrinfo(host, NULL, &hints, &result_i); int error = lwip_getaddrinfo(host, NULL, &hints, &result_i);
if (error != 0 || result_i == NULL) { if (error != 0 || result_i == NULL) {
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known); common_hal_socketpool_socketpool_raise_gaierror_noname();
} }
// Set parameters // Set parameters

View File

@ -113,7 +113,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
bool sigint_enabled) { bool sigint_enabled) {
self->baudrate = baudrate; self->baudrate = baudrate;
self->character_bits = (uint8_t)mp_arg_validate_int_range(self->character_bits, 7, 8, MP_QSTR_bits); self->character_bits = (uint8_t)mp_arg_validate_int_range(bits, 7, 8, MP_QSTR_bits);
self->timeout_ms = timeout * 1000; self->timeout_ms = timeout * 1000;

View File

@ -29,8 +29,18 @@
// Turn off cache and invalidate all data in it. // Turn off cache and invalidate all data in it.
void nrf_peripherals_disable_and_clear_cache(void) { void nrf_peripherals_disable_and_clear_cache(void) {
// Memory fence for hardware and compiler reasons. If this routine is inlined, the compiler
// needs to know that everything written out be stored before this is called.
// -O2 optimization needed this on SAMD51. Assuming nRF may have the same issue.
// __sync_synchronize() includes volatile asm(), which tells the compiler not to assume
// state across this call.
__sync_synchronize();
// Disabling cache also invalidates all cache entries. // Disabling cache also invalidates all cache entries.
NRF_NVMC->ICACHECNF &= ~(1 << NVMC_ICACHECNF_CACHEEN_Pos); NRF_NVMC->ICACHECNF &= ~(1 << NVMC_ICACHECNF_CACHEEN_Pos);
// Memory fence for hardware and compiler reasons.
__sync_synchronize();
} }
// Enable cache // Enable cache

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 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"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,17 @@
#define MICROPY_HW_BOARD_NAME "nullbits Bit-C PRO"
#define MICROPY_HW_MCU_NAME "rp2040"
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO3)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO22)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO23)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO20)
#define DEFAULT_UART_BUS_RX (&pin_GPIO1)
#define DEFAULT_UART_BUS_TX (&pin_GPIO0)
#define CIRCUITPY_RGB_STATUS_INVERTED_PWM
#define CIRCUITPY_RGB_STATUS_R (&pin_GPIO16)
#define CIRCUITPY_RGB_STATUS_G (&pin_GPIO17)
#define CIRCUITPY_RGB_STATUS_B (&pin_GPIO18)

View File

@ -0,0 +1,9 @@
USB_VID = 0x2E8A
USB_PID = 0x1048
USB_PRODUCT = "Bit-C PRO"
USB_MANUFACTURER = "nullbits"
CHIP_VARIANT = RP2040
CHIP_FAMILY = rp2
EXTERNAL_FLASH_DEVICES = "GD25Q32C"

View File

@ -0,0 +1,4 @@
// Put board-specific pico-sdk definitions here. This file must exist.
// Allow extra time for xosc to start.
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64

View File

@ -0,0 +1,49 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_D28), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_D29), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_D20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_LED_RED), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_LED_GREEN), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_LED_BLUE), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO18) },
{ 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_module_globals_table);

View File

@ -98,7 +98,7 @@ void socketpool_resolve_host_raise(socketpool_socketpool_obj_t *self, const char
int result = socketpool_resolve_host(self, host, addr); int result = socketpool_resolve_host(self, host, addr);
if (result < 0) { if (result < 0) {
printf("socket_resolve_host() returned %d\n", result); printf("socket_resolve_host() returned %d\n", result);
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known); common_hal_socketpool_socketpool_raise_gaierror_noname();
mp_raise_OSError(-result); mp_raise_OSError(-result);
} }
} }

View File

@ -64,8 +64,8 @@ static inline void nw_put_le32(uint8_t *buf, uint32_t x) {
buf[3] = x >> 24; buf[3] = x >> 24;
} }
NORETURN static void ro_attribute(int attr) { NORETURN static void ro_attribute(qstr attr) {
mp_raise_msg_varg(&mp_type_AttributeError, MP_ERROR_TEXT("'%s' object has no attribute '%q'"), "Radio", attr); mp_raise_NotImplementedError_varg(translate("%q is read-only for this board"), attr);
} }
bool common_hal_wifi_radio_get_enabled(wifi_radio_obj_t *self) { bool common_hal_wifi_radio_get_enabled(wifi_radio_obj_t *self) {

View File

@ -2,6 +2,9 @@
LONGINT_IMPL = MPZ LONGINT_IMPL = MPZ
CIRCUITPY_OPTIMIZE_PROPERTY_FLASH_SIZE ?= 1 CIRCUITPY_OPTIMIZE_PROPERTY_FLASH_SIZE ?= 1
# CYW43 support does not provide settable MAC addresses for station or AP.
CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS = 0
CIRCUITPY_ALARM ?= 1 CIRCUITPY_ALARM ?= 1
CIRCUITPY_RP2PIO ?= 1 CIRCUITPY_RP2PIO ?= 1

View File

@ -57,7 +57,11 @@
#endif #endif
#if defined(MICROPY_UNIX_COVERAGE) #if defined(MICROPY_UNIX_COVERAGE)
#include "py/objstr.h"
typedef int os_getenv_err_t;
mp_obj_t common_hal_os_getenv(const char *key, mp_obj_t default_); mp_obj_t common_hal_os_getenv(const char *key, mp_obj_t default_);
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len);
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value);
#endif #endif
STATIC mp_obj_t mod_os_urandom(mp_obj_t num) { STATIC mp_obj_t mod_os_urandom(mp_obj_t num) {
@ -212,6 +216,28 @@ STATIC mp_obj_t mod_os_getenv(mp_obj_t var_in) {
} }
MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_obj, mod_os_getenv); MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_obj, mod_os_getenv);
#if defined(MICROPY_UNIX_COVERAGE)
STATIC mp_obj_t mod_os_getenv_int(mp_obj_t var_in) {
mp_int_t value;
os_getenv_err_t result = common_hal_os_getenv_int(mp_obj_str_get_str(var_in), &value);
if (result == 0) {
return mp_obj_new_int(value);
}
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_int_obj, mod_os_getenv_int);
STATIC mp_obj_t mod_os_getenv_str(mp_obj_t var_in) {
char buf[4096];
os_getenv_err_t result = common_hal_os_getenv_str(mp_obj_str_get_str(var_in), buf, sizeof(buf));
if (result == 0) {
return mp_obj_new_str_copy(&mp_type_str, (byte *)buf, strlen(buf));
}
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_str_obj, mod_os_getenv_str);
#endif
STATIC mp_obj_t mod_os_putenv(mp_obj_t key_in, mp_obj_t value_in) { STATIC mp_obj_t mod_os_putenv(mp_obj_t key_in, mp_obj_t value_in) {
const char *key = mp_obj_str_get_str(key_in); const char *key = mp_obj_str_get_str(key_in);
const char *value = mp_obj_str_get_str(value_in); const char *value = mp_obj_str_get_str(value_in);
@ -351,6 +377,10 @@ STATIC const mp_rom_map_elem_t mp_module_os_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&mod_os_rename_obj) }, { MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&mod_os_rename_obj) },
{ MP_ROM_QSTR(MP_QSTR_rmdir), MP_ROM_PTR(&mod_os_rmdir_obj) }, { MP_ROM_QSTR(MP_QSTR_rmdir), MP_ROM_PTR(&mod_os_rmdir_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv), MP_ROM_PTR(&mod_os_getenv_obj) }, { MP_ROM_QSTR(MP_QSTR_getenv), MP_ROM_PTR(&mod_os_getenv_obj) },
#if defined(MICROPY_UNIX_COVERAGE)
{ MP_ROM_QSTR(MP_QSTR_getenv_int), MP_ROM_PTR(&mod_os_getenv_int_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv_str), MP_ROM_PTR(&mod_os_getenv_str_obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_putenv), MP_ROM_PTR(&mod_os_putenv_obj) }, { MP_ROM_QSTR(MP_QSTR_putenv), MP_ROM_PTR(&mod_os_putenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_unsetenv), MP_ROM_PTR(&mod_os_unsetenv_obj) }, { MP_ROM_QSTR(MP_QSTR_unsetenv), MP_ROM_PTR(&mod_os_unsetenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&mod_os_mkdir_obj) }, { MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&mod_os_mkdir_obj) },

View File

@ -37,6 +37,10 @@
// These are defined in modos.c // These are defined in modos.c
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mod_os_errno_obj); MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mod_os_errno_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_obj); MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_obj);
#if defined(MICROPY_UNIX_COVERAGE)
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_int_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_str_obj);
#endif
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_putenv_obj); MP_DECLARE_CONST_FUN_OBJ_1(mod_os_putenv_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_unsetenv_obj); MP_DECLARE_CONST_FUN_OBJ_1(mod_os_unsetenv_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_system_obj); MP_DECLARE_CONST_FUN_OBJ_1(mod_os_system_obj);
@ -47,6 +51,10 @@ STATIC const mp_rom_map_elem_t uos_vfs_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mod_os_errno_obj) }, { MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mod_os_errno_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv), MP_ROM_PTR(&mod_os_getenv_obj) }, { MP_ROM_QSTR(MP_QSTR_getenv), MP_ROM_PTR(&mod_os_getenv_obj) },
#if defined(MICROPY_UNIX_COVERAGE)
{ MP_ROM_QSTR(MP_QSTR_getenv_int), MP_ROM_PTR(&mod_os_getenv_int_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv_str), MP_ROM_PTR(&mod_os_getenv_str_obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_putenv), MP_ROM_PTR(&mod_os_putenv_obj) }, { MP_ROM_QSTR(MP_QSTR_putenv), MP_ROM_PTR(&mod_os_putenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_unsetenv), MP_ROM_PTR(&mod_os_unsetenv_obj) }, { MP_ROM_QSTR(MP_QSTR_unsetenv), MP_ROM_PTR(&mod_os_unsetenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_system), MP_ROM_PTR(&mod_os_system_obj) }, { MP_ROM_QSTR(MP_QSTR_system), MP_ROM_PTR(&mod_os_system_obj) },

View File

@ -538,6 +538,9 @@ CFLAGS += -DCIRCUITPY_WIFI=$(CIRCUITPY_WIFI)
CIRCUITPY_WEB_WORKFLOW ?= $(CIRCUITPY_WIFI) CIRCUITPY_WEB_WORKFLOW ?= $(CIRCUITPY_WIFI)
CFLAGS += -DCIRCUITPY_WEB_WORKFLOW=$(CIRCUITPY_WEB_WORKFLOW) CFLAGS += -DCIRCUITPY_WEB_WORKFLOW=$(CIRCUITPY_WEB_WORKFLOW)
CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS?= 1
CFLAGS += -DCIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS=$(CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS)
# tinyusb port tailored configuration # tinyusb port tailored configuration
CIRCUITPY_TUSB_MEM_ALIGN ?= 4 CIRCUITPY_TUSB_MEM_ALIGN ?= 4
CFLAGS += -DCIRCUITPY_TUSB_MEM_ALIGN=$(CIRCUITPY_TUSB_MEM_ALIGN) CFLAGS += -DCIRCUITPY_TUSB_MEM_ALIGN=$(CIRCUITPY_TUSB_MEM_ALIGN)

View File

@ -106,7 +106,9 @@ STATIC mp_obj_t native_base_init_wrapper(size_t n_args, const mp_obj_t *pos_args
// copy in args // copy in args
memcpy(args2, pos_args, n_args * sizeof(mp_obj_t)); memcpy(args2, pos_args, n_args * sizeof(mp_obj_t));
// copy in kwargs // copy in kwargs
memcpy(args2 + n_args, kw_args->table, 2 * n_kw * sizeof(mp_obj_t)); if (n_kw) {
memcpy(args2 + n_args, kw_args->table, 2 * n_kw * sizeof(mp_obj_t));
}
self->subobj[0] = native_base->make_new(native_base, n_args, n_kw, args2); self->subobj[0] = native_base->make_new(native_base, n_args, n_kw, args2);
m_del(mp_obj_t, args2, n_args + 2 * n_kw); m_del(mp_obj_t, args2, n_args + 2 * n_kw);

View File

@ -1247,8 +1247,8 @@ void mp_store_attr(mp_obj_t base, qstr attr, mp_obj_t value) {
mp_raise_AttributeError(MP_ERROR_TEXT("no such attribute")); mp_raise_AttributeError(MP_ERROR_TEXT("no such attribute"));
#else #else
mp_raise_msg_varg(&mp_type_AttributeError, mp_raise_msg_varg(&mp_type_AttributeError,
MP_ERROR_TEXT("'%s' object has no attribute '%q'"), MP_ERROR_TEXT("can't set attribute '%q'"),
mp_obj_get_type_str(base), attr); attr);
#endif #endif
} }

View File

@ -65,19 +65,21 @@
//| ... //| ...
//| frequency: int //| frequency: int
//| """The CPU operating frequency in Hertz. (read-only)""" //| """The CPU operating frequency in Hertz.
//|
//| **Limitations:** Setting the ``frequency`` is possible only on some i.MX boards.
//| On most boards, ``frequency`` is read-only.
//| """
#if CIRCUITPY_SETTABLE_PROCESSOR_FREQUENCY
STATIC mp_obj_t mcu_processor_set_frequency(mp_obj_t self, mp_obj_t freq) { STATIC mp_obj_t mcu_processor_set_frequency(mp_obj_t self, mp_obj_t freq) {
#if CIRCUITPY_SETTABLE_PROCESSOR_FREQUENCY
uint32_t value_of_freq = (uint32_t)mp_arg_validate_int_min(mp_obj_get_int(freq), 0, MP_QSTR_frequency); uint32_t value_of_freq = (uint32_t)mp_arg_validate_int_min(mp_obj_get_int(freq), 0, MP_QSTR_frequency);
common_hal_mcu_processor_set_frequency(self, value_of_freq); common_hal_mcu_processor_set_frequency(self, value_of_freq);
#else
mp_raise_msg(&mp_type_NotImplementedError,translate("frequency is read-only for this board"));
#endif
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_2(mcu_processor_set_frequency_obj, mcu_processor_set_frequency); MP_DEFINE_CONST_FUN_OBJ_2(mcu_processor_set_frequency_obj, mcu_processor_set_frequency);
#endif
STATIC mp_obj_t mcu_processor_get_frequency(mp_obj_t self) { STATIC mp_obj_t mcu_processor_get_frequency(mp_obj_t self) {
@ -86,9 +88,14 @@ STATIC mp_obj_t mcu_processor_get_frequency(mp_obj_t self) {
MP_DEFINE_CONST_FUN_OBJ_1(mcu_processor_get_frequency_obj, mcu_processor_get_frequency); MP_DEFINE_CONST_FUN_OBJ_1(mcu_processor_get_frequency_obj, mcu_processor_get_frequency);
#if CIRCUITPY_SETTABLE_PROCESSOR_FREQUENCY
MP_PROPERTY_GETSET(mcu_processor_frequency_obj, MP_PROPERTY_GETSET(mcu_processor_frequency_obj,
(mp_obj_t)&mcu_processor_get_frequency_obj, (mp_obj_t)&mcu_processor_get_frequency_obj,
(mp_obj_t)&mcu_processor_set_frequency_obj); (mp_obj_t)&mcu_processor_set_frequency_obj);
#else
MP_PROPERTY_GETTER(mcu_processor_frequency_obj,
(mp_obj_t)&mcu_processor_get_frequency_obj);
#endif
//| reset_reason: microcontroller.ResetReason //| reset_reason: microcontroller.ResetReason
//| """The reason the microcontroller started up from reset state.""" //| """The reason the microcontroller started up from reset state."""

View File

@ -198,16 +198,21 @@ MP_WEAK
mp_obj_t common_hal_socketpool_socketpool_gethostbyname_raise(socketpool_socketpool_obj_t *self, const char *host) { mp_obj_t common_hal_socketpool_socketpool_gethostbyname_raise(socketpool_socketpool_obj_t *self, const char *host) {
mp_obj_t ip_str = common_hal_socketpool_socketpool_gethostbyname(self, host); mp_obj_t ip_str = common_hal_socketpool_socketpool_gethostbyname(self, host);
if (ip_str == mp_const_none) { if (ip_str == mp_const_none) {
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known); common_hal_socketpool_socketpool_raise_gaierror_noname();
} }
return ip_str; return ip_str;
} }
MP_WEAK NORETURN MP_WEAK NORETURN
void common_hal_socketpool_socketpool_raise_gaierror(int value, qstr name) { void common_hal_socketpool_socketpool_raise_gaierror_noname(void) {
mp_obj_t exc_args[2] = { vstr_t vstr;
MP_OBJ_NEW_SMALL_INT(value), mp_print_t print;
MP_OBJ_NEW_QSTR(name), vstr_init_print(&vstr, 64, &print);
mp_printf(&print, "%S", translate("Name or service not known"));
mp_obj_t exc_args[] = {
MP_OBJ_NEW_SMALL_INT(SOCKETPOOL_EAI_NONAME),
mp_obj_new_str_from_vstr(&mp_type_str, &vstr),
}; };
nlr_raise(mp_obj_new_exception_args(&mp_type_gaierror, 2, exc_args)); nlr_raise(mp_obj_new_exception_args(&mp_type_gaierror, MP_ARRAY_SIZE(exc_args), exc_args));
} }

View File

@ -73,6 +73,6 @@ bool socketpool_socket(socketpool_socketpool_obj_t *self,
socketpool_socketpool_addressfamily_t family, socketpool_socketpool_sock_t type, socketpool_socketpool_addressfamily_t family, socketpool_socketpool_sock_t type,
socketpool_socket_obj_t *sock); socketpool_socket_obj_t *sock);
NORETURN void common_hal_socketpool_socketpool_raise_gaierror(int value, qstr name); NORETURN void common_hal_socketpool_socketpool_raise_gaierror_noname(void);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_SOCKETPOOL_SOCKETPOOL_H #endif // MICROPY_INCLUDED_SHARED_BINDINGS_SOCKETPOOL_SOCKETPOOL_H

View File

@ -139,13 +139,19 @@ MP_PROPERTY_GETSET(wifi_radio_hostname_obj,
//| mac_address: ReadableBuffer //| mac_address: ReadableBuffer
//| """MAC address for the station. When the address is altered after interface is connected //| """MAC address for the station. When the address is altered after interface is connected
//| the changes would only be reflected once the interface reconnects.""" //| the changes would only be reflected once the interface reconnects.
//|
//| **Limitations:** Not settable on RP2040 CYW43 boards, such as Pi Pico W.
//| """
STATIC mp_obj_t _wifi_radio_get_mac_address(mp_obj_t self_in) { STATIC mp_obj_t _wifi_radio_get_mac_address(mp_obj_t self_in) {
wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in); wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address(self)); return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address(self));
} }
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_obj, _wifi_radio_get_mac_address); MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_obj, _wifi_radio_get_mac_address);
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
STATIC mp_obj_t wifi_radio_set_mac_address(mp_obj_t self_in, mp_obj_t mac_address_in) { STATIC mp_obj_t wifi_radio_set_mac_address(mp_obj_t self_in, mp_obj_t mac_address_in) {
mp_buffer_info_t mac_address; mp_buffer_info_t mac_address;
mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ); mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ);
@ -160,10 +166,16 @@ STATIC mp_obj_t wifi_radio_set_mac_address(mp_obj_t self_in, mp_obj_t mac_addres
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_obj, wifi_radio_set_mac_address); MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_obj, wifi_radio_set_mac_address);
#endif
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
MP_PROPERTY_GETSET(wifi_radio_mac_address_obj, MP_PROPERTY_GETSET(wifi_radio_mac_address_obj,
(mp_obj_t)&wifi_radio_get_mac_address_obj, (mp_obj_t)&wifi_radio_get_mac_address_obj,
(mp_obj_t)&wifi_radio_set_mac_address_obj); (mp_obj_t)&wifi_radio_set_mac_address_obj);
#else
MP_PROPERTY_GETTER(wifi_radio_mac_address_obj,
(mp_obj_t)&wifi_radio_get_mac_address_obj);
#endif
//| tx_power: float //| tx_power: float
//| """Wifi transmission power, in dBm.""" //| """Wifi transmission power, in dBm."""
@ -187,13 +199,17 @@ MP_PROPERTY_GETSET(wifi_radio_tx_power_obj,
//| mac_address_ap: ReadableBuffer //| mac_address_ap: ReadableBuffer
//| """MAC address for the AP. When the address is altered after interface is started //| """MAC address for the AP. When the address is altered after interface is started
//| the changes would only be reflected once the interface restarts.""" //| the changes would only be reflected once the interface restarts.
//|
//| **Limitations:** Not settable on RP2040 CYW43 boards, such as Pi Pico W.
//| """
STATIC mp_obj_t wifi_radio_get_mac_address_ap(mp_obj_t self_in) { STATIC mp_obj_t wifi_radio_get_mac_address_ap(mp_obj_t self_in) {
wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in); wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address_ap(self)); return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address_ap(self));
} }
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_ap_obj, wifi_radio_get_mac_address_ap); MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_ap_obj, wifi_radio_get_mac_address_ap);
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
STATIC mp_obj_t wifi_radio_set_mac_address_ap(mp_obj_t self_in, mp_obj_t mac_address_in) { STATIC mp_obj_t wifi_radio_set_mac_address_ap(mp_obj_t self_in, mp_obj_t mac_address_in) {
mp_buffer_info_t mac_address; mp_buffer_info_t mac_address;
mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ); mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ);
@ -208,10 +224,16 @@ STATIC mp_obj_t wifi_radio_set_mac_address_ap(mp_obj_t self_in, mp_obj_t mac_add
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_ap_obj, wifi_radio_set_mac_address_ap); MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_ap_obj, wifi_radio_set_mac_address_ap);
#endif
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
MP_PROPERTY_GETSET(wifi_radio_mac_address_ap_obj, MP_PROPERTY_GETSET(wifi_radio_mac_address_ap_obj,
(mp_obj_t)&wifi_radio_get_mac_address_ap_obj, (mp_obj_t)&wifi_radio_get_mac_address_ap_obj,
(mp_obj_t)&wifi_radio_set_mac_address_ap_obj); (mp_obj_t)&wifi_radio_set_mac_address_ap_obj);
#else
MP_PROPERTY_GETTER(wifi_radio_mac_address_ap_obj,
(mp_obj_t)&wifi_radio_get_mac_address_ap_obj);
#endif
//| def start_scanning_networks( //| def start_scanning_networks(
//| self, *, start_channel: int = 1, stop_channel: int = 11 //| self, *, start_channel: int = 1, stop_channel: int = 11

View File

@ -689,7 +689,7 @@ STATIC void fill_row(displayio_bitmap_t *bitmap, int swap, int16_t *luminance_da
static void write_pixels(displayio_bitmap_t *bitmap, int y, bool *data) { static void write_pixels(displayio_bitmap_t *bitmap, int y, bool *data) {
if (bitmap->bits_per_value == 1) { if (bitmap->bits_per_value == 1) {
uint32_t *pixel_data = (uint32_t *)(bitmap->data + bitmap->stride * y); uint32_t *pixel_data = (uint32_t *)(bitmap->data + bitmap->stride * y);
for (int i = 0; i < bitmap->stride; i++) { for (int i = 0; i < bitmap->width; i++) {
uint32_t p = 0; uint32_t p = 0;
for (int j = 0; j < 32; j++) { for (int j = 0; j < 32; j++) {
p = (p << 1); p = (p << 1);

View File

@ -30,12 +30,12 @@
#include "py/runtime.h" #include "py/runtime.h"
enum { align_bits = 8 * sizeof(uint32_t) }; enum { ALIGN_BITS = 8 * sizeof(uint32_t) };
static int stride(uint32_t width, uint32_t bits_per_value) { static int stride(uint32_t width, uint32_t bits_per_value) {
uint32_t row_width = width * bits_per_value; uint32_t row_width = width * bits_per_value;
// align to uint32_t // align to uint32_t
return (row_width + align_bits - 1) / align_bits; return (row_width + ALIGN_BITS - 1) / ALIGN_BITS;
} }
void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t width, void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t width,
@ -66,12 +66,12 @@ void common_hal_displayio_bitmap_construct_from_buffer(displayio_bitmap_t *self,
self->x_shift = 0; // Used to divide the index by the number of pixels per word. Its used in a self->x_shift = 0; // Used to divide the index by the number of pixels per word. Its used in a
// shift which effectively divides by 2 ** x_shift. // shift which effectively divides by 2 ** x_shift.
uint32_t power_of_two = 1; uint32_t power_of_two = 1;
while (power_of_two < align_bits / bits_per_value) { while (power_of_two < ALIGN_BITS / bits_per_value) {
self->x_shift++; self->x_shift++;
power_of_two <<= 1; power_of_two <<= 1;
} }
self->x_mask = (1 << self->x_shift) - 1; // Used as a modulus on the x value self->x_mask = (1u << self->x_shift) - 1u; // Used as a modulus on the x value
self->bitmask = (1 << bits_per_value) - 1; self->bitmask = (1u << bits_per_value) - 1u;
self->dirty_area.x1 = 0; self->dirty_area.x1 = 0;
self->dirty_area.x2 = width; self->dirty_area.x2 = width;
@ -117,7 +117,7 @@ uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t
void displayio_bitmap_set_dirty_area(displayio_bitmap_t *self, const displayio_area_t *dirty_area) { void displayio_bitmap_set_dirty_area(displayio_bitmap_t *self, const displayio_area_t *dirty_area) {
if (self->read_only) { if (self->read_only) {
mp_raise_RuntimeError(translate("Read-only object")); mp_raise_RuntimeError(translate("Read-only"));
} }
displayio_area_t area = *dirty_area; displayio_area_t area = *dirty_area;

View File

@ -38,9 +38,11 @@ typedef enum {
// Allocation free version that returns the full length of the value. // Allocation free version that returns the full length of the value.
// If it fits, the return value is 0-terminated. The passed in buffer // If it fits, the return value is 0-terminated. The passed in buffer
// may be modified even if an error is returned. Allocation free. // may be modified even if an error is returned. Allocation free.
// An error that is not 'open' or 'not found' is printed on the repl.
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len); os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len);
// Returns GETENV_OK and sets value to the read value. Returns // Returns GETENV_OK and sets value to the read value. Returns
// GETENV_ERR_... if the value was not numeric. allocation-free. // GETENV_ERR_... if the value was not numeric. allocation-free.
// If any error code is returned, value is guaranteed not modified // If any error code is returned, value is guaranteed not modified
// An error that is not 'open' or 'not found' is printed on the repl.
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value); os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value);

View File

@ -28,6 +28,7 @@
// tested in the unix "coverage" build, without bringing in "our" os module // tested in the unix "coverage" build, without bringing in "our" os module
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h>
#include <string.h> #include <string.h>
#include "shared-bindings/os/__init__.h" #include "shared-bindings/os/__init__.h"
@ -36,6 +37,7 @@
#include "py/gc.h" #include "py/gc.h"
#include "py/misc.h" #include "py/misc.h"
#include "py/mpstate.h" #include "py/mpstate.h"
#include "py/mpprint.h"
#include "py/objstr.h" #include "py/objstr.h"
#include "py/parsenum.h" #include "py/parsenum.h"
#include "py/runtime.h" #include "py/runtime.h"
@ -199,6 +201,7 @@ STATIC os_getenv_err_t read_string_value(file_arg *active_file, vstr_t *buf) {
case '#': case '#':
next_line(active_file); next_line(active_file);
MP_FALLTHROUGH; MP_FALLTHROUGH;
case 0:
case '\n': case '\n':
return GETENV_OK; return GETENV_OK;
default: default:
@ -255,7 +258,6 @@ STATIC os_getenv_err_t read_bare_value(file_arg *active_file, vstr_t *buf, int f
while (true) { while (true) {
switch (character) { switch (character) {
case 0: case 0:
return GETENV_ERR_UNEXPECTED | character;
case '\n': case '\n':
return GETENV_OK; return GETENV_OK;
case '#': case '#':
@ -290,6 +292,7 @@ STATIC os_getenv_err_t os_getenv_vstr(const char *path, const char *key, vstr_t
while (!is_eof(&active_file)) { while (!is_eof(&active_file)) {
if (key_matches(&active_file, key)) { if (key_matches(&active_file, key)) {
result = read_value(&active_file, buf, quoted); result = read_value(&active_file, buf, quoted);
break;
} }
} }
close_file(&active_file); close_file(&active_file);
@ -311,7 +314,58 @@ STATIC os_getenv_err_t os_getenv_buf_terminated(const char *key, char *value, si
return result; return result;
} }
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len) { STATIC void print_dont_raise(const mp_obj_type_t *exc_type, const compressed_string_t *fmt, ...) {
va_list argptr;
va_start(argptr,fmt);
mp_vcprintf(&mp_plat_print, fmt, argptr);
mp_printf(&mp_plat_print, "\n");
va_end(argptr);
}
STATIC void handle_getenv_error(os_getenv_err_t error, void (*handle)(const mp_obj_type_t *exc_type, const compressed_string_t *fmt, ...)) {
if (error == GETENV_OK) {
return;
}
if (error & GETENV_ERR_UNEXPECTED) {
byte character = (error & 0xff);
char buf[8];
vstr_t vstr;
vstr_init_fixed_buf(&vstr, sizeof(buf), buf);
mp_print_t print = { .data = &vstr, .print_strn = (mp_print_strn_t)vstr_add_strn };
if (character) {
mp_str_print_quoted(&print, &character, 1, true);
} else {
mp_str_print_quoted(&print, (byte *)"EOF", 3, true);
}
handle(&mp_type_ValueError, translate("Invalid byte %.*s"), vstr.len, vstr.buf);
} else {
switch (error) {
case GETENV_ERR_OPEN:
handle(&mp_type_ValueError, translate("%S"), translate("File not found"));
break;
case GETENV_ERR_UNICODE:
handle(&mp_type_ValueError, translate("%S"), translate("Invalid unicode escape"));
break;
case GETENV_ERR_NOT_FOUND:
handle(&mp_type_ValueError, translate("%S"), translate("Key not found"));
break;
default:
handle(&mp_type_RuntimeError, translate("%S"), translate("Internal error"));
break;
}
}
}
STATIC void common_hal_os_getenv_showerr(const char *key, os_getenv_err_t result) {
if (result != GETENV_OK && result != GETENV_ERR_OPEN && result != GETENV_ERR_NOT_FOUND) {
mp_cprintf(&mp_plat_print, translate("An error occurred while retrieving '%s':\n"), key);
handle_getenv_error(result, print_dont_raise);
}
}
STATIC
os_getenv_err_t common_hal_os_getenv_str_inner(const char *key, char *value, size_t value_len) {
bool quoted; bool quoted;
os_getenv_err_t result = os_getenv_buf_terminated(key, value, value_len, &quoted); os_getenv_err_t result = os_getenv_buf_terminated(key, value, value_len, &quoted);
if (result == GETENV_OK && !quoted) { if (result == GETENV_OK && !quoted) {
@ -320,33 +374,10 @@ os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t va
return result; return result;
} }
STATIC void throw_getenv_error(os_getenv_err_t error) { os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len) {
if (error == GETENV_OK) { os_getenv_err_t result = common_hal_os_getenv_str_inner(key, value, value_len);
return; common_hal_os_getenv_showerr(key, result);
} return result;
if (error & GETENV_ERR_UNEXPECTED) {
byte character = (error & 0xff);
mp_print_t print;
vstr_t vstr;
vstr_init_print(&vstr, 8 + 4 + 1, &print);
if (character) {
mp_str_print_quoted(&print, &character, 1, true);
} else {
mp_str_print_quoted(&print, (byte *)"EOF", 3, true);
}
mp_raise_ValueError_varg(translate("Invalid byte %.*s"),
vstr.len, vstr.buf);
}
switch (error) {
case GETENV_ERR_OPEN:
mp_raise_ValueError(translate("File not found"));
case GETENV_ERR_UNICODE:
mp_raise_ValueError(translate("Invalid unicode escape"));
case GETENV_ERR_NOT_FOUND:
mp_raise_ValueError(translate("Key not found"));
default:
mp_raise_RuntimeError(translate("Internal error"));
}
} }
mp_obj_t common_hal_os_getenv_path(const char *path, const char *key, mp_obj_t default_) { mp_obj_t common_hal_os_getenv_path(const char *path, const char *key, mp_obj_t default_) {
@ -358,7 +389,7 @@ mp_obj_t common_hal_os_getenv_path(const char *path, const char *key, mp_obj_t d
if (result == GETENV_ERR_NOT_FOUND || result == GETENV_ERR_OPEN) { if (result == GETENV_ERR_NOT_FOUND || result == GETENV_ERR_OPEN) {
return default_; return default_;
} }
throw_getenv_error(result); handle_getenv_error(result, mp_raise_msg_varg);
if (quoted) { if (quoted) {
return mp_obj_new_str_from_vstr(&mp_type_str, &buf); return mp_obj_new_str_from_vstr(&mp_type_str, &buf);
@ -371,7 +402,7 @@ mp_obj_t common_hal_os_getenv(const char *key, mp_obj_t default_) {
return common_hal_os_getenv_path(GETENV_PATH, key, default_); return common_hal_os_getenv_path(GETENV_PATH, key, default_);
} }
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value) { STATIC os_getenv_err_t common_hal_os_getenv_int_inner(const char *key, mp_int_t *value) {
char buf[16]; char buf[16];
bool quoted; bool quoted;
os_getenv_err_t result = os_getenv_buf_terminated(key, buf, sizeof(buf), &quoted); os_getenv_err_t result = os_getenv_buf_terminated(key, buf, sizeof(buf), &quoted);
@ -383,9 +414,18 @@ os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value) {
} }
char *end; char *end;
long num = strtol(buf, &end, 0); long num = strtol(buf, &end, 0);
while (unichar_isspace(*end)) {
end++;
}
if (end == buf || *end) { // If the whole buffer was not consumed it's an error if (end == buf || *end) { // If the whole buffer was not consumed it's an error
return GETENV_ERR_UNEXPECTED | *end; return GETENV_ERR_UNEXPECTED | *end;
} }
*value = (mp_int_t)num; *value = (mp_int_t)num;
return GETENV_OK; return GETENV_OK;
} }
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value) {
os_getenv_err_t result = common_hal_os_getenv_int_inner(key, value);
common_hal_os_getenv_showerr(key, result);
return result;
}

View File

@ -58,6 +58,9 @@ static supervisor_allocation *supervisor_cache = NULL;
// Wait until both the write enable and write in progress bits have cleared. // Wait until both the write enable and write in progress bits have cleared.
static bool wait_for_flash_ready(void) { static bool wait_for_flash_ready(void) {
if (flash_device == NULL) {
return false;
}
bool ok = true; bool ok = true;
// Both the write enable and write in progress bits should be low. // Both the write enable and write in progress bits should be low.
if (flash_device->no_ready_bit) { if (flash_device->no_ready_bit) {
@ -192,6 +195,9 @@ static bool copy_block(uint32_t src_address, uint32_t dest_address) {
return true; return true;
} }
#define READ_JEDEC_ID_RETRY_COUNT (100)
// If this fails, flash_device will remain NULL.
void supervisor_flash_init(void) { void supervisor_flash_init(void) {
if (flash_device != NULL) { if (flash_device != NULL) {
return; return;
@ -220,7 +226,11 @@ void supervisor_flash_init(void) {
#else #else
// The response will be 0xff if the flash needs more time to start up. // The response will be 0xff if the flash needs more time to start up.
uint8_t jedec_id_response[3] = {0xff, 0xff, 0xff}; uint8_t jedec_id_response[3] = {0xff, 0xff, 0xff};
while (jedec_id_response[0] == 0xff) { // Response can also be 0x00 if reading before ready. When compiled with `-O2`, typically
// takes three tries to read on Grand Central M4.
size_t count = READ_JEDEC_ID_RETRY_COUNT;
while ((count-- > 0) && (jedec_id_response[0] == 0xff || jedec_id_response[2] == 0x00)) {
spi_flash_read_command(CMD_READ_JEDEC_ID, jedec_id_response, 3); spi_flash_read_command(CMD_READ_JEDEC_ID, jedec_id_response, 3);
} }
for (uint8_t i = 0; i < EXTERNAL_FLASH_DEVICE_COUNT; i++) { for (uint8_t i = 0; i < EXTERNAL_FLASH_DEVICE_COUNT; i++) {
@ -234,6 +244,7 @@ void supervisor_flash_init(void) {
} }
#endif #endif
if (flash_device == NULL) { if (flash_device == NULL) {
// Flash did not respond. Give up.
return; return;
} }
@ -293,6 +304,9 @@ uint32_t supervisor_flash_get_block_size(void) {
// The total number of available blocks. // The total number of available blocks.
uint32_t supervisor_flash_get_block_count(void) { uint32_t supervisor_flash_get_block_count(void) {
if (flash_device == NULL) {
return 0;
}
// We subtract one erase sector size because we may use it as a staging area // We subtract one erase sector size because we may use it as a staging area
// for writes. // for writes.
return (flash_device->total_size - SPI_FLASH_ERASE_SIZE) / FILESYSTEM_BLOCK_SIZE; return (flash_device->total_size - SPI_FLASH_ERASE_SIZE) / FILESYSTEM_BLOCK_SIZE;

View File

@ -35,15 +35,15 @@ bdev = RAMBlockDevice(64)
uos.VfsFat.mkfs(bdev) uos.VfsFat.mkfs(bdev)
uos.mount(uos.VfsFat(bdev), "/") uos.mount(uos.VfsFat(bdev), "/")
content_good = """ content_good = b"""
# comment # comment
key0 = "hello world" key0 = "hello world"
key1 = 7 key1 = 7
key2= "\n" key2= "\\n"
key3 ="\u00c1x" key3 ="\\u00c1x"
key4 = "\U000000c1x" key4 = "\\U000000c1x"
key5 = "\f\"\\" key5 = "\\f\\"\\\\"
key6 = "\t\r\b" key6 = "\\t\\r\\b"
key7 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" key7 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
key8 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" key8 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
key9 = "hello comment" # comment key9 = "hello comment" # comment
@ -54,15 +54,15 @@ subvalue = "hi"
""" """
content_bad = [ content_bad = [
'key = "\n', b'key = "\n',
'key = """\n', b'key = """\n',
"key =\n", b"key =\n",
'key="', b'key="',
] ]
def run_test(key, content): def run_test(key, content):
with open("/settings.toml", "w") as f: with open("/settings.toml", "wb") as f:
f.write(content) f.write(content)
try: try:
@ -75,5 +75,15 @@ def run_test(key, content):
for i in range(13): for i in range(13):
run_test(f"key{i}", content_good) run_test(f"key{i}", content_good)
content_good = content_good.replace(b"\n", b"\r\n")
for i in range(13):
run_test(f"key{i}", content_good)
run_test(f"K", b"K = 7\r\n")
print(uos.getenv_int("K"))
# Test value without trailing newline
run_test(f"noeol", b"noeol=3")
for content in content_bad: for content in content_bad:
run_test("key", content) run_test("key", content)

View File

@ -1,9 +1,9 @@
key0 'hello world' key0 'hello world'
key1 7 key1 7
key2 Invalid byte '\n' key2 '\n'
key3 'Áx' key3 'Áx'
key4 'Áx' key4 'Áx'
key5 Invalid byte '\\' key5 '\x0c"\\'
key6 '\t\r\x08' key6 '\t\r\x08'
key7 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' key7 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
key8 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' key8 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@ -11,6 +11,22 @@ key9 'hello comment'
key10 127 key10 127
key11 0 key11 0
key12 None key12 None
key0 'hello world'
key1 7
key2 '\n'
key3 'Áx'
key4 'Áx'
key5 '\x0c"\\'
key6 '\t\r\x08'
key7 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
key8 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
key9 'hello comment'
key10 127
key11 0
key12 None
K 7
7
noeol 3
key Invalid byte '\n' key Invalid byte '\n'
key Invalid byte '"' key Invalid byte '"'
key invalid syntax for integer with base 10: '' key invalid syntax for integer with base 10: ''