Merge branch 'master' into new-pixelbuf-api
This commit is contained in:
commit
a4bbf35092
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@ -140,6 +140,7 @@ jobs:
|
|||||||
- "robohatmm1_m4"
|
- "robohatmm1_m4"
|
||||||
- "sam32"
|
- "sam32"
|
||||||
- "serpente"
|
- "serpente"
|
||||||
|
- "shirtty"
|
||||||
- "snekboard"
|
- "snekboard"
|
||||||
- "sparkfun_lumidrive"
|
- "sparkfun_lumidrive"
|
||||||
- "sparkfun_nrf52840_mini"
|
- "sparkfun_nrf52840_mini"
|
||||||
|
20
locale/ID.po
20
locale/ID.po
@ -8,7 +8,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"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -2448,12 +2448,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2724,7 +2720,7 @@ msgstr ""
|
|||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Gagal untuk melaporkan nilai atribut, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melaporkan nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2732,11 +2728,11 @@ msgstr ""
|
|||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk menambahkan Vendor Spesific UUID, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menambahkan Vendor Spesific UUID, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2756,7 +2752,7 @@ msgstr ""
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2768,11 +2764,11 @@ msgstr ""
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk menulis nilai atribut, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menulis nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
||||||
|
|
||||||
|
@ -8,7 +8,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"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -2417,12 +2417,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: Pascal Deneaux\n"
|
"Last-Translator: Pascal Deneaux\n"
|
||||||
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
||||||
@ -2478,12 +2478,8 @@ msgstr "threshold muss im Intervall 0-65536 liegen"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2714,7 +2710,6 @@ msgstr ""
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Characteristic wird bereits von einem anderen Dienst verwendet."
|
#~ msgstr "Characteristic wird bereits von einem anderen Dienst verwendet."
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
#~ msgstr "Konnte ble_uuid nicht decodieren. Status: 0x%04x"
|
#~ msgstr "Konnte ble_uuid nicht decodieren. Status: 0x%04x"
|
||||||
|
|
||||||
@ -2743,7 +2738,6 @@ msgstr ""
|
|||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Hinzufügen des Characteristic ist gescheitert. Status: 0x%04x"
|
#~ msgstr "Hinzufügen des Characteristic ist gescheitert. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add descriptor, err 0x%04x"
|
#~ msgid "Failed to add descriptor, err 0x%04x"
|
||||||
#~ msgstr "Deskriptor konnte nicht hinzugefügt werden. Status: 0x%04x"
|
#~ msgstr "Deskriptor konnte nicht hinzugefügt werden. Status: 0x%04x"
|
||||||
|
|
||||||
@ -2783,22 +2777,18 @@ msgstr ""
|
|||||||
#~ msgid "Failed to pair"
|
#~ msgid "Failed to pair"
|
||||||
#~ msgstr "Koppeln fehlgeschlagen"
|
#~ msgstr "Koppeln fehlgeschlagen"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Kann CCCD value nicht lesen. Status: 0x%04x"
|
#~ msgstr "Kann CCCD value nicht lesen. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Kann den Attributwert nicht lesen. Status: 0x%04x"
|
#~ msgstr "Kann den Attributwert nicht lesen. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read attribute value, err 0x%04x"
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
#~ msgstr "Kann Attributwert nicht lesen, Status: 0x%04x"
|
#~ msgstr "Kann Attributwert nicht lesen, Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "gatts value konnte nicht gelesen werden. Status: 0x%04x"
|
#~ msgstr "gatts value konnte nicht gelesen werden. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Kann keine herstellerspezifische UUID hinzufügen. Status: 0x%04x"
|
#~ msgstr "Kann keine herstellerspezifische UUID hinzufügen. Status: 0x%04x"
|
||||||
|
|
||||||
@ -2814,7 +2804,6 @@ msgstr ""
|
|||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Kann advertisement nicht starten. Status: 0x%04x"
|
#~ msgstr "Kann advertisement nicht starten. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start connecting, error 0x%04x"
|
#~ msgid "Failed to start connecting, error 0x%04x"
|
||||||
#~ msgstr "Verbindung konnte nicht hergestellt werden. Status: 0x%04x"
|
#~ msgstr "Verbindung konnte nicht hergestellt werden. Status: 0x%04x"
|
||||||
|
|
||||||
@ -2824,7 +2813,6 @@ msgstr ""
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Der Scanvorgang kann nicht gestartet werden"
|
#~ msgstr "Der Scanvorgang kann nicht gestartet werden"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Der Scanvorgang kann nicht gestartet werden. Status: 0x%04x"
|
#~ msgstr "Der Scanvorgang kann nicht gestartet werden. Status: 0x%04x"
|
||||||
|
|
||||||
@ -2834,15 +2822,12 @@ msgstr ""
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Kann advertisement nicht stoppen. Status: 0x%04x"
|
#~ msgstr "Kann advertisement nicht stoppen. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write CCCD, err 0x%04x"
|
#~ msgid "Failed to write CCCD, err 0x%04x"
|
||||||
#~ msgstr "Konnte CCCD nicht schreiben, Status: 0x%04x"
|
#~ msgstr "Konnte CCCD nicht schreiben, Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Kann den Attributwert nicht schreiben. Status: 0x%04x"
|
#~ msgstr "Kann den Attributwert nicht schreiben. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "gatts value konnte nicht geschrieben werden. Status: 0x%04x"
|
#~ msgstr "gatts value konnte nicht geschrieben werden. Status: 0x%04x"
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -2417,12 +2417,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: @sommersoft, @MrCertainly\n"
|
"Language-Team: @sommersoft, @MrCertainly\n"
|
||||||
@ -2421,12 +2421,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
26
locale/es.po
26
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
|
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -2479,13 +2479,9 @@ msgstr "limite debe ser en el rango 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() toma un sequencio 9"
|
msgstr "time.struct_time() toma un sequencio 9"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() acepta exactamente 1 argumento"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timepo muerto >100 (unidades en segundos)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
msgid "timeout must be >= 0.0"
|
msgid "timeout must be >= 0.0"
|
||||||
@ -2710,7 +2706,6 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Características ya esta en uso por otro Serivice"
|
#~ msgstr "Características ya esta en uso por otro Serivice"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
#~ msgstr "No se puede descodificar ble_uuid, err 0x%04x"
|
#~ msgstr "No se puede descodificar ble_uuid, err 0x%04x"
|
||||||
|
|
||||||
@ -2777,11 +2772,9 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "No se puede notificar el valor del anuncio. status: 0x%02x"
|
#~ msgstr "No se puede notificar el valor del anuncio. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
#~ msgstr "Error al notificar o indicar el valor del atributo, err 0x%04x"
|
#~ msgstr "Error al notificar o indicar el valor del atributo, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "No se puede leer el valor del atributo. err 0x%02x"
|
#~ msgstr "No se puede leer el valor del atributo. err 0x%02x"
|
||||||
|
|
||||||
@ -2789,15 +2782,13 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
#~ msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err 0x%04x"
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
#~ msgstr "Error al leer valor del atributo, err 0x%04"
|
#~ msgstr "Error al leer valor del atributo, err 0x%04"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
#~ msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Fallo al registrar el Vendor-Specific UUID, err 0x%04x"
|
#~ msgstr "Fallo al registrar el Vendor-Specific UUID, err 0x%04x"
|
||||||
|
|
||||||
@ -2816,7 +2807,6 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "No se puede iniciar el escaneo. err 0x%04x"
|
#~ msgstr "No se puede iniciar el escaneo. err 0x%04x"
|
||||||
|
|
||||||
@ -2827,11 +2817,9 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "No se puede detener el anuncio. err: 0x%04x"
|
#~ msgstr "No se puede detener el anuncio. err: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
#~ msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
#~ msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
||||||
|
|
||||||
@ -3043,6 +3031,12 @@ msgstr "paso cero"
|
|||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "el indice del tile fuera de limite"
|
#~ msgstr "el indice del tile fuera de limite"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() acepta exactamente 1 argumento"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timepo muerto >100 (unidades en segundos)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "muchos argumentos"
|
#~ msgstr "muchos argumentos"
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||||
"Language-Team: fil\n"
|
"Language-Team: fil\n"
|
||||||
@ -2487,13 +2487,9 @@ msgstr "ang threshold ay dapat sa range 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() kumukuha ng 9-sequence"
|
msgstr "time.struct_time() kumukuha ng 9-sequence"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() kumukuha ng 1 argument"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timeout >100 (units ay seconds, hindi na msecs)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -2777,7 +2773,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX"
|
#~ msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2785,11 +2781,11 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
#~ msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Hindi matagumpay ang paglagay ng Vender Specific UUID, status: 0x%08lX"
|
#~ "Hindi matagumpay ang paglagay ng Vender Specific UUID, status: 0x%08lX"
|
||||||
@ -2810,7 +2806,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
||||||
|
|
||||||
@ -2822,11 +2818,11 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Hindi maisulat ang attribute value, status: 0x%08lX"
|
#~ msgstr "Hindi maisulat ang attribute value, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
#~ msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
||||||
|
|
||||||
@ -3003,6 +2999,12 @@ msgstr "zero step"
|
|||||||
#~ msgid "scan failed"
|
#~ msgid "scan failed"
|
||||||
#~ msgstr "nabigo ang pag-scan"
|
#~ msgstr "nabigo ang pag-scan"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() kumukuha ng 1 argument"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timeout >100 (units ay seconds, hindi na msecs)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "masyadong maraming argumento"
|
#~ msgstr "masyadong maraming argumento"
|
||||||
|
|
||||||
|
31
locale/fr.po
31
locale/fr.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
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: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
|
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
|
||||||
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
|
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
|
||||||
"Language-Team: fr\n"
|
"Language-Team: fr\n"
|
||||||
@ -2527,13 +2527,9 @@ msgstr "le seuil doit être dans la gamme 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() prend une séquence de longueur 9"
|
msgstr "time.struct_time() prend une séquence de longueur 9"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() prend exactement 1 argument"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timeout >100 (exprimé en secondes, pas en ms)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -2761,7 +2757,6 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "'Characteristic' déjà en utilisation par un autre service"
|
#~ msgstr "'Characteristic' déjà en utilisation par un autre service"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
#~ msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x"
|
#~ msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x"
|
||||||
|
|
||||||
@ -2832,12 +2827,11 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX"
|
#~ msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Impossible de notifier ou d'indiquer la valeur de l'attribut, err 0x%04x"
|
#~ "Impossible de notifier ou d'indiquer la valeur de l'attribut, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Impossible de lire la valeur 'CCCD', err 0x%04x"
|
#~ msgstr "Impossible de lire la valeur 'CCCD', err 0x%04x"
|
||||||
|
|
||||||
@ -2845,15 +2839,14 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX"
|
#~ msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read attribute value, err 0x%04x"
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
#~ msgstr "Impossible de lire la valeur de l'attribut, err 0x%04x"
|
#~ msgstr "Impossible de lire la valeur de l'attribut, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Impossible de lire la valeur de 'gatts', err 0x%04x"
|
#~ msgstr "Impossible de lire la valeur de 'gatts', err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Echec de l'ajout de l'UUID du fournisseur, err 0x%04x"
|
#~ msgstr "Echec de l'ajout de l'UUID du fournisseur, err 0x%04x"
|
||||||
|
|
||||||
@ -2873,7 +2866,7 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Impossible de commencer à scanner"
|
#~ msgstr "Impossible de commencer à scanner"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Impossible de commencer à scanner, err 0x%04x"
|
#~ msgstr "Impossible de commencer à scanner, err 0x%04x"
|
||||||
|
|
||||||
@ -2885,11 +2878,11 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Echec de l'arrêt de diffusion, err 0x%04x"
|
#~ msgstr "Echec de l'arrêt de diffusion, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Impossible d'écrire la valeur de l'attribut, err 0x%04x"
|
#~ msgstr "Impossible d'écrire la valeur de l'attribut, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Impossible d'écrire la valeur de 'gatts', err 0x%04x"
|
#~ msgstr "Impossible d'écrire la valeur de 'gatts', err 0x%04x"
|
||||||
|
|
||||||
@ -3095,6 +3088,12 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "indice de tuile hors limites"
|
#~ msgstr "indice de tuile hors limites"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() prend exactement 1 argument"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timeout >100 (exprimé en secondes, pas en ms)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "trop d'arguments"
|
#~ msgstr "trop d'arguments"
|
||||||
|
|
||||||
|
@ -8,7 +8,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"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -2486,12 +2486,8 @@ msgstr "la soglia deve essere nell'intervallo 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() prende esattamente un argomento"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2782,11 +2778,10 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossibile notificare valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile notificare valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
#~ msgstr "Notificamento o indicazione di attribute value fallito, err 0x%04x"
|
#~ msgstr "Notificamento o indicazione di attribute value fallito, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
@ -2794,15 +2789,14 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read attribute value, err 0x%04x"
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
#~ msgstr "Tentative leggere attribute value fallito, err 0x%04x"
|
#~ msgstr "Tentative leggere attribute value fallito, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Non è possibile aggiungere l'UUID del vendor specifico da 128-bit"
|
#~ msgstr "Non è possibile aggiungere l'UUID del vendor specifico da 128-bit"
|
||||||
|
|
||||||
@ -2822,7 +2816,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||||
|
|
||||||
@ -2834,11 +2828,11 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
@ -3008,6 +3002,9 @@ msgstr "zero step"
|
|||||||
#~ msgid "scan failed"
|
#~ msgid "scan failed"
|
||||||
#~ msgstr "scansione fallita"
|
#~ msgstr "scansione fallita"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() prende esattamente un argomento"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "troppi argomenti"
|
#~ msgstr "troppi argomenti"
|
||||||
|
|
||||||
|
@ -8,7 +8,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"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
|
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -2422,12 +2422,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
25
locale/pl.po
25
locale/pl.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
||||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||||
"Language-Team: pl\n"
|
"Language-Team: pl\n"
|
||||||
@ -2444,13 +2444,9 @@ msgstr "threshold musi być w zakresie 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
|
msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() wymaga jednego argumentu"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timeout > 100 (jednostkami są sekundy)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
msgid "timeout must be >= 0.0"
|
msgid "timeout must be >= 0.0"
|
||||||
@ -2658,7 +2654,6 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Charakterystyka w użyciu w innym serwisie"
|
#~ msgstr "Charakterystyka w użyciu w innym serwisie"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
#~ msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x"
|
#~ msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x"
|
||||||
|
|
||||||
@ -2702,23 +2697,18 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Failed to get softdevice state"
|
#~ msgid "Failed to get softdevice state"
|
||||||
#~ msgstr "Nie udało się odczytać stanu softdevice"
|
#~ msgstr "Nie udało się odczytać stanu softdevice"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się powiadomić o wartości atrybutu, błąd 0x%04x"
|
#~ msgstr "Nie udało się powiadomić o wartości atrybutu, błąd 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się odczytać CCCD, błąd 0x%04x"
|
#~ msgstr "Nie udało się odczytać CCCD, błąd 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read attribute value, err 0x%04x"
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się odczytać wartości atrybutu, błąd 0x%04x"
|
#~ msgstr "Nie udało się odczytać wartości atrybutu, błąd 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się odczytać gatts, błąd 0x%04x"
|
#~ msgstr "Nie udało się odczytać gatts, błąd 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się zarejestrować UUID dostawcy, błąd 0x%04x"
|
#~ msgstr "Nie udało się zarejestrować UUID dostawcy, błąd 0x%04x"
|
||||||
|
|
||||||
@ -2734,7 +2724,6 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Nie udało się rozpocząć skanowania"
|
#~ msgstr "Nie udało się rozpocząć skanowania"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się rozpocząć skanowania, błąd 0x%04x"
|
#~ msgstr "Nie udało się rozpocząć skanowania, błąd 0x%04x"
|
||||||
|
|
||||||
@ -2744,11 +2733,9 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się zatrzymać rozgłaszania, błąd 0x%04x"
|
#~ msgstr "Nie udało się zatrzymać rozgłaszania, błąd 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się zapisać atrybutu, błąd 0x%04x"
|
#~ msgstr "Nie udało się zapisać atrybutu, błąd 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się zapisać gatts, błąd 0x%04x"
|
#~ msgstr "Nie udało się zapisać gatts, błąd 0x%04x"
|
||||||
|
|
||||||
@ -2809,3 +2796,9 @@ msgstr "zerowy krok"
|
|||||||
|
|
||||||
#~ msgid "write_args must be a list, tuple, or None"
|
#~ msgid "write_args must be a list, tuple, or None"
|
||||||
#~ msgstr "write_args musi być listą, krotką lub None"
|
#~ msgstr "write_args musi być listą, krotką lub None"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() wymaga jednego argumentu"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timeout > 100 (jednostkami są sekundy)"
|
||||||
|
@ -8,7 +8,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"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -2440,12 +2440,8 @@ msgstr "Limite deve estar no alcance de 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2701,7 +2697,7 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
@ -2709,11 +2705,11 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Não é possível adicionar o UUID de 128 bits específico do fornecedor."
|
#~ "Não é possível adicionar o UUID de 128 bits específico do fornecedor."
|
||||||
@ -2734,7 +2730,7 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
@ -2746,11 +2742,11 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: circuitpython-cn\n"
|
"Project-Id-Version: circuitpython-cn\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-11-23 13:58-0500\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
||||||
"Last-Translator: hexthat\n"
|
"Last-Translator: hexthat\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
@ -2457,13 +2457,9 @@ msgstr "yùzhí bìxū zài fànwéi 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() xūyào 9 xùliè"
|
msgstr "time.struct_time() xūyào 9 xùliè"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() xūyào wánquán 1 cānshù"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "chāoshí >100 (dānwèi shì miǎo, ér bùshì háomiǎo)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
msgid "timeout must be >= 0.0"
|
msgid "timeout must be >= 0.0"
|
||||||
@ -2674,7 +2670,6 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Qítā fúwù bùmén yǐ shǐyòng de gōngnéng."
|
#~ msgstr "Qítā fúwù bùmén yǐ shǐyòng de gōngnéng."
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x"
|
#~ msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x"
|
||||||
|
|
||||||
@ -2690,7 +2685,6 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Tiānjiā tèxìng shībài, err 0x%04x"
|
#~ msgstr "Tiānjiā tèxìng shībài, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add descriptor, err 0x%04x"
|
#~ msgid "Failed to add descriptor, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ tiānjiā miáoshù fú, err 0x%04x"
|
#~ msgstr "Wúfǎ tiānjiā miáoshù fú, err 0x%04x"
|
||||||
|
|
||||||
@ -2727,26 +2721,21 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to get softdevice state"
|
#~ msgid "Failed to get softdevice state"
|
||||||
#~ msgstr "Wúfǎ huòdé ruǎnjiàn shèbèi zhuàngtài"
|
#~ msgstr "Wúfǎ huòdé ruǎnjiàn shèbèi zhuàngtài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ tōngzhī huò xiǎnshì shǔxìng zhí, err 0x%04x"
|
#~ msgstr "Wúfǎ tōngzhī huò xiǎnshì shǔxìng zhí, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to pair"
|
#~ msgid "Failed to pair"
|
||||||
#~ msgstr "Pèiduì shībài"
|
#~ msgstr "Pèiduì shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
#~ msgstr "Dòu qǔ CCCD zhí, err 0x%04x shībài"
|
#~ msgstr "Dòu qǔ CCCD zhí, err 0x%04x shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read attribute value, err 0x%04x"
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
#~ msgstr "Dòu qǔ shǔxìng zhí shībài, err 0x%04x"
|
#~ msgstr "Dòu qǔ shǔxìng zhí shībài, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to read gatts value, err 0x%04x"
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ dòu qǔ gatts zhí, err 0x%04x"
|
#~ msgstr "Wúfǎ dòu qǔ gatts zhí, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ zhùcè màizhǔ tèdìng de UUID, err 0x%04x"
|
#~ msgstr "Wúfǎ zhùcè màizhǔ tèdìng de UUID, err 0x%04x"
|
||||||
|
|
||||||
@ -2762,7 +2751,6 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Qǐdòng guǎnggào shībài, err 0x%04x"
|
#~ msgstr "Qǐdòng guǎnggào shībài, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start connecting, error 0x%04x"
|
#~ msgid "Failed to start connecting, error 0x%04x"
|
||||||
#~ msgstr "Wúfǎ kāishǐ liánjiē, cuòwù 0x%04x"
|
#~ msgstr "Wúfǎ kāishǐ liánjiē, cuòwù 0x%04x"
|
||||||
|
|
||||||
@ -2772,7 +2760,6 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Qǐdòng sǎomiáo shībài"
|
#~ msgstr "Qǐdòng sǎomiáo shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
#~ msgstr "Qǐdòng sǎomiáo shībài, err 0x%04x"
|
#~ msgstr "Qǐdòng sǎomiáo shībài, err 0x%04x"
|
||||||
|
|
||||||
@ -2782,15 +2769,12 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào, err 0x%04x"
|
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write CCCD, err 0x%04x"
|
#~ msgid "Failed to write CCCD, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ xiě rù CCCD, cuòwù 0x%04x"
|
#~ msgstr "Wúfǎ xiě rù CCCD, cuòwù 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write attribute value, err 0x%04x"
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
#~ msgstr "Xiě rù shǔxìng zhí shībài, err 0x%04x"
|
#~ msgstr "Xiě rù shǔxìng zhí shībài, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to write gatts value, err 0x%04x"
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
#~ msgstr "Xiě rù gatts zhí,err 0x%04x shībài"
|
#~ msgstr "Xiě rù gatts zhí,err 0x%04x shībài"
|
||||||
|
|
||||||
@ -2867,6 +2851,12 @@ msgstr "líng bù"
|
|||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "kuài suǒyǐn chāochū fànwéi"
|
#~ msgstr "kuài suǒyǐn chāochū fànwéi"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() xūyào wánquán 1 cānshù"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "chāoshí >100 (dānwèi shì miǎo, ér bùshì háomiǎo)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "tài duō cānshù"
|
#~ msgstr "tài duō cānshù"
|
||||||
|
|
||||||
|
@ -11,6 +11,5 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
|
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G.
|
# No I2S on SAMD51G.
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||||
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
|
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,5 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 2
|
EXTERNAL_FLASH_DEVICE_COUNT = 2
|
||||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
|
||||||
|
@ -14,3 +14,5 @@ LONGINT_IMPL = MPZ
|
|||||||
# Not needed.
|
# Not needed.
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
|
CIRCUITPY_NETWORK = 0
|
||||||
|
CIRCUITPY_PS2IO = 0
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||||
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||||
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = "W25Q16JV_IM"
|
EXTERNAL_FLASH_DEVICES = "W25Q16JV_IM"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
|
||||||
|
@ -11,6 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
|
@ -17,7 +17,9 @@ CIRCUITPY_BITBANGIO = 0
|
|||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CSLAVE = 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||||
|
CIRCUITPY_NETWORK = 0
|
||||||
CIRCUITPY_PIXELBUF = 0
|
CIRCUITPY_PIXELBUF = 0
|
||||||
|
CIRCUITPY_PS2IO = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CIRCUITPY_USB_HID = 0
|
CIRCUITPY_USB_HID = 0
|
||||||
|
@ -26,6 +26,6 @@ CIRCUITPY_SMALL_BUILD = 1
|
|||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
# Include these Python libraries in firmware.
|
# Include these Python libraries in firmware.
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar
|
# FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_IRRemote
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_IRRemote
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,3 +12,7 @@ LONGINT_IMPL = NONE
|
|||||||
CIRCUITPY_SMALL_BUILD = 1
|
CIRCUITPY_SMALL_BUILD = 1
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
|
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||||
|
CFLAGS_INLINE_LIMIT = 35
|
||||||
|
endif
|
||||||
|
@ -14,7 +14,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
# Make room for more stuff
|
# Make room for more stuff
|
||||||
|
37
ports/atmel-samd/boards/shirtty/board.c
Normal file
37
ports/atmel-samd/boards/shirtty/board.c
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
void board_init(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool board_requests_safe_mode(void) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset_board(void) {
|
||||||
|
}
|
67
ports/atmel-samd/boards/shirtty/mpconfigboard.h
Normal file
67
ports/atmel-samd/boards/shirtty/mpconfigboard.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#define MICROPY_HW_BOARD_NAME "@sarfata shIRtty"
|
||||||
|
#define MICROPY_HW_MCU_NAME "samd21e18"
|
||||||
|
|
||||||
|
#define MICROPY_HW_LED_STATUS (&pin_PA16)
|
||||||
|
|
||||||
|
#define MICROPY_PORT_A (PORT_PA00 | PORT_PA01)
|
||||||
|
#define MICROPY_PORT_B (0)
|
||||||
|
#define MICROPY_PORT_C (0)
|
||||||
|
|
||||||
|
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
|
||||||
|
|
||||||
|
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
|
||||||
|
|
||||||
|
// #define IGNORE_PIN_PA00 1
|
||||||
|
// #define IGNORE_PIN_PA01 1
|
||||||
|
// #define IGNORE_PIN_PA02 1
|
||||||
|
#define IGNORE_PIN_PA03 1
|
||||||
|
#define IGNORE_PIN_PA04 1
|
||||||
|
#define IGNORE_PIN_PA05 1
|
||||||
|
#define IGNORE_PIN_PA11 1
|
||||||
|
#define IGNORE_PIN_PA12 1
|
||||||
|
#define IGNORE_PIN_PA13 1
|
||||||
|
#define IGNORE_PIN_PA17 1
|
||||||
|
#define IGNORE_PIN_PA18 1
|
||||||
|
#define IGNORE_PIN_PA19 1
|
||||||
|
#define IGNORE_PIN_PA20 1
|
||||||
|
#define IGNORE_PIN_PA21 1
|
||||||
|
#define IGNORE_PIN_PA22 1
|
||||||
|
// USB is always used internally so skip the pin objects for it.
|
||||||
|
#define IGNORE_PIN_PA24 1
|
||||||
|
#define IGNORE_PIN_PA25 1
|
||||||
|
#define IGNORE_PIN_PA27 1
|
||||||
|
#define IGNORE_PIN_PA28 1
|
||||||
|
#define IGNORE_PIN_PA30 1
|
||||||
|
#define IGNORE_PIN_PA31 1
|
||||||
|
#define IGNORE_PIN_PB01 1
|
||||||
|
#define IGNORE_PIN_PB02 1
|
||||||
|
#define IGNORE_PIN_PB03 1
|
||||||
|
#define IGNORE_PIN_PB04 1
|
||||||
|
#define IGNORE_PIN_PB05 1
|
||||||
|
#define IGNORE_PIN_PB06 1
|
||||||
|
#define IGNORE_PIN_PB07 1
|
||||||
|
#define IGNORE_PIN_PB08 1
|
||||||
|
#define IGNORE_PIN_PB09 1
|
||||||
|
#define IGNORE_PIN_PB10 1
|
||||||
|
#define IGNORE_PIN_PB11 1
|
||||||
|
#define IGNORE_PIN_PB12 1
|
||||||
|
#define IGNORE_PIN_PB13 1
|
||||||
|
#define IGNORE_PIN_PB14 1
|
||||||
|
#define IGNORE_PIN_PB15 1
|
||||||
|
#define IGNORE_PIN_PB16 1
|
||||||
|
#define IGNORE_PIN_PB17 1
|
||||||
|
#define IGNORE_PIN_PB22 1
|
||||||
|
#define IGNORE_PIN_PB23 1
|
||||||
|
#define IGNORE_PIN_PB30 1
|
||||||
|
#define IGNORE_PIN_PB31 1
|
||||||
|
#define IGNORE_PIN_PB00 1
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_PA09)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_PA08)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_PA07)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_PA06)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_PA09)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_PA07)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_PA06)
|
16
ports/atmel-samd/boards/shirtty/mpconfigboard.mk
Normal file
16
ports/atmel-samd/boards/shirtty/mpconfigboard.mk
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
LD_FILE = boards/samd21x18-bootloader.ld
|
||||||
|
USB_VID = 0x239A
|
||||||
|
USB_PID = 0x806C
|
||||||
|
USB_PRODUCT = "shIRtty"
|
||||||
|
USB_MANUFACTURER = "@sarfata"
|
||||||
|
|
||||||
|
CHIP_VARIANT = SAMD21E18A
|
||||||
|
CHIP_FAMILY = samd21
|
||||||
|
|
||||||
|
INTERNAL_FLASH_FILESYSTEM = 1
|
||||||
|
LONGINT_IMPL = NONE
|
||||||
|
CIRCUITPY_SMALL_BUILD = 1
|
||||||
|
CIRCUITPY_I2CSLAVE = 1
|
||||||
|
CIRCUITPY_TOUCHIO = 0
|
||||||
|
|
||||||
|
SUPEROPT_GC = 0
|
36
ports/atmel-samd/boards/shirtty/pins.c
Normal file
36
ports/atmel-samd/boards/shirtty/pins.c
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IR_RX), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA16) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IR_TX), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 2
|
|||||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ USB_VID = 0x239A
|
|||||||
USB_PID = 0x8062
|
USB_PID = 0x8062
|
||||||
USB_PRODUCT = "Sol"
|
USB_PRODUCT = "Sol"
|
||||||
USB_MANUFACTURER = "Winterbloom"
|
USB_MANUFACTURER = "Winterbloom"
|
||||||
|
USB_INTERFACE_NAME = "Sol"
|
||||||
|
|
||||||
CHIP_VARIANT = SAMD51J20A
|
CHIP_VARIANT = SAMD51J20A
|
||||||
CHIP_FAMILY = samd51
|
CHIP_FAMILY = samd51
|
||||||
|
@ -323,29 +323,23 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
struct io_descriptor *io;
|
struct io_descriptor *io;
|
||||||
usart_async_get_io_descriptor(usart_desc_p, &io);
|
usart_async_get_io_descriptor(usart_desc_p, &io);
|
||||||
|
|
||||||
|
// Start writing characters. This is non-blocking and will
|
||||||
|
// return immediately after setting up the write.
|
||||||
if (io_write(io, data, len) < 0) {
|
if (io_write(io, data, len) < 0) {
|
||||||
*errcode = MP_EAGAIN;
|
*errcode = MP_EAGAIN;
|
||||||
return MP_STREAM_ERROR;
|
return MP_STREAM_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait until write is complete or timeout.
|
// Busy-wait until all characters transmitted.
|
||||||
bool done = false;
|
struct usart_async_status async_status;
|
||||||
uint64_t start_ticks = ticks_ms;
|
while (true) {
|
||||||
// Busy-wait for timeout.
|
usart_async_get_status(usart_desc_p, &async_status);
|
||||||
while (ticks_ms - start_ticks < self->timeout_ms) {
|
if (async_status.txcnt >= len) {
|
||||||
if (usart_async_is_tx_empty(usart_desc_p)) {
|
|
||||||
done = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!done) {
|
|
||||||
*errcode = MP_EAGAIN;
|
|
||||||
return MP_STREAM_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// All the characters got written.
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,6 +362,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
self->baudrate = baudrate;
|
self->baudrate = baudrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_ms / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_ms = timeout * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
// This assignment is only here because the usart_async routines take a *const argument.
|
// This assignment is only here because the usart_async routines take a *const argument.
|
||||||
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||||
@ -383,12 +385,14 @@ void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// True if there are no characters still to be written.
|
||||||
bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
|
bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
|
||||||
if (self->tx_pin == NO_PIN) {
|
if (self->tx_pin == NO_PIN) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// This assignment is only here because the usart_async routines take a *const argument.
|
// This assignment is only here because the usart_async routines take a *const argument.
|
||||||
const struct _usart_async_device * const usart_device_p =
|
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||||
(struct _usart_async_device * const) &self->usart_desc.device;
|
struct usart_async_status async_status;
|
||||||
return _usart_async_is_byte_sent(usart_device_p);
|
usart_async_get_status(usart_desc_p, &async_status);
|
||||||
|
return !(async_status.flags & USART_ASYNC_STATUS_BUSY);
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,18 @@ endif
|
|||||||
|
|
||||||
# Put samd21-only choices here.
|
# Put samd21-only choices here.
|
||||||
ifeq ($(CHIP_FAMILY),samd21)
|
ifeq ($(CHIP_FAMILY),samd21)
|
||||||
# frequencyio not yet verified as working on SAMD21.
|
# frequencyio not yet verified as working on SAMD21, though make it possible to override.
|
||||||
|
ifndef CIRCUITPY_AUDIOMIXER
|
||||||
CIRCUITPY_AUDIOMIXER = 0
|
CIRCUITPY_AUDIOMIXER = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_FREQUENCYIO
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_TOUCHIO_USE_NATIVE
|
||||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# SAMD21 needs separate endpoint pairs for MSC BULK IN and BULK OUT, otherwise it's erratic.
|
# SAMD21 needs separate endpoint pairs for MSC BULK IN and BULK OUT, otherwise it's erratic.
|
||||||
USB_MSC_EP_NUM_OUT = 1
|
USB_MSC_EP_NUM_OUT = 1
|
||||||
@ -27,8 +35,24 @@ endif
|
|||||||
|
|
||||||
# Put samd51-only choices here.
|
# Put samd51-only choices here.
|
||||||
ifeq ($(CHIP_FAMILY),samd51)
|
ifeq ($(CHIP_FAMILY),samd51)
|
||||||
CIRCUITPY_SAMD = 1
|
# No native touchio on SAMD51.
|
||||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
|
||||||
|
|
||||||
|
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_NETWORK
|
||||||
|
CIRCUITPY_NETWORK = 1
|
||||||
|
MICROPY_PY_WIZNET5K = 5500
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_PS2IO
|
||||||
|
CIRCUITPY_PS2IO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_SAMD
|
||||||
|
CIRCUITPY_SAMD = 1
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
INTERNAL_LIBM = 1
|
INTERNAL_LIBM = 1
|
||||||
|
@ -102,7 +102,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
|||||||
self->tx_pin = tx;
|
self->tx_pin = tx;
|
||||||
self->rx_pin = rx;
|
self->rx_pin = rx;
|
||||||
self->baudrate = baudrate;
|
self->baudrate = baudrate;
|
||||||
self->timeout = timeout;
|
self->timeout_us = timeout * 1000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
||||||
@ -135,7 +135,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
FD_SET(busio_uart_dev[self->number].fd, &rfds);
|
FD_SET(busio_uart_dev[self->number].fd, &rfds);
|
||||||
|
|
||||||
tv.tv_sec = 0;
|
tv.tv_sec = 0;
|
||||||
tv.tv_usec = self->timeout * 1000;
|
tv.tv_usec = self->timeout_us;
|
||||||
|
|
||||||
retval = select(busio_uart_dev[self->number].fd + 1, &rfds, NULL, NULL, &tv);
|
retval = select(busio_uart_dev[self->number].fd + 1, &rfds, NULL, NULL, &tv);
|
||||||
|
|
||||||
@ -172,6 +172,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
ioctl(busio_uart_dev[self->number].fd, TCFLSH, (long unsigned int)NULL);
|
ioctl(busio_uart_dev[self->number].fd, TCFLSH, (long unsigned int)NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_us / 1000000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_us = timeout * 1000000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ typedef struct {
|
|||||||
const mcu_pin_obj_t *tx_pin;
|
const mcu_pin_obj_t *tx_pin;
|
||||||
const mcu_pin_obj_t *rx_pin;
|
const mcu_pin_obj_t *rx_pin;
|
||||||
uint32_t baudrate;
|
uint32_t baudrate;
|
||||||
uint32_t timeout;
|
uint32_t timeout_us;
|
||||||
} busio_uart_obj_t;
|
} busio_uart_obj_t;
|
||||||
|
|
||||||
void busio_uart_reset(void);
|
void busio_uart_reset(void);
|
||||||
|
@ -108,6 +108,7 @@ void choose_i2s_clocking(audiobusio_i2sout_obj_t *self, uint32_t sample_rate) {
|
|||||||
|
|
||||||
static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
||||||
void *buffer = self->buffers[self->next_buffer];
|
void *buffer = self->buffers[self->next_buffer];
|
||||||
|
void *buffer_start = buffer;
|
||||||
NRF_I2S->TXD.PTR = (uintptr_t)buffer;
|
NRF_I2S->TXD.PTR = (uintptr_t)buffer;
|
||||||
self->next_buffer = !self->next_buffer;
|
self->next_buffer = !self->next_buffer;
|
||||||
size_t bytesleft = self->buffer_length;
|
size_t bytesleft = self->buffer_length;
|
||||||
@ -139,14 +140,14 @@ static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
|||||||
uint16_t *bp = (uint16_t*)buffer;
|
uint16_t *bp = (uint16_t*)buffer;
|
||||||
uint16_t *be = (uint16_t*)(buffer + bytecount);
|
uint16_t *be = (uint16_t*)(buffer + bytecount);
|
||||||
uint16_t *sp = (uint16_t*)self->sample_data;
|
uint16_t *sp = (uint16_t*)self->sample_data;
|
||||||
for (; bp != be; bp++) {
|
for (; bp < be;) {
|
||||||
*bp++ = *sp++ + 0x8000;
|
*bp++ = *sp++ + 0x8000;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uint8_t *bp = (uint8_t*)buffer;
|
uint8_t *bp = (uint8_t*)buffer;
|
||||||
uint8_t *be = (uint8_t*)(buffer + bytecount);
|
uint8_t *be = (uint8_t*)(buffer + bytecount);
|
||||||
uint8_t *sp = (uint8_t*)self->sample_data;
|
uint8_t *sp = (uint8_t*)self->sample_data;
|
||||||
for (; bp != be; bp++) {
|
for (; bp < be;) {
|
||||||
*bp++ = *sp++ + 0x80;
|
*bp++ = *sp++ + 0x80;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -157,15 +158,17 @@ static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
|||||||
|
|
||||||
// Find the last frame of real audio data and replicate its samples until
|
// Find the last frame of real audio data and replicate its samples until
|
||||||
// you have 32 bits worth, which is the fundamental unit of nRF I2S DMA
|
// you have 32 bits worth, which is the fundamental unit of nRF I2S DMA
|
||||||
if (self->bytes_per_sample == 1 && self->channel_count == 1) {
|
if(buffer != buffer_start) {
|
||||||
// For 8-bit mono, 4 copies of the final sample are required
|
if (self->bytes_per_sample == 1 && self->channel_count == 1) {
|
||||||
self->hold_value = 0x01010101 * *(uint8_t*)(buffer-1);
|
// For 8-bit mono, 4 copies of the final sample are required
|
||||||
} else if (self->bytes_per_sample == 2 && self->channel_count == 2) {
|
self->hold_value = 0x01010101 * *(uint8_t*)(buffer-1);
|
||||||
// For 16-bit stereo, 1 copy of the final sample is required
|
} else if (self->bytes_per_sample == 2 && self->channel_count == 2) {
|
||||||
self->hold_value = *(uint32_t*)(buffer-4);
|
// For 16-bit stereo, 1 copy of the final sample is required
|
||||||
} else {
|
self->hold_value = *(uint32_t*)(buffer-4);
|
||||||
// For 8-bit stereo and 16-bit mono, 2 copies of the final sample are required
|
} else {
|
||||||
self->hold_value = 0x00010001 * *(uint16_t*)(buffer-2);
|
// For 8-bit stereo and 16-bit mono, 2 copies of the final sample are required
|
||||||
|
self->hold_value = 0x00010001 * *(uint16_t*)(buffer-2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Emulate pausing and stopping by filling the DMA buffer with copies of
|
// Emulate pausing and stopping by filling the DMA buffer with copies of
|
||||||
@ -218,6 +221,8 @@ void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t* self) {
|
|||||||
if (common_hal_audiobusio_i2sout_deinited(self)) {
|
if (common_hal_audiobusio_i2sout_deinited(self)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
NRF_I2S->TASKS_STOP = 1;
|
||||||
|
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Disabled;
|
||||||
reset_pin_number(self->bit_clock_pin_number);
|
reset_pin_number(self->bit_clock_pin_number);
|
||||||
self->bit_clock_pin_number = 0xff;
|
self->bit_clock_pin_number = 0xff;
|
||||||
reset_pin_number(self->word_select_pin_number);
|
reset_pin_number(self->word_select_pin_number);
|
||||||
@ -240,12 +245,20 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
|
|||||||
|
|
||||||
uint32_t max_buffer_length;
|
uint32_t max_buffer_length;
|
||||||
bool single_buffer, samples_signed;
|
bool single_buffer, samples_signed;
|
||||||
audiosample_get_buffer_structure(sample, /* single channel */ false,
|
audiosample_get_buffer_structure(sample, /* single channel */ true,
|
||||||
&single_buffer, &samples_signed, &max_buffer_length,
|
&single_buffer, &samples_signed, &max_buffer_length,
|
||||||
&self->channel_count);
|
&self->channel_count);
|
||||||
self->single_buffer = single_buffer;
|
self->single_buffer = single_buffer;
|
||||||
self->samples_signed = samples_signed;
|
self->samples_signed = samples_signed;
|
||||||
|
|
||||||
|
|
||||||
|
NRF_I2S->CONFIG.SWIDTH = self->bytes_per_sample == 1
|
||||||
|
? I2S_CONFIG_SWIDTH_SWIDTH_8Bit
|
||||||
|
: I2S_CONFIG_SWIDTH_SWIDTH_16Bit;
|
||||||
|
NRF_I2S->CONFIG.CHANNELS = self->channel_count == 1
|
||||||
|
? I2S_CONFIG_CHANNELS_CHANNELS_Left
|
||||||
|
: I2S_CONFIG_CHANNELS_CHANNELS_Stereo;
|
||||||
|
|
||||||
choose_i2s_clocking(self, sample_rate);
|
choose_i2s_clocking(self, sample_rate);
|
||||||
/* Allocate buffers based on a maximum duration
|
/* Allocate buffers based on a maximum duration
|
||||||
* This duration was chosen empirically based on what would
|
* This duration was chosen empirically based on what would
|
||||||
@ -269,9 +282,6 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
|
|||||||
self->stopping = false;
|
self->stopping = false;
|
||||||
i2s_buffer_fill(self);
|
i2s_buffer_fill(self);
|
||||||
|
|
||||||
NRF_I2S->CONFIG.CHANNELS = self->channel_count == 1 ? I2S_CONFIG_CHANNELS_CHANNELS_Left : I2S_CONFIG_CHANNELS_CHANNELS_Stereo;
|
|
||||||
|
|
||||||
|
|
||||||
NRF_I2S->RXTXD.MAXCNT = self->buffer_length / 4;
|
NRF_I2S->RXTXD.MAXCNT = self->buffer_length / 4;
|
||||||
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Enabled;
|
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Enabled;
|
||||||
|
|
||||||
|
@ -265,19 +265,6 @@ size_t common_hal_busio_uart_write (busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
|
|
||||||
if ( len == 0 ) return 0;
|
if ( len == 0 ) return 0;
|
||||||
|
|
||||||
uint64_t start_ticks = ticks_ms;
|
|
||||||
|
|
||||||
// Wait for on-going transfer to complete
|
|
||||||
while ( nrfx_uarte_tx_in_progress(self->uarte) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
|
||||||
RUN_BACKGROUND_TASKS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Time up
|
|
||||||
if ( !(ticks_ms - start_ticks < self->timeout_ms) ) {
|
|
||||||
*errcode = MP_EAGAIN;
|
|
||||||
return MP_STREAM_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// EasyDMA can only access SRAM
|
// EasyDMA can only access SRAM
|
||||||
uint8_t * tx_buf = (uint8_t*) data;
|
uint8_t * tx_buf = (uint8_t*) data;
|
||||||
if ( !nrfx_is_in_ram(data) ) {
|
if ( !nrfx_is_in_ram(data) ) {
|
||||||
@ -290,7 +277,8 @@ size_t common_hal_busio_uart_write (busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
_VERIFY_ERR(*errcode);
|
_VERIFY_ERR(*errcode);
|
||||||
(*errcode) = 0;
|
(*errcode) = 0;
|
||||||
|
|
||||||
while ( nrfx_uarte_tx_in_progress(self->uarte) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
// Wait for write to complete.
|
||||||
|
while ( nrfx_uarte_tx_in_progress(self->uarte) ) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,6 +298,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
nrf_uarte_baudrate_set(self->uarte->p_reg, get_nrf_baud(baudrate));
|
nrf_uarte_baudrate_set(self->uarte->p_reg, get_nrf_baud(baudrate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_ms / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_ms = timeout * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
return ringbuf_count(&self->rbuf);
|
return ringbuf_count(&self->rbuf);
|
||||||
}
|
}
|
||||||
|
@ -11,20 +11,33 @@ USB_SERIAL_NUMBER_LENGTH = 16
|
|||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
# Audio via PWM
|
# Audio via PWM
|
||||||
|
ifndef CIRCUITPY_AUDIOCORE
|
||||||
CIRCUITPY_AUDIOCORE = 1
|
CIRCUITPY_AUDIOCORE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 0
|
CIRCUITPY_AUDIOIO = 0
|
||||||
|
|
||||||
|
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_AUDIOMIXER
|
||||||
CIRCUITPY_AUDIOMIXER = 1
|
CIRCUITPY_AUDIOMIXER = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_AUDIOPWMIO
|
||||||
CIRCUITPY_AUDIOPWMIO = 1
|
CIRCUITPY_AUDIOPWMIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_AUDIOBUSIO
|
||||||
CIRCUITPY_AUDIOBUSIO = 1
|
CIRCUITPY_AUDIOBUSIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# No I2CSlave implementation
|
# No I2CSlave implementation
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CSLAVE = 0
|
||||||
|
|
||||||
# enable NVM
|
|
||||||
CIRCUITPY_NVM = 1
|
|
||||||
|
|
||||||
# enable RTC
|
# enable RTC
|
||||||
|
ifndef CIRCUITPY_RTC
|
||||||
CIRCUITPY_RTC = 1
|
CIRCUITPY_RTC = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# frequencyio not yet implemented
|
# frequencyio not yet implemented
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
#include "supervisor/shared/translate.h"
|
#include "supervisor/shared/translate.h"
|
||||||
|
|
||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
#include "stm32f4xx_hal.h"
|
#include "stm32f4xx_hal.h"
|
||||||
|
|
||||||
#define ALL_UARTS 0xFFFF
|
#define ALL_UARTS 0xFFFF
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ void uart_reset(void) {
|
|||||||
uart_clock_disable(ALL_UARTS);
|
uart_clock_disable(ALL_UARTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC USART_TypeDef * assign_uart_or_throw(busio_uart_obj_t* self, bool pin_eval,
|
STATIC USART_TypeDef * assign_uart_or_throw(busio_uart_obj_t* self, bool pin_eval,
|
||||||
int uart_index, bool uart_taken) {
|
int uart_index, bool uart_taken) {
|
||||||
if (pin_eval) {
|
if (pin_eval) {
|
||||||
//assign a root pointer pointer for IRQ
|
//assign a root pointer pointer for IRQ
|
||||||
@ -82,7 +82,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
uint8_t rx_len = sizeof(mcu_uart_rx_list)/sizeof(*mcu_uart_rx_list);
|
uint8_t rx_len = sizeof(mcu_uart_rx_list)/sizeof(*mcu_uart_rx_list);
|
||||||
bool uart_taken = false;
|
bool uart_taken = false;
|
||||||
uint8_t uart_index = 0; //origin 0 corrected
|
uint8_t uart_index = 0; //origin 0 corrected
|
||||||
|
|
||||||
//Can have both pins, or either
|
//Can have both pins, or either
|
||||||
if ((tx != mp_const_none) && (rx != mp_const_none)) {
|
if ((tx != mp_const_none) && (rx != mp_const_none)) {
|
||||||
//normal find loop if both pins exist
|
//normal find loop if both pins exist
|
||||||
@ -90,7 +90,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
if (mcu_uart_tx_list[i].pin == tx) {
|
if (mcu_uart_tx_list[i].pin == tx) {
|
||||||
//rx
|
//rx
|
||||||
for (uint j = 0; j < rx_len; j++) {
|
for (uint j = 0; j < rx_len; j++) {
|
||||||
if (mcu_uart_rx_list[j].pin == rx
|
if (mcu_uart_rx_list[j].pin == rx
|
||||||
&& mcu_uart_rx_list[j].uart_index == mcu_uart_tx_list[i].uart_index) {
|
&& mcu_uart_rx_list[j].uart_index == mcu_uart_tx_list[i].uart_index) {
|
||||||
//keep looking if the UART is taken, edge case
|
//keep looking if the UART is taken, edge case
|
||||||
if (reserved_uart[mcu_uart_tx_list[i].uart_index - 1]) {
|
if (reserved_uart[mcu_uart_tx_list[i].uart_index - 1]) {
|
||||||
@ -106,7 +106,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
uart_index = self->tx->uart_index - 1;
|
uart_index = self->tx->uart_index - 1;
|
||||||
USARTx = assign_uart_or_throw(self, (self->tx != NULL && self->rx != NULL),
|
USARTx = assign_uart_or_throw(self, (self->tx != NULL && self->rx != NULL),
|
||||||
uart_index, uart_taken);
|
uart_index, uart_taken);
|
||||||
} else if (tx == mp_const_none) {
|
} else if (tx == mp_const_none) {
|
||||||
//If there is no tx, run only rx
|
//If there is no tx, run only rx
|
||||||
@ -123,7 +123,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
uart_index = self->rx->uart_index - 1;
|
uart_index = self->rx->uart_index - 1;
|
||||||
USARTx = assign_uart_or_throw(self, (self->rx != NULL),
|
USARTx = assign_uart_or_throw(self, (self->rx != NULL),
|
||||||
uart_index, uart_taken);
|
uart_index, uart_taken);
|
||||||
} else if (rx == mp_const_none) {
|
} else if (rx == mp_const_none) {
|
||||||
//If there is no rx, run only tx
|
//If there is no rx, run only tx
|
||||||
@ -140,7 +140,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
uart_index = self->tx->uart_index - 1;
|
uart_index = self->tx->uart_index - 1;
|
||||||
USARTx = assign_uart_or_throw(self, (self->tx != NULL),
|
USARTx = assign_uart_or_throw(self, (self->tx != NULL),
|
||||||
uart_index, uart_taken);
|
uart_index, uart_taken);
|
||||||
} else {
|
} else {
|
||||||
//both pins cannot be empty
|
//both pins cannot be empty
|
||||||
@ -173,7 +173,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
GPIO_InitStruct.Alternate = self->rx->altfn_index;
|
GPIO_InitStruct.Alternate = self->rx->altfn_index;
|
||||||
HAL_GPIO_Init(pin_port(rx->port), &GPIO_InitStruct);
|
HAL_GPIO_Init(pin_port(rx->port), &GPIO_InitStruct);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t* self,
|
|||||||
self->handle.Init.BaudRate = baudrate;
|
self->handle.Init.BaudRate = baudrate;
|
||||||
self->handle.Init.WordLength = (bits == 9) ? UART_WORDLENGTH_9B : UART_WORDLENGTH_8B;
|
self->handle.Init.WordLength = (bits == 9) ? UART_WORDLENGTH_9B : UART_WORDLENGTH_8B;
|
||||||
self->handle.Init.StopBits = (stop > 1) ? UART_STOPBITS_2 : UART_STOPBITS_1;
|
self->handle.Init.StopBits = (stop > 1) ? UART_STOPBITS_2 : UART_STOPBITS_1;
|
||||||
self->handle.Init.Parity = (parity == PARITY_ODD) ? UART_PARITY_ODD :
|
self->handle.Init.Parity = (parity == PARITY_ODD) ? UART_PARITY_ODD :
|
||||||
(parity == PARITY_EVEN) ? UART_PARITY_EVEN :
|
(parity == PARITY_EVEN) ? UART_PARITY_EVEN :
|
||||||
UART_PARITY_NONE;
|
UART_PARITY_NONE;
|
||||||
self->handle.Init.Mode = (self->tx != NULL && self->rx != NULL) ? UART_MODE_TX_RX :
|
self->handle.Init.Mode = (self->tx != NULL && self->rx != NULL) ? UART_MODE_TX_RX :
|
||||||
@ -234,7 +234,7 @@ bool common_hal_busio_uart_deinited(busio_uart_obj_t *self) {
|
|||||||
|
|
||||||
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
||||||
if (common_hal_busio_uart_deinited(self)) return;
|
if (common_hal_busio_uart_deinited(self)) return;
|
||||||
|
|
||||||
reset_pin_number(self->tx->pin->port,self->tx->pin->number);
|
reset_pin_number(self->tx->pin->port,self->tx->pin->number);
|
||||||
reset_pin_number(self->rx->pin->port,self->rx->pin->number);
|
reset_pin_number(self->rx->pin->port,self->rx->pin->number);
|
||||||
self->tx = mp_const_none;
|
self->tx = mp_const_none;
|
||||||
@ -279,7 +279,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
*errcode = EAGAIN;
|
*errcode = EAGAIN;
|
||||||
return MP_STREAM_ERROR;
|
return MP_STREAM_ERROR;
|
||||||
}
|
}
|
||||||
return rx_bytes;
|
return rx_bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write characters.
|
// Write characters.
|
||||||
@ -290,13 +290,15 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
bool write_err = false; //write error shouldn't disable interrupts
|
bool write_err = false; //write error shouldn't disable interrupts
|
||||||
|
|
||||||
HAL_NVIC_DisableIRQ(self->irq);
|
HAL_NVIC_DisableIRQ(self->irq);
|
||||||
if (HAL_UART_Transmit(&self->handle, (uint8_t*)data, len, self->timeout_ms) != HAL_OK) {
|
if (HAL_UART_Transmit(&self->handle, (uint8_t*)data, len, HAL_MAX_DELAY) != HAL_OK) {
|
||||||
write_err = true;
|
write_err = true;
|
||||||
}
|
}
|
||||||
HAL_UART_Receive_IT(&self->handle, &self->rx_char, 1);
|
HAL_UART_Receive_IT(&self->handle, &self->rx_char, 1);
|
||||||
HAL_NVIC_EnableIRQ(self->irq);
|
HAL_NVIC_EnableIRQ(self->irq);
|
||||||
|
|
||||||
if (write_err) mp_raise_ValueError(translate("UART write error"));
|
if (write_err) {
|
||||||
|
mp_raise_ValueError(translate("UART write error"));
|
||||||
|
}
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,7 +314,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *handle)
|
|||||||
}
|
}
|
||||||
ringbuf_put_n(&context->rbuf, &context->rx_char, 1);
|
ringbuf_put_n(&context->rbuf, &context->rx_char, 1);
|
||||||
errflag = HAL_UART_Receive_IT(handle, &context->rx_char, 1);
|
errflag = HAL_UART_Receive_IT(handle, &context->rx_char, 1);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -360,6 +362,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
self->baudrate = baudrate;
|
self->baudrate = baudrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_ms / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_ms = timeout * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
return ringbuf_count(&self->rbuf);
|
return ringbuf_count(&self->rbuf);
|
||||||
}
|
}
|
||||||
@ -414,71 +424,71 @@ STATIC void uart_clock_enable(uint16_t mask) {
|
|||||||
if (mask & (1 << 0)) {
|
if (mask & (1 << 0)) {
|
||||||
__HAL_RCC_USART1_FORCE_RESET();
|
__HAL_RCC_USART1_FORCE_RESET();
|
||||||
__HAL_RCC_USART1_RELEASE_RESET();
|
__HAL_RCC_USART1_RELEASE_RESET();
|
||||||
__HAL_RCC_USART1_CLK_ENABLE();
|
__HAL_RCC_USART1_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef USART2
|
#ifdef USART2
|
||||||
if (mask & (1 << 1)) {
|
if (mask & (1 << 1)) {
|
||||||
__HAL_RCC_USART2_FORCE_RESET();
|
__HAL_RCC_USART2_FORCE_RESET();
|
||||||
__HAL_RCC_USART2_RELEASE_RESET();
|
__HAL_RCC_USART2_RELEASE_RESET();
|
||||||
__HAL_RCC_USART2_CLK_ENABLE();
|
__HAL_RCC_USART2_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef USART3
|
#ifdef USART3
|
||||||
if (mask & (1 << 2)) {
|
if (mask & (1 << 2)) {
|
||||||
__HAL_RCC_USART3_FORCE_RESET();
|
__HAL_RCC_USART3_FORCE_RESET();
|
||||||
__HAL_RCC_USART3_RELEASE_RESET();
|
__HAL_RCC_USART3_RELEASE_RESET();
|
||||||
__HAL_RCC_USART3_CLK_ENABLE();
|
__HAL_RCC_USART3_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART4
|
#ifdef UART4
|
||||||
if (mask & (1 << 3)) {
|
if (mask & (1 << 3)) {
|
||||||
__HAL_RCC_UART4_FORCE_RESET();
|
__HAL_RCC_UART4_FORCE_RESET();
|
||||||
__HAL_RCC_UART4_RELEASE_RESET();
|
__HAL_RCC_UART4_RELEASE_RESET();
|
||||||
__HAL_RCC_UART4_CLK_ENABLE();
|
__HAL_RCC_UART4_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART5
|
#ifdef UART5
|
||||||
if (mask & (1 << 4)) {
|
if (mask & (1 << 4)) {
|
||||||
__HAL_RCC_UART5_FORCE_RESET();
|
__HAL_RCC_UART5_FORCE_RESET();
|
||||||
__HAL_RCC_UART5_RELEASE_RESET();
|
__HAL_RCC_UART5_RELEASE_RESET();
|
||||||
__HAL_RCC_UART5_CLK_ENABLE();
|
__HAL_RCC_UART5_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef USART6
|
#ifdef USART6
|
||||||
if (mask & (1 << 5)) {
|
if (mask & (1 << 5)) {
|
||||||
__HAL_RCC_USART6_FORCE_RESET();
|
__HAL_RCC_USART6_FORCE_RESET();
|
||||||
__HAL_RCC_USART6_RELEASE_RESET();
|
__HAL_RCC_USART6_RELEASE_RESET();
|
||||||
__HAL_RCC_USART6_CLK_ENABLE();
|
__HAL_RCC_USART6_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART7
|
#ifdef UART7
|
||||||
if (mask & (1 << 6)) {
|
if (mask & (1 << 6)) {
|
||||||
__HAL_RCC_UART7_FORCE_RESET();
|
__HAL_RCC_UART7_FORCE_RESET();
|
||||||
__HAL_RCC_UART7_RELEASE_RESET();
|
__HAL_RCC_UART7_RELEASE_RESET();
|
||||||
__HAL_RCC_UART7_CLK_ENABLE();
|
__HAL_RCC_UART7_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART8
|
#ifdef UART8
|
||||||
if (mask & (1 << 7)) {
|
if (mask & (1 << 7)) {
|
||||||
__HAL_RCC_UART8_FORCE_RESET();
|
__HAL_RCC_UART8_FORCE_RESET();
|
||||||
__HAL_RCC_UART8_RELEASE_RESET();
|
__HAL_RCC_UART8_RELEASE_RESET();
|
||||||
__HAL_RCC_UART8_CLK_ENABLE();
|
__HAL_RCC_UART8_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART9
|
#ifdef UART9
|
||||||
if (mask & (1 << 8)) {
|
if (mask & (1 << 8)) {
|
||||||
__HAL_RCC_UART9_FORCE_RESET();
|
__HAL_RCC_UART9_FORCE_RESET();
|
||||||
__HAL_RCC_UART9_RELEASE_RESET();
|
__HAL_RCC_UART9_RELEASE_RESET();
|
||||||
__HAL_RCC_UART9_CLK_ENABLE();
|
__HAL_RCC_UART9_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART10
|
#ifdef UART10
|
||||||
if (mask & (1 << 9)) {
|
if (mask & (1 << 9)) {
|
||||||
__HAL_RCC_UART10_FORCE_RESET();
|
__HAL_RCC_UART10_FORCE_RESET();
|
||||||
__HAL_RCC_UART10_RELEASE_RESET();
|
__HAL_RCC_UART10_RELEASE_RESET();
|
||||||
__HAL_RCC_UART10_CLK_ENABLE();
|
__HAL_RCC_UART10_CLK_ENABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -487,71 +497,71 @@ STATIC void uart_clock_disable(uint16_t mask) {
|
|||||||
if (mask & (1 << 0)) {
|
if (mask & (1 << 0)) {
|
||||||
__HAL_RCC_USART1_FORCE_RESET();
|
__HAL_RCC_USART1_FORCE_RESET();
|
||||||
__HAL_RCC_USART1_RELEASE_RESET();
|
__HAL_RCC_USART1_RELEASE_RESET();
|
||||||
__HAL_RCC_USART1_CLK_DISABLE();
|
__HAL_RCC_USART1_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef USART2
|
#ifdef USART2
|
||||||
if (mask & (1 << 1)) {
|
if (mask & (1 << 1)) {
|
||||||
__HAL_RCC_USART2_FORCE_RESET();
|
__HAL_RCC_USART2_FORCE_RESET();
|
||||||
__HAL_RCC_USART2_RELEASE_RESET();
|
__HAL_RCC_USART2_RELEASE_RESET();
|
||||||
__HAL_RCC_USART2_CLK_DISABLE();
|
__HAL_RCC_USART2_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef USART3
|
#ifdef USART3
|
||||||
if (mask & (1 << 2)) {
|
if (mask & (1 << 2)) {
|
||||||
__HAL_RCC_USART3_FORCE_RESET();
|
__HAL_RCC_USART3_FORCE_RESET();
|
||||||
__HAL_RCC_USART3_RELEASE_RESET();
|
__HAL_RCC_USART3_RELEASE_RESET();
|
||||||
__HAL_RCC_USART3_CLK_DISABLE();
|
__HAL_RCC_USART3_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART4
|
#ifdef UART4
|
||||||
if (mask & (1 << 3)) {
|
if (mask & (1 << 3)) {
|
||||||
__HAL_RCC_UART4_FORCE_RESET();
|
__HAL_RCC_UART4_FORCE_RESET();
|
||||||
__HAL_RCC_UART4_RELEASE_RESET();
|
__HAL_RCC_UART4_RELEASE_RESET();
|
||||||
__HAL_RCC_UART4_CLK_DISABLE();
|
__HAL_RCC_UART4_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART5
|
#ifdef UART5
|
||||||
if (mask & (1 << 4)) {
|
if (mask & (1 << 4)) {
|
||||||
__HAL_RCC_UART5_FORCE_RESET();
|
__HAL_RCC_UART5_FORCE_RESET();
|
||||||
__HAL_RCC_UART5_RELEASE_RESET();
|
__HAL_RCC_UART5_RELEASE_RESET();
|
||||||
__HAL_RCC_UART5_CLK_DISABLE();
|
__HAL_RCC_UART5_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef USART6
|
#ifdef USART6
|
||||||
if (mask & (1 << 5)) {
|
if (mask & (1 << 5)) {
|
||||||
__HAL_RCC_USART6_FORCE_RESET();
|
__HAL_RCC_USART6_FORCE_RESET();
|
||||||
__HAL_RCC_USART6_RELEASE_RESET();
|
__HAL_RCC_USART6_RELEASE_RESET();
|
||||||
__HAL_RCC_USART6_CLK_DISABLE();
|
__HAL_RCC_USART6_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART7
|
#ifdef UART7
|
||||||
if (mask & (1 << 6)) {
|
if (mask & (1 << 6)) {
|
||||||
__HAL_RCC_UART7_FORCE_RESET();
|
__HAL_RCC_UART7_FORCE_RESET();
|
||||||
__HAL_RCC_UART7_RELEASE_RESET();
|
__HAL_RCC_UART7_RELEASE_RESET();
|
||||||
__HAL_RCC_UART7_CLK_DISABLE();
|
__HAL_RCC_UART7_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART8
|
#ifdef UART8
|
||||||
if (mask & (1 << 7)) {
|
if (mask & (1 << 7)) {
|
||||||
__HAL_RCC_UART8_FORCE_RESET();
|
__HAL_RCC_UART8_FORCE_RESET();
|
||||||
__HAL_RCC_UART8_RELEASE_RESET();
|
__HAL_RCC_UART8_RELEASE_RESET();
|
||||||
__HAL_RCC_UART8_CLK_DISABLE();
|
__HAL_RCC_UART8_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART9
|
#ifdef UART9
|
||||||
if (mask & (1 << 8)) {
|
if (mask & (1 << 8)) {
|
||||||
__HAL_RCC_UART9_FORCE_RESET();
|
__HAL_RCC_UART9_FORCE_RESET();
|
||||||
__HAL_RCC_UART9_RELEASE_RESET();
|
__HAL_RCC_UART9_RELEASE_RESET();
|
||||||
__HAL_RCC_UART9_CLK_DISABLE();
|
__HAL_RCC_UART9_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef UART10
|
#ifdef UART10
|
||||||
if (mask & (1 << 9)) {
|
if (mask & (1 << 9)) {
|
||||||
__HAL_RCC_UART10_FORCE_RESET();
|
__HAL_RCC_UART10_FORCE_RESET();
|
||||||
__HAL_RCC_UART10_RELEASE_RESET();
|
__HAL_RCC_UART10_RELEASE_RESET();
|
||||||
__HAL_RCC_UART10_CLK_DISABLE();
|
__HAL_RCC_UART10_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,18 +15,56 @@ LONGINT_IMPL = MPZ
|
|||||||
#Reduced feature set for early port
|
#Reduced feature set for early port
|
||||||
CIRCUITPY_MINIMAL_BUILD = 1
|
CIRCUITPY_MINIMAL_BUILD = 1
|
||||||
|
|
||||||
|
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_BOARD
|
||||||
CIRCUITPY_BOARD = 1
|
CIRCUITPY_BOARD = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_DIGITALIO
|
||||||
CIRCUITPY_DIGITALIO = 1
|
CIRCUITPY_DIGITALIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_ANALOGIO
|
||||||
CIRCUITPY_ANALOGIO = 1
|
CIRCUITPY_ANALOGIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_MICROCONTROLLER
|
||||||
CIRCUITPY_MICROCONTROLLER = 1
|
CIRCUITPY_MICROCONTROLLER = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_BUSIO
|
||||||
CIRCUITPY_BUSIO = 1
|
CIRCUITPY_BUSIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_PULSEIO
|
||||||
CIRCUITPY_PULSEIO = 1
|
CIRCUITPY_PULSEIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_OS
|
||||||
CIRCUITPY_OS = 1
|
CIRCUITPY_OS = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_STORAGE
|
||||||
CIRCUITPY_STORAGE = 1
|
CIRCUITPY_STORAGE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_RANDOM
|
||||||
CIRCUITPY_RANDOM = 1
|
CIRCUITPY_RANDOM = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CRICUITPY_USB_HID
|
||||||
CIRCUITPY_USB_HID = 1
|
CIRCUITPY_USB_HID = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_USB_MIDI
|
||||||
CIRCUITPY_USB_MIDI = 1
|
CIRCUITPY_USB_MIDI = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_NEOPIXEL_WRITE
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
#ifeq ($(MCU_SUB_VARIANT), stm32f412zx)
|
#ifeq ($(MCU_SUB_VARIANT), stm32f412zx)
|
||||||
#endif
|
#endif
|
||||||
|
@ -53,7 +53,7 @@ ifndef CIRCUITPY_DEFAULT_BUILD
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Some features have no unique HAL component, and thus there's never
|
# Some features have no unique HAL component, and thus there's never
|
||||||
# a reason to not include them.
|
# a reason to not include them.
|
||||||
ifndef CIRCUITPY_ALWAYS_BUILD
|
ifndef CIRCUITPY_ALWAYS_BUILD
|
||||||
CIRCUITPY_ALWAYS_BUILD = 1
|
CIRCUITPY_ALWAYS_BUILD = 1
|
||||||
endif
|
endif
|
||||||
@ -170,7 +170,7 @@ CIRCUITPY_NEOPIXEL_WRITE = $(CIRCUITPY_DEFAULT_BUILD)
|
|||||||
endif
|
endif
|
||||||
CFLAGS += -DCIRCUITPY_NEOPIXEL_WRITE=$(CIRCUITPY_NEOPIXEL_WRITE)
|
CFLAGS += -DCIRCUITPY_NEOPIXEL_WRITE=$(CIRCUITPY_NEOPIXEL_WRITE)
|
||||||
|
|
||||||
# Only certain boards support NETWORK (Ethernet)
|
# Enabled on SAMD51. Won't fit on SAMD21 builds. Not tested on nRF or STM32F4 builds.
|
||||||
ifndef CIRCUITPY_NETWORK
|
ifndef CIRCUITPY_NETWORK
|
||||||
CIRCUITPY_NETWORK = 0
|
CIRCUITPY_NETWORK = 0
|
||||||
endif
|
endif
|
||||||
|
13
py/compile.c
13
py/compile.c
@ -775,13 +775,22 @@ STATIC bool compile_built_in_decorator(compiler_t *comp, int name_len, mp_parse_
|
|||||||
qstr attr = MP_PARSE_NODE_LEAF_ARG(name_nodes[1]);
|
qstr attr = MP_PARSE_NODE_LEAF_ARG(name_nodes[1]);
|
||||||
if (attr == MP_QSTR_bytecode) {
|
if (attr == MP_QSTR_bytecode) {
|
||||||
*emit_options = MP_EMIT_OPT_BYTECODE;
|
*emit_options = MP_EMIT_OPT_BYTECODE;
|
||||||
#if MICROPY_EMIT_NATIVE
|
// @micropython.native decorator.
|
||||||
} else if (attr == MP_QSTR_native) {
|
} else if (attr == MP_QSTR_native) {
|
||||||
|
// Different from MicroPython: native doesn't raise SyntaxError if native support isn't
|
||||||
|
// compiled, it just passes through the function unmodified.
|
||||||
|
#if MICROPY_EMIT_NATIVE
|
||||||
*emit_options = MP_EMIT_OPT_NATIVE_PYTHON;
|
*emit_options = MP_EMIT_OPT_NATIVE_PYTHON;
|
||||||
|
#else
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
|
#if MICROPY_EMIT_NATIVE
|
||||||
|
// @micropython.viper decorator.
|
||||||
} else if (attr == MP_QSTR_viper) {
|
} else if (attr == MP_QSTR_viper) {
|
||||||
*emit_options = MP_EMIT_OPT_VIPER;
|
*emit_options = MP_EMIT_OPT_VIPER;
|
||||||
#endif
|
#endif
|
||||||
#if MICROPY_EMIT_INLINE_ASM
|
#if MICROPY_EMIT_INLINE_ASM
|
||||||
|
// @micropython.asm_thumb decorator.
|
||||||
} else if (attr == ASM_DECORATOR_QSTR) {
|
} else if (attr == ASM_DECORATOR_QSTR) {
|
||||||
*emit_options = MP_EMIT_OPT_ASM;
|
*emit_options = MP_EMIT_OPT_ASM;
|
||||||
#endif
|
#endif
|
||||||
|
10
py/gc.c
10
py/gc.c
@ -53,9 +53,6 @@
|
|||||||
// detect untraced object still in use
|
// detect untraced object still in use
|
||||||
#define CLEAR_ON_SWEEP (0)
|
#define CLEAR_ON_SWEEP (0)
|
||||||
|
|
||||||
#define WORDS_PER_BLOCK ((MICROPY_BYTES_PER_GC_BLOCK) / BYTES_PER_WORD)
|
|
||||||
#define BYTES_PER_BLOCK (MICROPY_BYTES_PER_GC_BLOCK)
|
|
||||||
|
|
||||||
// ATB = allocation table byte
|
// ATB = allocation table byte
|
||||||
// 0b00 = FREE -- free block
|
// 0b00 = FREE -- free block
|
||||||
// 0b01 = HEAD -- head of a chain of blocks
|
// 0b01 = HEAD -- head of a chain of blocks
|
||||||
@ -209,13 +206,6 @@ bool gc_is_locked(void) {
|
|||||||
return MP_STATE_MEM(gc_lock_depth) != 0;
|
return MP_STATE_MEM(gc_lock_depth) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ptr should be of type void*
|
|
||||||
#define VERIFY_PTR(ptr) ( \
|
|
||||||
((uintptr_t)(ptr) & (BYTES_PER_BLOCK - 1)) == 0 /* must be aligned on a block */ \
|
|
||||||
&& ptr >= (void*)MP_STATE_MEM(gc_pool_start) /* must be above start of pool */ \
|
|
||||||
&& ptr < (void*)MP_STATE_MEM(gc_pool_end) /* must be below end of pool */ \
|
|
||||||
)
|
|
||||||
|
|
||||||
#ifndef TRACE_MARK
|
#ifndef TRACE_MARK
|
||||||
#if DEBUG_PRINT
|
#if DEBUG_PRINT
|
||||||
#define TRACE_MARK(block, ptr) DEBUG_printf("gc_mark(%p)\n", ptr)
|
#define TRACE_MARK(block, ptr) DEBUG_printf("gc_mark(%p)\n", ptr)
|
||||||
|
11
py/gc.h
11
py/gc.h
@ -29,8 +29,19 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
|
#include "py/mpstate.h"
|
||||||
#include "py/misc.h"
|
#include "py/misc.h"
|
||||||
|
|
||||||
|
#define WORDS_PER_BLOCK ((MICROPY_BYTES_PER_GC_BLOCK) / BYTES_PER_WORD)
|
||||||
|
#define BYTES_PER_BLOCK (MICROPY_BYTES_PER_GC_BLOCK)
|
||||||
|
|
||||||
|
// ptr should be of type void*
|
||||||
|
#define VERIFY_PTR(ptr) ( \
|
||||||
|
((uintptr_t)(ptr) & (BYTES_PER_BLOCK - 1)) == 0 /* must be aligned on a block */ \
|
||||||
|
&& ptr >= (void*)MP_STATE_MEM(gc_pool_start) /* must be above start of pool */ \
|
||||||
|
&& ptr < (void*)MP_STATE_MEM(gc_pool_end) /* must be below end of pool */ \
|
||||||
|
)
|
||||||
|
|
||||||
void gc_init(void *start, void *end);
|
void gc_init(void *start, void *end);
|
||||||
void gc_deinit(void);
|
void gc_deinit(void);
|
||||||
|
|
||||||
|
@ -126,6 +126,11 @@ mp_obj_t make_obj_long_lived(mp_obj_t obj, uint8_t max_depth){
|
|||||||
if (obj == NULL) {
|
if (obj == NULL) {
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
// If not in the GC pool, do nothing. This can happen (at least) when
|
||||||
|
// there are frozen mp_type_bytes objects in ROM.
|
||||||
|
if (!VERIFY_PTR((void *)obj)) {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
if (MP_OBJ_IS_TYPE(obj, &mp_type_fun_bc)) {
|
if (MP_OBJ_IS_TYPE(obj, &mp_type_fun_bc)) {
|
||||||
mp_obj_fun_bc_t *fun_bc = MP_OBJ_TO_PTR(obj);
|
mp_obj_fun_bc_t *fun_bc = MP_OBJ_TO_PTR(obj);
|
||||||
return MP_OBJ_FROM_PTR(make_fun_bc_long_lived(fun_bc, max_depth));
|
return MP_OBJ_FROM_PTR(make_fun_bc_long_lived(fun_bc, max_depth));
|
||||||
|
@ -117,7 +117,7 @@ STATIC mp_obj_t audiobusio_i2sout_make_new(const mp_obj_type_t *type, size_t n_a
|
|||||||
assert_pin(data_obj, false);
|
assert_pin(data_obj, false);
|
||||||
const mcu_pin_obj_t *data = MP_OBJ_TO_PTR(data_obj);
|
const mcu_pin_obj_t *data = MP_OBJ_TO_PTR(data_obj);
|
||||||
|
|
||||||
audiobusio_i2sout_obj_t *self = m_new_obj(audiobusio_i2sout_obj_t);
|
audiobusio_i2sout_obj_t *self = m_new_obj_with_finaliser(audiobusio_i2sout_obj_t);
|
||||||
self->base.type = &audiobusio_i2sout_type;
|
self->base.type = &audiobusio_i2sout_type;
|
||||||
common_hal_audiobusio_i2sout_construct(self, bit_clock, word_select, data, args[ARG_left_justified].u_bool);
|
common_hal_audiobusio_i2sout_construct(self, bit_clock, word_select, data, args[ARG_left_justified].u_bool);
|
||||||
|
|
||||||
@ -268,6 +268,7 @@ const mp_obj_property_t audiobusio_i2sout_paused_obj = {
|
|||||||
|
|
||||||
STATIC const mp_rom_map_elem_t audiobusio_i2sout_locals_dict_table[] = {
|
STATIC const mp_rom_map_elem_t audiobusio_i2sout_locals_dict_table[] = {
|
||||||
// Methods
|
// Methods
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&audiobusio_i2sout_deinit_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&audiobusio_i2sout_deinit_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&audiobusio_i2sout_deinit_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&audiobusio_i2sout___exit___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&audiobusio_i2sout___exit___obj) },
|
||||||
|
@ -93,6 +93,12 @@ MP_DEFINE_CONST_FUN_OBJ_0(board_spi_obj, board_spi);
|
|||||||
//|
|
//|
|
||||||
//| Returns the `busio.UART` object for the board designated TX and RX pins. It is a singleton.
|
//| Returns the `busio.UART` object for the board designated TX and RX pins. It is a singleton.
|
||||||
//|
|
//|
|
||||||
|
//| The object created uses the default parameter values for `busio.UART`. If you need to set
|
||||||
|
//| parameters that are not changeable after creation, such as ``receiver_buffer_size``,
|
||||||
|
//| do not use `board.UART()`; instead create a `busio.UART` object explicitly with the
|
||||||
|
//| desired parameters.
|
||||||
|
//|
|
||||||
|
//|
|
||||||
#if BOARD_UART
|
#if BOARD_UART
|
||||||
mp_obj_t board_uart(void) {
|
mp_obj_t board_uart(void) {
|
||||||
mp_obj_t singleton = common_hal_board_get_uart();
|
mp_obj_t singleton = common_hal_board_get_uart();
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
//| :param int bits: the number of bits per byte, 7, 8 or 9.
|
//| :param int bits: the number of bits per byte, 7, 8 or 9.
|
||||||
//| :param Parity parity: the parity used for error checking.
|
//| :param Parity parity: the parity used for error checking.
|
||||||
//| :param int stop: the number of stop bits, 1 or 2.
|
//| :param int stop: the number of stop bits, 1 or 2.
|
||||||
//| :param float timeout: the timeout in seconds to wait for the first character and between subsequent characters. Raises ``ValueError`` if timeout >100 seconds.
|
//| :param float timeout: the timeout in seconds to wait for the first character and between subsequent characters when reading. Raises ``ValueError`` if timeout >100 seconds.
|
||||||
//| :param int receiver_buffer_size: the character length of the read buffer (0 to disable). (When a character is 9 bits the buffer will be 2 * receiver_buffer_size bytes.)
|
//| :param int receiver_buffer_size: the character length of the read buffer (0 to disable). (When a character is 9 bits the buffer will be 2 * receiver_buffer_size bytes.)
|
||||||
//|
|
//|
|
||||||
//| *New in CircuitPython 4.0:* ``timeout`` has incompatibly changed units from milliseconds to seconds.
|
//| *New in CircuitPython 4.0:* ``timeout`` has incompatibly changed units from milliseconds to seconds.
|
||||||
@ -69,6 +69,12 @@ typedef struct {
|
|||||||
extern const busio_uart_parity_obj_t busio_uart_parity_even_obj;
|
extern const busio_uart_parity_obj_t busio_uart_parity_even_obj;
|
||||||
extern const busio_uart_parity_obj_t busio_uart_parity_odd_obj;
|
extern const busio_uart_parity_obj_t busio_uart_parity_odd_obj;
|
||||||
|
|
||||||
|
STATIC void validate_timeout(mp_float_t timeout) {
|
||||||
|
if (timeout < (mp_float_t) 0.0f || timeout > (mp_float_t) 100.0f) {
|
||||||
|
mp_raise_ValueError(translate("timeout must be 0.0-100.0 seconds"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
STATIC mp_obj_t busio_uart_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
STATIC mp_obj_t busio_uart_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||||
// Always initially allocate the UART object within the long-lived heap.
|
// Always initially allocate the UART object within the long-lived heap.
|
||||||
// This is needed to avoid crashes with certain UART implementations which
|
// This is needed to avoid crashes with certain UART implementations which
|
||||||
@ -116,9 +122,7 @@ STATIC mp_obj_t busio_uart_make_new(const mp_obj_type_t *type, size_t n_args, co
|
|||||||
}
|
}
|
||||||
|
|
||||||
mp_float_t timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
mp_float_t timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
if (timeout > (mp_float_t)100.0) {
|
validate_timeout(timeout);
|
||||||
mp_raise_ValueError(translate("timeout >100 (units are now seconds, not msecs)"));
|
|
||||||
}
|
|
||||||
|
|
||||||
common_hal_busio_uart_construct(self, tx, rx,
|
common_hal_busio_uart_construct(self, tx, rx,
|
||||||
args[ARG_baudrate].u_int, bits, parity, stop, timeout,
|
args[ARG_baudrate].u_int, bits, parity, stop, timeout,
|
||||||
@ -286,6 +290,35 @@ const mp_obj_property_t busio_uart_in_waiting_obj = {
|
|||||||
(mp_obj_t)&mp_const_none_obj},
|
(mp_obj_t)&mp_const_none_obj},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//| .. attribute:: timeout
|
||||||
|
//|
|
||||||
|
//| The current timeout, in seconds (float).
|
||||||
|
//|
|
||||||
|
STATIC mp_obj_t busio_uart_obj_get_timeout(mp_obj_t self_in) {
|
||||||
|
busio_uart_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
|
check_for_deinit(self);
|
||||||
|
return mp_obj_new_float(common_hal_busio_uart_get_timeout(self));
|
||||||
|
}
|
||||||
|
MP_DEFINE_CONST_FUN_OBJ_1(busio_uart_get_timeout_obj, busio_uart_obj_get_timeout);
|
||||||
|
|
||||||
|
STATIC mp_obj_t busio_uart_obj_set_timeout(mp_obj_t self_in, mp_obj_t timeout) {
|
||||||
|
busio_uart_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
|
check_for_deinit(self);
|
||||||
|
mp_float_t timeout_float = mp_obj_get_float(timeout);
|
||||||
|
validate_timeout(timeout_float);
|
||||||
|
common_hal_busio_uart_set_timeout(self, timeout_float);
|
||||||
|
return mp_const_none;
|
||||||
|
}
|
||||||
|
MP_DEFINE_CONST_FUN_OBJ_2(busio_uart_set_timeout_obj, busio_uart_obj_set_timeout);
|
||||||
|
|
||||||
|
|
||||||
|
const mp_obj_property_t busio_uart_timeout_obj = {
|
||||||
|
.base.type = &mp_type_property,
|
||||||
|
.proxy = {(mp_obj_t)&busio_uart_get_timeout_obj,
|
||||||
|
(mp_obj_t)&busio_uart_set_timeout_obj,
|
||||||
|
(mp_obj_t)&mp_const_none_obj},
|
||||||
|
};
|
||||||
|
|
||||||
//| .. method:: reset_input_buffer()
|
//| .. method:: reset_input_buffer()
|
||||||
//|
|
//|
|
||||||
//| Discard any unread characters in the input buffer.
|
//| Discard any unread characters in the input buffer.
|
||||||
@ -355,8 +388,9 @@ STATIC const mp_rom_map_elem_t busio_uart_locals_dict_table[] = {
|
|||||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_reset_input_buffer), MP_ROM_PTR(&busio_uart_reset_input_buffer_obj) },
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_reset_input_buffer), MP_ROM_PTR(&busio_uart_reset_input_buffer_obj) },
|
||||||
|
|
||||||
// Properties
|
// Properties
|
||||||
{ MP_ROM_QSTR(MP_QSTR_baudrate), MP_ROM_PTR(&busio_uart_baudrate_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_baudrate), MP_ROM_PTR(&busio_uart_baudrate_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_in_waiting), MP_ROM_PTR(&busio_uart_in_waiting_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_in_waiting), MP_ROM_PTR(&busio_uart_in_waiting_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_timeout), MP_ROM_PTR(&busio_uart_timeout_obj) },
|
||||||
|
|
||||||
// Nested Enum-like Classes.
|
// Nested Enum-like Classes.
|
||||||
{ MP_ROM_QSTR(MP_QSTR_Parity), MP_ROM_PTR(&busio_uart_parity_type) },
|
{ MP_ROM_QSTR(MP_QSTR_Parity), MP_ROM_PTR(&busio_uart_parity_type) },
|
||||||
|
@ -57,7 +57,8 @@ extern size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
|
|||||||
|
|
||||||
extern uint32_t common_hal_busio_uart_get_baudrate(busio_uart_obj_t *self);
|
extern uint32_t common_hal_busio_uart_get_baudrate(busio_uart_obj_t *self);
|
||||||
extern void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrate);
|
extern void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrate);
|
||||||
|
extern mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self);
|
||||||
|
extern void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout);
|
||||||
|
|
||||||
extern uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self);
|
extern uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self);
|
||||||
extern void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self);
|
extern void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self);
|
||||||
|
@ -85,9 +85,9 @@ MP_DEFINE_CONST_FUN_OBJ_1(time_sleep_obj, time_sleep);
|
|||||||
#if MICROPY_PY_COLLECTIONS
|
#if MICROPY_PY_COLLECTIONS
|
||||||
mp_obj_t struct_time_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
mp_obj_t struct_time_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
||||||
if (n_args != 1 || (kw_args != NULL && kw_args->used > 0)) {
|
if (n_args != 1 || (kw_args != NULL && kw_args->used > 0)) {
|
||||||
mp_raise_TypeError(translate("time.struct_time() takes exactly 1 argument"));
|
return namedtuple_make_new(type, n_args, args, kw_args);
|
||||||
}
|
}
|
||||||
if (!MP_OBJ_IS_TYPE(args[0], &mp_type_tuple) || ((mp_obj_tuple_t*) MP_OBJ_TO_PTR(args[0]))->len != 9) {
|
if (mp_obj_get_type(args[0])->getiter != mp_obj_tuple_getiter || ((mp_obj_tuple_t*) MP_OBJ_TO_PTR(args[0]))->len != 9) {
|
||||||
mp_raise_TypeError(translate("time.struct_time() takes a 9-sequence"));
|
mp_raise_TypeError(translate("time.struct_time() takes a 9-sequence"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ mp_obj_t common_hal_board_create_uart(void) {
|
|||||||
const mcu_pin_obj_t* rx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_RX);
|
const mcu_pin_obj_t* rx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_RX);
|
||||||
const mcu_pin_obj_t* tx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_TX);
|
const mcu_pin_obj_t* tx = MP_OBJ_TO_PTR(DEFAULT_UART_BUS_TX);
|
||||||
|
|
||||||
common_hal_busio_uart_construct(self, tx, rx, 9600, 8, PARITY_NONE, 1, 1000, 64);
|
common_hal_busio_uart_construct(self, tx, rx, 9600, 8, PARITY_NONE, 1, 1.0f, 64);
|
||||||
MP_STATE_VM(shared_uart_bus) = MP_OBJ_FROM_PTR(self);
|
MP_STATE_VM(shared_uart_bus) = MP_OBJ_FROM_PTR(self);
|
||||||
return MP_STATE_VM(shared_uart_bus);
|
return MP_STATE_VM(shared_uart_bus);
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include "shared-bindings/displayio/EPaperDisplay.h"
|
#include "shared-bindings/displayio/EPaperDisplay.h"
|
||||||
|
|
||||||
|
#include "py/gc.h"
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
#include "shared-bindings/displayio/ColorConverter.h"
|
#include "shared-bindings/displayio/ColorConverter.h"
|
||||||
#include "shared-bindings/displayio/FourWire.h"
|
#include "shared-bindings/displayio/FourWire.h"
|
||||||
@ -298,7 +299,7 @@ bool displayio_epaperdisplay_refresh_area(displayio_epaperdisplay_obj_t* self, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool common_hal_displayio_epaperdisplay_refresh(displayio_epaperdisplay_obj_t* self) {
|
bool common_hal_displayio_epaperdisplay_refresh(displayio_epaperdisplay_obj_t* self) {
|
||||||
|
|
||||||
if (self->refreshing && self->busy.base.type == &digitalio_digitalinout_type) {
|
if (self->refreshing && self->busy.base.type == &digitalio_digitalinout_type) {
|
||||||
if (common_hal_digitalio_digitalinout_get_value(&self->busy) != self->busy_state) {
|
if (common_hal_digitalio_digitalinout_get_value(&self->busy) != self->busy_state) {
|
||||||
self->refreshing = false;
|
self->refreshing = false;
|
||||||
@ -365,6 +366,8 @@ void release_epaperdisplay(displayio_epaperdisplay_obj_t* self) {
|
|||||||
|
|
||||||
void displayio_epaperdisplay_collect_ptrs(displayio_epaperdisplay_obj_t* self) {
|
void displayio_epaperdisplay_collect_ptrs(displayio_epaperdisplay_obj_t* self) {
|
||||||
displayio_display_core_collect_ptrs(&self->core);
|
displayio_display_core_collect_ptrs(&self->core);
|
||||||
|
gc_collect_ptr(self->start_sequence);
|
||||||
|
gc_collect_ptr(self->stop_sequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool maybe_refresh_epaperdisplay(void) {
|
bool maybe_refresh_epaperdisplay(void) {
|
||||||
|
@ -69,6 +69,19 @@ static void make_empty_file(FATFS *fatfs, const char *path) {
|
|||||||
f_close(&fp);
|
f_close(&fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void make_sample_code_file(FATFS *fatfs) {
|
||||||
|
#if CIRCUITPY_FULL_BUILD
|
||||||
|
FIL fs;
|
||||||
|
UINT char_written = 0;
|
||||||
|
const byte buffer[] = "print('Hello World!')\n";
|
||||||
|
//Create or modify existing code.py file
|
||||||
|
f_open(fatfs, &fs, "/code.py", FA_WRITE | FA_CREATE_ALWAYS);
|
||||||
|
f_write(&fs, buffer, sizeof(buffer) - 1, &char_written);
|
||||||
|
f_close(&fs);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// we don't make this function static because it needs a lot of stack and we
|
// we don't make this function static because it needs a lot of stack and we
|
||||||
// want it to be executed without using stack within main() function
|
// want it to be executed without using stack within main() function
|
||||||
void filesystem_init(bool create_allowed, bool force_create) {
|
void filesystem_init(bool create_allowed, bool force_create) {
|
||||||
@ -98,6 +111,8 @@ void filesystem_init(bool create_allowed, bool force_create) {
|
|||||||
make_empty_file(&vfs_fat->fatfs, "/.metadata_never_index");
|
make_empty_file(&vfs_fat->fatfs, "/.metadata_never_index");
|
||||||
make_empty_file(&vfs_fat->fatfs, "/.Trashes");
|
make_empty_file(&vfs_fat->fatfs, "/.Trashes");
|
||||||
make_empty_file(&vfs_fat->fatfs, "/.fseventsd/no_log");
|
make_empty_file(&vfs_fat->fatfs, "/.fseventsd/no_log");
|
||||||
|
// make a sample code.py file
|
||||||
|
make_sample_code_file(&vfs_fat->fatfs);
|
||||||
|
|
||||||
// create empty lib directory
|
// create empty lib directory
|
||||||
f_mkdir(&vfs_fat->fatfs, "/lib");
|
f_mkdir(&vfs_fat->fatfs, "/lib");
|
||||||
|
Loading…
Reference in New Issue
Block a user