Merge branch 'main' into recv_into_size_check
This commit is contained in:
commit
8e6d3e5b91
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
|||||||
- name: CircuitPython version
|
- name: CircuitPython version
|
||||||
run: |
|
run: |
|
||||||
git describe --dirty --tags
|
git describe --dirty --tags
|
||||||
echo "::set-env name=CP_VERSION::$(git describe --dirty --tags)"
|
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
@ -132,7 +132,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
brew install gettext awscli
|
brew install gettext awscli
|
||||||
echo "::set-env name=PATH::/usr/local/opt/gettext/bin:$PATH"
|
echo >>$GITHUB_PATH /usr/local/opt/gettext/bin
|
||||||
- name: Versions
|
- name: Versions
|
||||||
run: |
|
run: |
|
||||||
gcc --version
|
gcc --version
|
||||||
@ -146,7 +146,7 @@ jobs:
|
|||||||
- name: CircuitPython version
|
- name: CircuitPython version
|
||||||
run: |
|
run: |
|
||||||
git describe --dirty --tags
|
git describe --dirty --tags
|
||||||
echo "::set-env name=CP_VERSION::$(git describe --dirty --tags)"
|
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
|
||||||
- name: Build mpy-cross
|
- name: Build mpy-cross
|
||||||
run: make -C mpy-cross -j2
|
run: make -C mpy-cross -j2
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
@ -180,6 +180,7 @@ jobs:
|
|||||||
- "arduino_zero"
|
- "arduino_zero"
|
||||||
- "bast_pro_mini_m0"
|
- "bast_pro_mini_m0"
|
||||||
- "bdmicro_vina_d21"
|
- "bdmicro_vina_d21"
|
||||||
|
- "bdmicro_vina_d51"
|
||||||
- "bless_dev_board_multi_sensor"
|
- "bless_dev_board_multi_sensor"
|
||||||
- "blm_badge"
|
- "blm_badge"
|
||||||
- "capablerobot_usbhub"
|
- "capablerobot_usbhub"
|
||||||
@ -197,6 +198,8 @@ jobs:
|
|||||||
- "datum_imu"
|
- "datum_imu"
|
||||||
- "datum_light"
|
- "datum_light"
|
||||||
- "datum_weather"
|
- "datum_weather"
|
||||||
|
- "dynossat_edu_eps"
|
||||||
|
- "dynossat_edu_obc"
|
||||||
- "electronut_labs_blip"
|
- "electronut_labs_blip"
|
||||||
- "electronut_labs_papyr"
|
- "electronut_labs_papyr"
|
||||||
- "escornabot_makech"
|
- "escornabot_makech"
|
||||||
@ -243,6 +246,7 @@ jobs:
|
|||||||
- "metro_m0_express"
|
- "metro_m0_express"
|
||||||
- "metro_m4_airlift_lite"
|
- "metro_m4_airlift_lite"
|
||||||
- "metro_m4_express"
|
- "metro_m4_express"
|
||||||
|
- "metro_m7_1011"
|
||||||
- "metro_nrf52840_express"
|
- "metro_nrf52840_express"
|
||||||
- "mini_sam_m4"
|
- "mini_sam_m4"
|
||||||
- "monster_m4sk"
|
- "monster_m4sk"
|
||||||
|
2
.github/workflows/pre-commit.yml
vendored
2
.github/workflows/pre-commit.yml
vendored
@ -16,7 +16,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- uses: actions/setup-python@v1
|
- uses: actions/setup-python@v1
|
||||||
- name: set PY
|
- name: set PY
|
||||||
run: echo "::set-env name=PY::$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
|
run: echo >>$GITHUB_ENV PY="$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
|
||||||
- uses: actions/cache@v1
|
- uses: actions/cache@v1
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pre-commit
|
path: ~/.cache/pre-commit
|
||||||
|
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -152,4 +152,4 @@
|
|||||||
url = https://github.com/adafruit/Adafruit_CircuitPython_RFM69.git
|
url = https://github.com/adafruit/Adafruit_CircuitPython_RFM69.git
|
||||||
[submodule "ports/esp32s2/esp-idf"]
|
[submodule "ports/esp32s2/esp-idf"]
|
||||||
path = ports/esp32s2/esp-idf
|
path = ports/esp32s2/esp-idf
|
||||||
url = https://github.com/hierophect/esp-idf.git
|
url = https://github.com/espressif/esp-idf.git
|
||||||
|
@ -45,7 +45,6 @@
|
|||||||
#include "shared-bindings/_bleio/Address.h"
|
#include "shared-bindings/_bleio/Address.h"
|
||||||
#include "shared-bindings/_bleio/Characteristic.h"
|
#include "shared-bindings/_bleio/Characteristic.h"
|
||||||
#include "shared-bindings/_bleio/Service.h"
|
#include "shared-bindings/_bleio/Service.h"
|
||||||
#include "shared-bindings/nvm/ByteArray.h"
|
|
||||||
#include "shared-bindings/_bleio/Connection.h"
|
#include "shared-bindings/_bleio/Connection.h"
|
||||||
#include "shared-bindings/_bleio/ScanEntry.h"
|
#include "shared-bindings/_bleio/ScanEntry.h"
|
||||||
#include "shared-bindings/time/__init__.h"
|
#include "shared-bindings/time/__init__.h"
|
||||||
|
@ -98,7 +98,7 @@ bleio_adapter_obj_t *common_hal_bleio_allocate_adapter_or_raise(void) {
|
|||||||
|
|
||||||
void common_hal_bleio_check_connected(uint16_t conn_handle) {
|
void common_hal_bleio_check_connected(uint16_t conn_handle) {
|
||||||
if (conn_handle == BLE_CONN_HANDLE_INVALID) {
|
if (conn_handle == BLE_CONN_HANDLE_INVALID) {
|
||||||
mp_raise_bleio_ConnectionError(translate("Not connected"));
|
mp_raise_ConnectionError(translate("Not connected"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
// for __packed
|
// for __packed
|
||||||
#include <string.h>
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
#define BT_EATT_PSM 0x27
|
#define BT_EATT_PSM 0x27
|
||||||
#define BT_ATT_DEFAULT_LE_MTU 23
|
#define BT_ATT_DEFAULT_LE_MTU 23
|
||||||
|
@ -12,10 +12,15 @@
|
|||||||
#define ZEPHYR_INCLUDE_BLUETOOTH_HCI_H_
|
#define ZEPHYR_INCLUDE_BLUETOOTH_HCI_H_
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <string.h>
|
// for __packed
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
#include "addr.h"
|
#include "addr.h"
|
||||||
|
|
||||||
|
// ESP32S2 build environment defines this already.
|
||||||
|
#ifndef BIT
|
||||||
#define BIT(n) (1UL << (n))
|
#define BIT(n) (1UL << (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Special own address types for LL privacy (used in adv & scan parameters) */
|
/* Special own address types for LL privacy (used in adv & scan parameters) */
|
||||||
#define BT_HCI_OWN_ADDR_RPA_OR_PUBLIC 0x02
|
#define BT_HCI_OWN_ADDR_RPA_OR_PUBLIC 0x02
|
||||||
|
@ -123,7 +123,7 @@ DRESULT disk_write (
|
|||||||
|
|
||||||
DRESULT disk_ioctl (
|
DRESULT disk_ioctl (
|
||||||
bdev_t pdrv, /* Physical drive nmuber (0..) */
|
bdev_t pdrv, /* Physical drive nmuber (0..) */
|
||||||
BYTE cmd, /* Control code */
|
BYTE cmd, /* Control code */
|
||||||
void *buff /* Buffer to send/receive control data */
|
void *buff /* Buffer to send/receive control data */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -133,7 +133,7 @@ DRESULT disk_ioctl (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// First part: call the relevant method of the underlying block device
|
// First part: call the relevant method of the underlying block device
|
||||||
mp_obj_t ret = mp_const_none;
|
mp_int_t out_value = 0;
|
||||||
if (vfs->flags & FSUSER_HAVE_IOCTL) {
|
if (vfs->flags & FSUSER_HAVE_IOCTL) {
|
||||||
// new protocol with ioctl
|
// new protocol with ioctl
|
||||||
static const uint8_t op_map[8] = {
|
static const uint8_t op_map[8] = {
|
||||||
@ -144,9 +144,19 @@ DRESULT disk_ioctl (
|
|||||||
};
|
};
|
||||||
uint8_t bp_op = op_map[cmd & 7];
|
uint8_t bp_op = op_map[cmd & 7];
|
||||||
if (bp_op != 0) {
|
if (bp_op != 0) {
|
||||||
vfs->u.ioctl[2] = MP_OBJ_NEW_SMALL_INT(bp_op);
|
if (vfs->flags & FSUSER_NATIVE) {
|
||||||
vfs->u.ioctl[3] = MP_OBJ_NEW_SMALL_INT(0); // unused
|
bool (*f)(size_t, mp_int_t*) = (void*)(uintptr_t)vfs->u.ioctl[2];
|
||||||
ret = mp_call_method_n_kw(2, 0, vfs->u.ioctl);
|
if (!f(bp_op, (mp_int_t*) &out_value)) {
|
||||||
|
return RES_ERROR;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
vfs->u.ioctl[2] = MP_OBJ_NEW_SMALL_INT(bp_op);
|
||||||
|
vfs->u.ioctl[3] = MP_OBJ_NEW_SMALL_INT(0); // unused
|
||||||
|
mp_obj_t ret = mp_call_method_n_kw(2, 0, vfs->u.ioctl);
|
||||||
|
if (ret != mp_const_none) {
|
||||||
|
out_value = mp_obj_get_int(ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// old protocol with sync and count
|
// old protocol with sync and count
|
||||||
@ -157,10 +167,13 @@ DRESULT disk_ioctl (
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GET_SECTOR_COUNT:
|
case GET_SECTOR_COUNT: {
|
||||||
ret = mp_call_method_n_kw(0, 0, vfs->u.old.count);
|
mp_obj_t ret = mp_call_method_n_kw(0, 0, vfs->u.old.count);
|
||||||
|
if (ret != mp_const_none) {
|
||||||
|
out_value = mp_obj_get_int(ret);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case GET_SECTOR_SIZE:
|
case GET_SECTOR_SIZE:
|
||||||
// old protocol has fixed sector size of 512 bytes
|
// old protocol has fixed sector size of 512 bytes
|
||||||
break;
|
break;
|
||||||
@ -177,16 +190,16 @@ DRESULT disk_ioctl (
|
|||||||
return RES_OK;
|
return RES_OK;
|
||||||
|
|
||||||
case GET_SECTOR_COUNT: {
|
case GET_SECTOR_COUNT: {
|
||||||
*((DWORD*)buff) = mp_obj_get_int(ret);
|
*((DWORD*)buff) = out_value;
|
||||||
return RES_OK;
|
return RES_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
case GET_SECTOR_SIZE: {
|
case GET_SECTOR_SIZE: {
|
||||||
if (ret == mp_const_none) {
|
if (out_value == 0) {
|
||||||
// Default sector size
|
// Default sector size
|
||||||
*((WORD*)buff) = 512;
|
*((WORD*)buff) = 512;
|
||||||
} else {
|
} else {
|
||||||
*((WORD*)buff) = mp_obj_get_int(ret);
|
*((WORD*)buff) = out_value;
|
||||||
}
|
}
|
||||||
#if _MAX_SS != _MIN_SS
|
#if _MAX_SS != _MIN_SS
|
||||||
// need to store ssize because we use it in disk_read/disk_write
|
// need to store ssize because we use it in disk_read/disk_write
|
||||||
@ -202,7 +215,7 @@ DRESULT disk_ioctl (
|
|||||||
case IOCTL_INIT:
|
case IOCTL_INIT:
|
||||||
case IOCTL_STATUS: {
|
case IOCTL_STATUS: {
|
||||||
DSTATUS stat;
|
DSTATUS stat;
|
||||||
if (ret != mp_const_none && MP_OBJ_SMALL_INT_VALUE(ret) != 0) {
|
if (out_value != 0) {
|
||||||
// error initialising
|
// error initialising
|
||||||
stat = STA_NOINIT;
|
stat = STA_NOINIT;
|
||||||
} else if (vfs->writeblocks[0] == MP_OBJ_NULL) {
|
} else if (vfs->writeblocks[0] == MP_OBJ_NULL) {
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 5f07ec6188852794a94138763e612844842f13e4
|
Subproject commit de6b7704c530d886ad8dfa0fa1864764d86117ee
|
160
locale/ID.po
160
locale/ID.po
@ -5,8 +5,8 @@ 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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-07-06 18:10+0000\n"
|
"PO-Revision-Date: 2020-10-10 23:51+0000\n"
|
||||||
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
|
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: ID\n"
|
"Language: ID\n"
|
||||||
@ -14,7 +14,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.2-dev\n"
|
"X-Generator: Weblate 4.3-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -250,6 +250,10 @@ msgstr "'label' membutuhkan 1 argumen"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' diluar fungsi"
|
msgstr "'return' diluar fungsi"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' diluar fungsi"
|
msgstr "'yield' diluar fungsi"
|
||||||
@ -275,6 +279,10 @@ msgstr "pow() 3-arg tidak didukung"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Sebuah channel hardware interrupt sedang digunakan"
|
msgstr "Sebuah channel hardware interrupt sedang digunakan"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -289,6 +297,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Semua perangkat I2C sedang digunakan"
|
msgstr "Semua perangkat I2C sedang digunakan"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -910,6 +919,7 @@ msgid "File exists"
|
|||||||
msgstr "File sudah ada"
|
msgstr "File sudah ada"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -947,7 +957,8 @@ msgid "Group full"
|
|||||||
msgstr "Grup penuh"
|
msgstr "Grup penuh"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Perangkat keras sibuk, coba pin alternatif"
|
msgstr "Perangkat keras sibuk, coba pin alternatif"
|
||||||
|
|
||||||
@ -955,6 +966,10 @@ msgstr "Perangkat keras sibuk, coba pin alternatif"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Perangkat keras sedang digunakan, coba pin alternatif"
|
msgstr "Perangkat keras sedang digunakan, coba pin alternatif"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "operasi I/O pada file tertutup"
|
msgstr "operasi I/O pada file tertutup"
|
||||||
@ -1019,7 +1034,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "%q pada tidak valid"
|
msgstr "%q pada tidak valid"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1035,6 +1051,7 @@ msgstr "File BMP tidak valid"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Pin DAC yang diberikan tidak valid"
|
msgstr "Pin DAC yang diberikan tidak valid"
|
||||||
@ -1218,32 +1235,32 @@ msgstr "Kesalahan fatal MicroPython."
|
|||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Microphone startup delay must be in range 0.0 to 1.0"
|
msgid "Microphone startup delay must be in range 0.0 to 1.0"
|
||||||
msgstr ""
|
msgstr "Penundaan mulai mikrofon harus dalam kisaran 0,0 hingga 1,0"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
|
||||||
msgid "Missing MISO or MOSI Pin"
|
msgid "Missing MISO or MOSI Pin"
|
||||||
msgstr ""
|
msgstr "Tidak menemukan Pin MISO atau MOSI"
|
||||||
|
|
||||||
#: shared-bindings/displayio/Group.c
|
#: shared-bindings/displayio/Group.c
|
||||||
msgid "Must be a %q subclass."
|
msgid "Must be a %q subclass."
|
||||||
msgstr ""
|
msgstr "Harus berupa subclass %q."
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c shared-bindings/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c shared-bindings/busio/SPI.c
|
||||||
msgid "Must provide MISO or MOSI pin"
|
msgid "Must provide MISO or MOSI pin"
|
||||||
msgstr ""
|
msgstr "Harus menyediakan pin MISO atau MOSI"
|
||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Must use a multiple of 6 rgb pins, not %d"
|
msgid "Must use a multiple of 6 rgb pins, not %d"
|
||||||
msgstr ""
|
msgstr "Harus menggunakan kelipatan 6 pin rgb, bukan %d"
|
||||||
|
|
||||||
#: py/parse.c
|
#: py/parse.c
|
||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr "Nama terlalu panjang"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr "Tidak ada CCCD untuk Karakteristik ini"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
@ -1258,12 +1275,12 @@ msgstr "tidak ada channel DMA ditemukan"
|
|||||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/esp32s2/common-hal/busio/SPI.c ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/SPI.c
|
||||||
msgid "No MISO Pin"
|
msgid "No MISO Pin"
|
||||||
msgstr ""
|
msgstr "Tidak ada Pin MISO"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/esp32s2/common-hal/busio/SPI.c ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/SPI.c
|
||||||
msgid "No MOSI Pin"
|
msgid "No MOSI Pin"
|
||||||
msgstr ""
|
msgstr "Tidak ada Pin MOSI"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/esp32s2/common-hal/busio/UART.c
|
#: ports/esp32s2/common-hal/busio/UART.c
|
||||||
@ -1281,11 +1298,11 @@ msgstr "Tidak ada pin TX"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
msgid "No available clocks"
|
msgid "No available clocks"
|
||||||
msgstr ""
|
msgstr "Tidak ada clocks yang tersedia"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/PacketBuffer.c
|
#: shared-bindings/_bleio/PacketBuffer.c
|
||||||
msgid "No connection: length cannot be determined"
|
msgid "No connection: length cannot be determined"
|
||||||
msgstr ""
|
msgstr "Tidak ada koneksi: panjang tidak dapat ditentukan"
|
||||||
|
|
||||||
#: shared-bindings/board/__init__.c
|
#: shared-bindings/board/__init__.c
|
||||||
msgid "No default %q bus"
|
msgid "No default %q bus"
|
||||||
@ -1297,11 +1314,11 @@ msgstr "Tidak ada GCLK yang kosong"
|
|||||||
|
|
||||||
#: shared-bindings/os/__init__.c
|
#: shared-bindings/os/__init__.c
|
||||||
msgid "No hardware random available"
|
msgid "No hardware random available"
|
||||||
msgstr ""
|
msgstr "Tidak ada perangkat keras acak yang tersedia"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
||||||
msgid "No hardware support on clk pin"
|
msgid "No hardware support on clk pin"
|
||||||
msgstr ""
|
msgstr "Tidak ada dukungan perangkat keras pada pin clk"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -1310,11 +1327,11 @@ msgstr "Tidak ada dukungan hardware untuk pin"
|
|||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "No key was specified"
|
msgid "No key was specified"
|
||||||
msgstr ""
|
msgstr "Tidak ada kunci yang ditentukan"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
#: shared-bindings/time/__init__.c
|
||||||
msgid "No long integer support"
|
msgid "No long integer support"
|
||||||
msgstr ""
|
msgstr "Tidak ada dukungan bilangan bulat yang panjang"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more channels available"
|
msgid "No more channels available"
|
||||||
@ -1326,7 +1343,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more timers available on this pin."
|
msgid "No more timers available on this pin."
|
||||||
msgstr ""
|
msgstr "Tidak ada lagi penghitung waktu yang tersedia pada pin ini."
|
||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "No network with that ssid"
|
msgid "No network with that ssid"
|
||||||
@ -1334,23 +1351,23 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-module/touchio/TouchIn.c
|
#: shared-module/touchio/TouchIn.c
|
||||||
msgid "No pulldown on pin; 1Mohm recommended"
|
msgid "No pulldown on pin; 1Mohm recommended"
|
||||||
msgstr ""
|
msgstr "Tidak ada pull-down pada pin; 1Mohm direkomendasikan"
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "No space left on device"
|
msgid "No space left on device"
|
||||||
msgstr ""
|
msgstr "Tidak ada ruang yang tersisa di perangkat"
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "No such file/directory"
|
msgid "No such file/directory"
|
||||||
msgstr ""
|
msgstr "Tidak ada file/direktori"
|
||||||
|
|
||||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||||
msgid "No timer available"
|
msgid "No timer available"
|
||||||
msgstr ""
|
msgstr "Penghitung waktu tidak tersedia"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Nordic Soft Device failure assertion."
|
msgid "Nordic Soft Device failure assertion."
|
||||||
msgstr ""
|
msgstr "Pernyataan kegagalan Perangkat Lunak Nordic."
|
||||||
|
|
||||||
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
||||||
msgid "Not a valid IP string"
|
msgid "Not a valid IP string"
|
||||||
@ -1365,7 +1382,7 @@ msgstr "Tidak dapat menyambungkan ke AP"
|
|||||||
#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c
|
#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c
|
||||||
#: shared-bindings/audiopwmio/PWMAudioOut.c
|
#: shared-bindings/audiopwmio/PWMAudioOut.c
|
||||||
msgid "Not playing"
|
msgid "Not playing"
|
||||||
msgstr ""
|
msgstr "Tidak berfungsi"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Not running saved code.\n"
|
msgid "Not running saved code.\n"
|
||||||
@ -1379,6 +1396,7 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Object has been deinitialized and can no longer be used. Create a new object."
|
"Object has been deinitialized and can no longer be used. Create a new object."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Objek telah dideinisialisasi dan tidak dapat lagi digunakan. Buat objek baru."
|
||||||
|
|
||||||
#: ports/nrf/common-hal/busio/UART.c
|
#: ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Odd parity is not supported"
|
msgid "Odd parity is not supported"
|
||||||
@ -1401,6 +1419,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Only Windows format, uncompressed BMP supported: given header size is %d"
|
"Only Windows format, uncompressed BMP supported: given header size is %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hanya format Windows, mendukung BMP tidak dikompresi: ukuran header yang "
|
||||||
|
"diberikan adalah %d"
|
||||||
|
|
||||||
#: shared-module/displayio/OnDiskBitmap.c
|
#: shared-module/displayio/OnDiskBitmap.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1408,6 +1428,8 @@ msgid ""
|
|||||||
"Only monochrome, indexed 4bpp or 8bpp, and 16bpp or greater BMPs supported: "
|
"Only monochrome, indexed 4bpp or 8bpp, and 16bpp or greater BMPs supported: "
|
||||||
"%d bpp given"
|
"%d bpp given"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hanya monokrom, 4bpp atau 8bpp yang diindeks, dan 16bpp atau lebih yang "
|
||||||
|
"didukung: %d bpp diberikan"
|
||||||
|
|
||||||
#: shared-bindings/ipaddress/__init__.c
|
#: shared-bindings/ipaddress/__init__.c
|
||||||
msgid "Only raw int supported for ip"
|
msgid "Only raw int supported for ip"
|
||||||
@ -1419,30 +1441,33 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Oversample must be multiple of 8."
|
msgid "Oversample must be multiple of 8."
|
||||||
msgstr ""
|
msgstr "Sampel berlebihan harus kelipatan 8."
|
||||||
|
|
||||||
#: shared-bindings/pwmio/PWMOut.c
|
#: shared-bindings/pwmio/PWMOut.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
|
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
|
||||||
msgstr ""
|
msgstr "PWM duty_cycle harus antara 0 dan 65535 inklusif (resolusi 16 bit)"
|
||||||
|
|
||||||
#: shared-bindings/pwmio/PWMOut.c
|
#: shared-bindings/pwmio/PWMOut.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"PWM frequency not writable when variable_frequency is False on construction."
|
"PWM frequency not writable when variable_frequency is False on construction."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Frekuensi PWM tidak dapat ditulis ketika variabel_frequency Salah pada "
|
||||||
|
"konstruksi."
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
|
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
|
||||||
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
|
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
|
||||||
#: ports/stm/common-hal/displayio/ParallelBus.c
|
#: ports/stm/common-hal/displayio/ParallelBus.c
|
||||||
msgid "ParallelBus not yet supported"
|
msgid "ParallelBus not yet supported"
|
||||||
msgstr ""
|
msgstr "ParallelBus belum didukung"
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "Permission denied"
|
msgid "Permission denied"
|
||||||
msgstr ""
|
msgstr "Izin ditolak"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -1455,11 +1480,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr "Pin harus mendukung interupsi perangkat keras"
|
||||||
|
|
||||||
#: ports/stm/common-hal/pulseio/PulseIn.c
|
#: ports/stm/common-hal/pulseio/PulseIn.c
|
||||||
msgid "Pin number already reserved by EXTI"
|
msgid "Pin number already reserved by EXTI"
|
||||||
msgstr ""
|
msgstr "Nomor pin sudah dipesan oleh EXTI"
|
||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1468,6 +1493,9 @@ msgid ""
|
|||||||
"bytes. If this cannot be avoided, pass allow_inefficient=True to the "
|
"bytes. If this cannot be avoided, pass allow_inefficient=True to the "
|
||||||
"constructor"
|
"constructor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Pinout menggunakan %d byte per elemen, yang mengonsumsi lebih dari %d byte "
|
||||||
|
"ideal. Jika ini tidak dapat dihindari, berikan allow_inefficient=True ke "
|
||||||
|
"konstruktor"
|
||||||
|
|
||||||
#: py/builtinhelp.c
|
#: py/builtinhelp.c
|
||||||
msgid "Plus any modules on the filesystem\n"
|
msgid "Plus any modules on the filesystem\n"
|
||||||
@ -1494,7 +1522,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Prefix buffer must be on the heap"
|
msgid "Prefix buffer must be on the heap"
|
||||||
msgstr ""
|
msgstr "Buffer awalan harus ada di heap"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||||
@ -1504,43 +1532,43 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/digitalio/DigitalInOut.c
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
msgid "Pull not used when direction is output."
|
msgid "Pull not used when direction is output."
|
||||||
msgstr ""
|
msgstr "Pull tidak digunakan saat arah output."
|
||||||
|
|
||||||
#: ports/stm/common-hal/os/__init__.c
|
#: ports/stm/common-hal/os/__init__.c
|
||||||
msgid "RNG DeInit Error"
|
msgid "RNG DeInit Error"
|
||||||
msgstr ""
|
msgstr "Kesalahan DeInit RNG"
|
||||||
|
|
||||||
#: ports/stm/common-hal/os/__init__.c
|
#: ports/stm/common-hal/os/__init__.c
|
||||||
msgid "RNG Init Error"
|
msgid "RNG Init Error"
|
||||||
msgstr ""
|
msgstr "Kesalahan Init RNG"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/UART.c
|
#: ports/esp32s2/common-hal/busio/UART.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
||||||
msgid "RS485 inversion specified when not in RS485 mode"
|
msgid "RS485 inversion specified when not in RS485 mode"
|
||||||
msgstr ""
|
msgstr "Pembalikan RS485 ditentukan saat tidak dalam mode RS485"
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
|
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
|
||||||
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
|
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
|
||||||
msgid "RTC calibration is not supported on this board"
|
msgid "RTC calibration is not supported on this board"
|
||||||
msgstr ""
|
msgstr "Kalibrasi RTC tidak didukung pada board ini"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
#: shared-bindings/time/__init__.c
|
||||||
msgid "RTC is not supported on this board"
|
msgid "RTC is not supported on this board"
|
||||||
msgstr ""
|
msgstr "RTC tidak didukung di board ini"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||||
msgid "RTS/CTS/RS485 Not yet supported on this device"
|
msgid "RTS/CTS/RS485 Not yet supported on this device"
|
||||||
msgstr ""
|
msgstr "RTS/CTS/RS485 Belum didukung pada perangkat ini"
|
||||||
|
|
||||||
#: ports/stm/common-hal/os/__init__.c
|
#: ports/stm/common-hal/os/__init__.c
|
||||||
msgid "Random number generation error"
|
msgid "Random number generation error"
|
||||||
msgstr ""
|
msgstr "Kesalahan pembuatan nomor acak"
|
||||||
|
|
||||||
#: shared-bindings/memorymonitor/AllocationSize.c
|
#: shared-bindings/memorymonitor/AllocationSize.c
|
||||||
#: shared-bindings/pulseio/PulseIn.c
|
#: shared-bindings/pulseio/PulseIn.c
|
||||||
msgid "Read-only"
|
msgid "Read-only"
|
||||||
msgstr ""
|
msgstr "Baca-saja"
|
||||||
|
|
||||||
#: extmod/vfs_fat.c py/moduerrno.c
|
#: extmod/vfs_fat.c py/moduerrno.c
|
||||||
msgid "Read-only filesystem"
|
msgid "Read-only filesystem"
|
||||||
@ -1553,7 +1581,7 @@ msgstr "sistem file (filesystem) bersifat Read-only"
|
|||||||
|
|
||||||
#: shared-bindings/displayio/EPaperDisplay.c
|
#: shared-bindings/displayio/EPaperDisplay.c
|
||||||
msgid "Refresh too soon"
|
msgid "Refresh too soon"
|
||||||
msgstr ""
|
msgstr "Segarkan terlalu cepat"
|
||||||
|
|
||||||
#: shared-bindings/canio/RemoteTransmissionRequest.c
|
#: shared-bindings/canio/RemoteTransmissionRequest.c
|
||||||
msgid "RemoteTransmissionRequests limited to 8 bytes"
|
msgid "RemoteTransmissionRequests limited to 8 bytes"
|
||||||
@ -1561,7 +1589,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "Requested AES mode is unsupported"
|
msgid "Requested AES mode is unsupported"
|
||||||
msgstr ""
|
msgstr "Mode AES yang diminta tidak didukung"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
msgid "Right channel unsupported"
|
msgid "Right channel unsupported"
|
||||||
@ -1569,7 +1597,7 @@ msgstr "Channel Kanan tidak didukung"
|
|||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "Row entry must be digitalio.DigitalInOut"
|
msgid "Row entry must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr "Entri baris harus digitalio.DigitalInOut"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Running in safe mode! "
|
msgid "Running in safe mode! "
|
||||||
@ -1596,15 +1624,15 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/SPI.c
|
||||||
msgid "SPI Init Error"
|
msgid "SPI Init Error"
|
||||||
msgstr ""
|
msgstr "Kesalahan Init SPI"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/SPI.c
|
||||||
msgid "SPI Re-initialization error"
|
msgid "SPI Re-initialization error"
|
||||||
msgstr ""
|
msgstr "Kesalahan Inisialisasi ulang SPI"
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "Sample rate must be positive"
|
msgid "Sample rate must be positive"
|
||||||
msgstr ""
|
msgstr "Tingkat sampel harus positif"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1613,15 +1641,15 @@ msgstr "Nilai sampel terlalu tinggi. Nilai harus kurang dari %d"
|
|||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Scan already in progess. Stop with stop_scan."
|
msgid "Scan already in progess. Stop with stop_scan."
|
||||||
msgstr ""
|
msgstr "Pindai sudah dalam proses. Hentikan dengan stop_scan."
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
||||||
msgid "Selected CTS pin not valid"
|
msgid "Selected CTS pin not valid"
|
||||||
msgstr ""
|
msgstr "Pin CTS yang dipilih tidak valid"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
#: ports/mimxrt10xx/common-hal/busio/UART.c
|
||||||
msgid "Selected RTS pin not valid"
|
msgid "Selected RTS pin not valid"
|
||||||
msgstr ""
|
msgstr "Pin RTS yang dipilih tidak valid"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
@ -1638,14 +1666,14 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/nvm/ByteArray.c
|
||||||
msgid "Slice and value different lengths."
|
msgid "Slice and value different lengths."
|
||||||
msgstr ""
|
msgstr "Potongan dan nilai panjangnya berbeda."
|
||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c shared-bindings/displayio/Group.c
|
#: shared-bindings/displayio/Bitmap.c shared-bindings/displayio/Group.c
|
||||||
#: shared-bindings/displayio/TileGrid.c
|
#: shared-bindings/displayio/TileGrid.c
|
||||||
#: shared-bindings/memorymonitor/AllocationSize.c
|
#: shared-bindings/memorymonitor/AllocationSize.c
|
||||||
#: shared-bindings/pulseio/PulseIn.c
|
#: shared-bindings/pulseio/PulseIn.c
|
||||||
msgid "Slices not supported"
|
msgid "Slices not supported"
|
||||||
msgstr ""
|
msgstr "Potongan tidak didukung"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||||
msgid "SocketPool can only be used with wifi.radio"
|
msgid "SocketPool can only be used with wifi.radio"
|
||||||
@ -1653,7 +1681,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "Source and destination buffers must be the same length"
|
msgid "Source and destination buffers must be the same length"
|
||||||
msgstr ""
|
msgstr "Buffer sumber dan tujuan harus memiliki panjang yang sama"
|
||||||
|
|
||||||
#: extmod/modure.c
|
#: extmod/modure.c
|
||||||
msgid "Splitting with sub-captures"
|
msgid "Splitting with sub-captures"
|
||||||
@ -1661,15 +1689,15 @@ msgstr "Memisahkan dengan menggunakan sub-captures"
|
|||||||
|
|
||||||
#: shared-bindings/supervisor/__init__.c
|
#: shared-bindings/supervisor/__init__.c
|
||||||
msgid "Stack size must be at least 256"
|
msgid "Stack size must be at least 256"
|
||||||
msgstr ""
|
msgstr "Ukuran stack minimal harus 256"
|
||||||
|
|
||||||
#: shared-bindings/multiterminal/__init__.c
|
#: shared-bindings/multiterminal/__init__.c
|
||||||
msgid "Stream missing readinto() or write() method."
|
msgid "Stream missing readinto() or write() method."
|
||||||
msgstr ""
|
msgstr "Aliran tidak menemukan metode readinto() atau write()."
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr "Berikan setidaknya satu pin UART"
|
||||||
|
|
||||||
#: shared-bindings/gnss/GNSS.c
|
#: shared-bindings/gnss/GNSS.c
|
||||||
msgid "System entry must be gnss.SatelliteSystem"
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
@ -1677,19 +1705,23 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr "Waktu baca suhu habis"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"The CircuitPython heap was corrupted because the stack was too small.\n"
|
"The CircuitPython heap was corrupted because the stack was too small.\n"
|
||||||
"Please increase the stack size if you know how, or if not:"
|
"Please increase the stack size if you know how, or if not:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"heap dari CircuitPython rusak karena stack terlalu kecil.\n"
|
||||||
|
"Harap tambah ukuran stack jika Anda tahu caranya, atau jika tidak:"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"The `microcontroller` module was used to boot into safe mode. Press reset to "
|
"The `microcontroller` module was used to boot into safe mode. Press reset to "
|
||||||
"exit safe mode.\n"
|
"exit safe mode.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Modul `microcontroller` digunakan untukboot ke mode aman. Tekan reset untuk "
|
||||||
|
"keluar dari mode aman.\n"
|
||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
||||||
@ -2747,6 +2779,10 @@ msgstr "format tidak valid"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "key tidak valid"
|
msgstr "key tidak valid"
|
||||||
@ -3178,6 +3214,7 @@ msgstr ""
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3185,6 +3222,7 @@ msgstr ""
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3453,6 +3491,10 @@ msgstr ""
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -246,6 +246,10 @@ msgstr ""
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -271,6 +275,10 @@ msgstr ""
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -939,6 +947,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1018,6 +1030,7 @@ msgstr ""
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1425,6 +1438,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2722,6 +2736,10 @@ msgstr ""
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3428,6 +3446,10 @@ msgstr ""
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
34
locale/cs.po
34
locale/cs.po
@ -5,7 +5,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
||||||
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -250,6 +250,10 @@ msgstr ""
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -275,6 +279,10 @@ msgstr ""
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -289,6 +297,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -896,6 +905,7 @@ msgid "File exists"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -932,7 +942,8 @@ msgid "Group full"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -940,6 +951,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1002,7 +1017,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1018,6 +1034,7 @@ msgstr ""
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1425,6 +1442,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2718,6 +2736,10 @@ msgstr ""
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3148,6 +3170,7 @@ msgstr ""
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3155,6 +3178,7 @@ msgstr ""
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3422,6 +3446,10 @@ msgstr ""
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -5,7 +5,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-06-16 18:24+0000\n"
|
"PO-Revision-Date: 2020-06-16 18:24+0000\n"
|
||||||
"Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n"
|
"Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n"
|
||||||
"Language: de_DE\n"
|
"Language: de_DE\n"
|
||||||
@ -249,6 +249,10 @@ msgstr "'label' erfordert genau ein Argument"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' außerhalb einer Funktion"
|
msgstr "'return' außerhalb einer Funktion"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' außerhalb einer Funktion"
|
msgstr "'yield' außerhalb einer Funktion"
|
||||||
@ -274,6 +278,10 @@ msgstr "3-arg pow() wird nicht unterstützt"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Ein Hardware Interrupt Kanal wird schon benutzt"
|
msgstr "Ein Hardware Interrupt Kanal wird schon benutzt"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -288,6 +296,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Alle I2C-Peripheriegeräte sind in Benutzung"
|
msgstr "Alle I2C-Peripheriegeräte sind in Benutzung"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -907,6 +916,7 @@ msgid "File exists"
|
|||||||
msgstr "Datei existiert"
|
msgstr "Datei existiert"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -947,7 +957,8 @@ msgid "Group full"
|
|||||||
msgstr "Gruppe voll"
|
msgstr "Gruppe voll"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Hardware beschäftigt, versuchen Sie alternative Pins"
|
msgstr "Hardware beschäftigt, versuchen Sie alternative Pins"
|
||||||
|
|
||||||
@ -955,6 +966,10 @@ msgstr "Hardware beschäftigt, versuchen Sie alternative Pins"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Hardware in benutzung, probiere alternative Pins"
|
msgstr "Hardware in benutzung, probiere alternative Pins"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "Lese/Schreibe-operation an geschlossener Datei"
|
msgstr "Lese/Schreibe-operation an geschlossener Datei"
|
||||||
@ -1019,7 +1034,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Ungültiger %q pin"
|
msgstr "Ungültiger %q pin"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1035,6 +1051,7 @@ msgstr "Ungültige BMP-Datei"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Ungültiger DAC-Pin angegeben"
|
msgstr "Ungültiger DAC-Pin angegeben"
|
||||||
@ -1450,6 +1467,7 @@ msgstr "Zugang verweigert"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2789,6 +2807,10 @@ msgstr "ungültiges Format"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "ungültiger Formatbezeichner"
|
msgstr "ungültiger Formatbezeichner"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "ungültiger Schlüssel"
|
msgstr "ungültiger Schlüssel"
|
||||||
@ -3229,6 +3251,7 @@ msgstr "pow() drittes Argument darf nicht 0 sein"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow () mit 3 Argumenten erfordert Integer"
|
msgstr "pow () mit 3 Argumenten erfordert Integer"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3236,6 +3259,7 @@ msgstr "pow () mit 3 Argumenten erfordert Integer"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3506,6 +3530,10 @@ msgstr "Typ ist kein akzeptierter Basis-Typ"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "Typ vom Objekt '%q' hat kein Attribut '%q'"
|
msgstr "Typ vom Objekt '%q' hat kein Attribut '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "Typ akzeptiert 1 oder 3 Argumente"
|
msgstr "Typ akzeptiert 1 oder 3 Argumente"
|
||||||
|
34
locale/el.po
34
locale/el.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Automatically generated\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@ -245,6 +245,10 @@ msgstr ""
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -270,6 +274,10 @@ msgstr ""
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -284,6 +292,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -891,6 +900,7 @@ msgid "File exists"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -927,7 +937,8 @@ msgid "Group full"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -935,6 +946,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -997,7 +1012,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1013,6 +1029,7 @@ msgstr ""
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1420,6 +1437,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2713,6 +2731,10 @@ msgstr ""
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3143,6 +3165,7 @@ msgstr ""
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3150,6 +3173,7 @@ msgstr ""
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3417,6 +3441,10 @@ msgstr ""
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
42
locale/es.po
42
locale/es.po
@ -7,9 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-10-01 21:24+0000\n"
|
"PO-Revision-Date: 2020-10-09 17:19+0000\n"
|
||||||
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
|
"Last-Translator: dherrada <dylan.herrada@adafruit.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -253,6 +253,10 @@ msgstr "'label' requiere 1 argumento"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' fuera de una función"
|
msgstr "'return' fuera de una función"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' fuera de una función"
|
msgstr "'yield' fuera de una función"
|
||||||
@ -278,6 +282,10 @@ msgstr "pow() con 3 argumentos no soportado"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "El canal EXTINT ya está siendo utilizado"
|
msgstr "El canal EXTINT ya está siendo utilizado"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -292,6 +300,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Todos los periféricos I2C están siendo usados"
|
msgstr "Todos los periféricos I2C están siendo usados"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr "Todos los FIFOs de RX en uso"
|
msgstr "Todos los FIFOs de RX en uso"
|
||||||
|
|
||||||
@ -911,6 +920,7 @@ msgid "File exists"
|
|||||||
msgstr "El archivo ya existe"
|
msgstr "El archivo ya existe"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr "Filtros muy complejos"
|
msgstr "Filtros muy complejos"
|
||||||
|
|
||||||
@ -948,7 +958,8 @@ msgid "Group full"
|
|||||||
msgstr "Group lleno"
|
msgstr "Group lleno"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Hardware ocupado, pruebe pines alternativos"
|
msgstr "Hardware ocupado, pruebe pines alternativos"
|
||||||
|
|
||||||
@ -956,6 +967,10 @@ msgstr "Hardware ocupado, pruebe pines alternativos"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Hardware en uso, pruebe pines alternativos"
|
msgstr "Hardware en uso, pruebe pines alternativos"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "Operación I/O en archivo cerrado"
|
msgstr "Operación I/O en archivo cerrado"
|
||||||
@ -1020,7 +1035,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Pin %q inválido"
|
msgstr "Pin %q inválido"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr "selección inválida de pin %q"
|
msgstr "selección inválida de pin %q"
|
||||||
|
|
||||||
@ -1036,6 +1052,7 @@ msgstr "Archivo BMP inválido"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr "BSSID inválido"
|
msgstr "BSSID inválido"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Pin suministrado inválido para DAC"
|
msgstr "Pin suministrado inválido para DAC"
|
||||||
@ -1451,6 +1468,7 @@ msgstr "Permiso denegado"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -1709,7 +1727,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
||||||
msgstr ""
|
msgstr "La longitud de rgb_pins debe ser 6, 12, 18, 24, o 30"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -2783,6 +2801,10 @@ msgstr "formato inválido"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "especificador de formato inválido"
|
msgstr "especificador de formato inválido"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "llave inválida"
|
msgstr "llave inválida"
|
||||||
@ -3219,6 +3241,7 @@ msgstr "el 3er argumento de pow() no puede ser 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() con 3 argumentos requiere enteros"
|
msgstr "pow() con 3 argumentos requiere enteros"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3226,6 +3249,7 @@ msgstr "pow() con 3 argumentos requiere enteros"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr "presionando botón de arranque al inicio.\n"
|
msgstr "presionando botón de arranque al inicio.\n"
|
||||||
|
|
||||||
@ -3496,6 +3520,10 @@ msgstr "type no es un tipo de base aceptable"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "objeto de tipo '%q' no tiene atributo '%q'"
|
msgstr "objeto de tipo '%q' no tiene atributo '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "type acepta 1 ó 3 argumentos"
|
msgstr "type acepta 1 ó 3 argumentos"
|
||||||
@ -3604,7 +3632,7 @@ msgstr "el tiempo de espera del perro guardián debe ser mayor a 0"
|
|||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
msgid "width must be greater than zero"
|
msgid "width must be greater than zero"
|
||||||
msgstr ""
|
msgstr "el ancho debe ser mayor que cero"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "window must be <= interval"
|
msgid "window must be <= interval"
|
||||||
|
@ -5,7 +5,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\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"
|
||||||
@ -247,6 +247,10 @@ msgstr "'label' kailangan ng 1 argument"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' sa labas ng function"
|
msgstr "'return' sa labas ng function"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' sa labas ng function"
|
msgstr "'yield' sa labas ng function"
|
||||||
@ -272,6 +276,10 @@ msgstr "3-arg pow() hindi suportado"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Isang channel ng hardware interrupt ay ginagamit na"
|
msgstr "Isang channel ng hardware interrupt ay ginagamit na"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -286,6 +294,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Lahat ng I2C peripherals ginagamit"
|
msgstr "Lahat ng I2C peripherals ginagamit"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -904,6 +913,7 @@ msgid "File exists"
|
|||||||
msgstr "Mayroong file"
|
msgstr "Mayroong file"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -940,7 +950,8 @@ msgid "Group full"
|
|||||||
msgstr "Puno ang group"
|
msgstr "Puno ang group"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -948,6 +959,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "I/O operasyon sa saradong file"
|
msgstr "I/O operasyon sa saradong file"
|
||||||
@ -1012,7 +1027,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Mali ang %q pin"
|
msgstr "Mali ang %q pin"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1028,6 +1044,7 @@ msgstr "Mali ang BMP file"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1439,6 +1456,7 @@ msgstr "Walang pahintulot"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2758,6 +2776,10 @@ msgstr "hindi wastong pag-format"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "mali ang format specifier"
|
msgstr "mali ang format specifier"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "mali ang key"
|
msgstr "mali ang key"
|
||||||
@ -3194,6 +3216,7 @@ msgstr "pow() 3rd argument ay hindi maaring 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() na may 3 argumento kailangan ng integers"
|
msgstr "pow() na may 3 argumento kailangan ng integers"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3201,6 +3224,7 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3472,6 +3496,10 @@ msgstr "hindi puede ang type para sa base type"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "type object '%q' ay walang attribute '%q'"
|
msgstr "type object '%q' ay walang attribute '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "type kumuhuha ng 1 o 3 arguments"
|
msgstr "type kumuhuha ng 1 o 3 arguments"
|
||||||
|
70
locale/fr.po
70
locale/fr.po
@ -7,9 +7,9 @@ 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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-09-16 13:47+0000\n"
|
"PO-Revision-Date: 2020-10-15 18:17+0000\n"
|
||||||
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
|
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
@ -46,7 +46,7 @@ msgstr " Fichier \"%q\", ligne %d"
|
|||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid " output:\n"
|
msgid " output:\n"
|
||||||
msgstr " sortie :\n"
|
msgstr " sortie :\n"
|
||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -102,7 +102,7 @@ msgstr "%q doit être un tuple de longueur 2"
|
|||||||
|
|
||||||
#: shared-bindings/canio/Match.c
|
#: shared-bindings/canio/Match.c
|
||||||
msgid "%q out of range"
|
msgid "%q out of range"
|
||||||
msgstr ""
|
msgstr "%q est hors de porté"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||||
msgid "%q pin invalid"
|
msgid "%q pin invalid"
|
||||||
@ -254,6 +254,10 @@ msgstr "'label' nécessite 1 argument"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' en dehors d'une fonction"
|
msgstr "'return' en dehors d'une fonction"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' en dehors d'une fonction"
|
msgstr "'yield' en dehors d'une fonction"
|
||||||
@ -279,6 +283,10 @@ msgstr "pow() non supporté avec 3 arguments"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Un canal d'interruptions matérielles est déjà utilisé"
|
msgstr "Un canal d'interruptions matérielles est déjà utilisé"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr "ADC2 est utilisé pars le Wifi"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -293,8 +301,9 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Tous les périphériques I2C sont utilisés"
|
msgstr "Tous les périphériques I2C sont utilisés"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr "Tout les RX FIFOs sont utilisé"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
||||||
msgid "All SPI peripherals are in use"
|
msgid "All SPI peripherals are in use"
|
||||||
@ -523,7 +532,7 @@ msgstr "Impossible de définir CCCD sur une caractéristique locale"
|
|||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Cannot create a new Adapter; use _bleio.adapter;"
|
msgid "Cannot create a new Adapter; use _bleio.adapter;"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un nouveau Adapter ne peut être créé ; Adapter; utilisez _bleio.adapter;"
|
"Un nouveau Adapter ne peut être créé ; Adapter; utilisez _bleio.adapter;"
|
||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c
|
#: shared-bindings/displayio/Bitmap.c
|
||||||
#: shared-bindings/memorymonitor/AllocationSize.c
|
#: shared-bindings/memorymonitor/AllocationSize.c
|
||||||
@ -660,7 +669,7 @@ msgstr "Code brut corrompu"
|
|||||||
|
|
||||||
#: ports/cxd56/common-hal/camera/Camera.c
|
#: ports/cxd56/common-hal/camera/Camera.c
|
||||||
msgid "Could not initialize Camera"
|
msgid "Could not initialize Camera"
|
||||||
msgstr ""
|
msgstr "Impossible d'initialisé la Camera"
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/gnss/GNSS.c
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
msgid "Could not initialize GNSS"
|
msgid "Could not initialize GNSS"
|
||||||
@ -791,7 +800,7 @@ msgstr "La BCE ne fonctionne que sur 16 octets à la fois"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||||
msgid "ESP-IDF memory allocation failed"
|
msgid "ESP-IDF memory allocation failed"
|
||||||
msgstr ""
|
msgstr "ESP-IDF échec d'allocation de la mémoire"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
||||||
@ -896,7 +905,7 @@ msgstr "Impossible de se connecter : délai d'expiration"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||||
msgid "Failed to init wifi"
|
msgid "Failed to init wifi"
|
||||||
msgstr ""
|
msgstr "Echec de l'initialisation du Wifi"
|
||||||
|
|
||||||
#: shared-module/audiomp3/MP3Decoder.c
|
#: shared-module/audiomp3/MP3Decoder.c
|
||||||
msgid "Failed to parse MP3 file"
|
msgid "Failed to parse MP3 file"
|
||||||
@ -916,6 +925,7 @@ msgid "File exists"
|
|||||||
msgstr "Le fichier existe"
|
msgstr "Le fichier existe"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -953,7 +963,8 @@ msgid "Group full"
|
|||||||
msgstr "Groupe plein"
|
msgstr "Groupe plein"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Matériel occupé, essayez d'autres broches"
|
msgstr "Matériel occupé, essayez d'autres broches"
|
||||||
|
|
||||||
@ -961,6 +972,10 @@ msgstr "Matériel occupé, essayez d'autres broches"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Matériel utilisé, essayez d'autres broches"
|
msgstr "Matériel utilisé, essayez d'autres broches"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "opération d'E/S sur un fichier fermé"
|
msgstr "opération d'E/S sur un fichier fermé"
|
||||||
@ -971,7 +986,7 @@ msgstr "Erreur d'initialisation I2C"
|
|||||||
|
|
||||||
#: shared-bindings/audiobusio/I2SOut.c
|
#: shared-bindings/audiobusio/I2SOut.c
|
||||||
msgid "I2SOut not available"
|
msgid "I2SOut not available"
|
||||||
msgstr ""
|
msgstr "I2SOut n'est pas disponible"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1025,7 +1040,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Broche invalide pour '%q'"
|
msgstr "Broche invalide pour '%q'"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1039,8 +1055,9 @@ msgstr "Fichier BMP invalide"
|
|||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr "BSSID Invalide"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Broche DAC non valide fournie"
|
msgstr "Broche DAC non valide fournie"
|
||||||
@ -1089,7 +1106,7 @@ msgstr "Taille de bloc de formatage invalide"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "Invalid frequency"
|
msgid "Invalid frequency"
|
||||||
msgstr ""
|
msgstr "fréquence non Valide"
|
||||||
|
|
||||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||||
msgid "Invalid frequency supplied"
|
msgid "Invalid frequency supplied"
|
||||||
@ -1212,7 +1229,7 @@ msgstr "La valeur max. de x est %d lors d'une opération miroir"
|
|||||||
|
|
||||||
#: shared-bindings/canio/Message.c
|
#: shared-bindings/canio/Message.c
|
||||||
msgid "Messages limited to 8 bytes"
|
msgid "Messages limited to 8 bytes"
|
||||||
msgstr ""
|
msgstr "Message limité a 8 bytes"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "MicroPython NLR jump failed. Likely memory corruption."
|
msgid "MicroPython NLR jump failed. Likely memory corruption."
|
||||||
@ -1324,11 +1341,11 @@ msgstr "Pas de support entier long"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more channels available"
|
msgid "No more channels available"
|
||||||
msgstr ""
|
msgstr "Pas de canal supplémentaire disponible"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more timers available"
|
msgid "No more timers available"
|
||||||
msgstr ""
|
msgstr "Pas d'horloge supplémentaire disponible"
|
||||||
|
|
||||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more timers available on this pin."
|
msgid "No more timers available on this pin."
|
||||||
@ -1336,7 +1353,7 @@ msgstr "Plus de minuteurs disponibles sur cette broche."
|
|||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "No network with that ssid"
|
msgid "No network with that ssid"
|
||||||
msgstr ""
|
msgstr "Aucun réseau avec ce ssid"
|
||||||
|
|
||||||
#: shared-module/touchio/TouchIn.c
|
#: shared-module/touchio/TouchIn.c
|
||||||
msgid "No pulldown on pin; 1Mohm recommended"
|
msgid "No pulldown on pin; 1Mohm recommended"
|
||||||
@ -1360,7 +1377,7 @@ msgstr "Affirmation de défaillance du Nordic Soft Device."
|
|||||||
|
|
||||||
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
||||||
msgid "Not a valid IP string"
|
msgid "Not a valid IP string"
|
||||||
msgstr ""
|
msgstr "Chaîne IP non valide"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -1458,6 +1475,7 @@ msgstr "Permission refusée"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2798,6 +2816,10 @@ msgstr "format invalide"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "spécification de format invalide"
|
msgstr "spécification de format invalide"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "clé invalide"
|
msgstr "clé invalide"
|
||||||
@ -3237,6 +3259,7 @@ msgstr "le 3e argument de pow() ne peut être 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() avec 3 arguments nécessite des entiers"
|
msgstr "pow() avec 3 arguments nécessite des entiers"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3244,6 +3267,7 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3514,6 +3538,10 @@ msgstr "le type n'est pas un type de base accepté"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "l'objet de type '%q' n'a pas d'attribut '%q'"
|
msgstr "l'objet de type '%q' n'a pas d'attribut '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "le type prend 1 ou 3 arguments"
|
msgstr "le type prend 1 ou 3 arguments"
|
||||||
@ -3593,7 +3621,7 @@ msgstr "caractère de format '%c' (0x%x) non supporté à l'index %d"
|
|||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "unsupported type for %q: '%q'"
|
msgid "unsupported type for %q: '%q'"
|
||||||
msgstr "type non supporté pour %q: '%q'"
|
msgstr "type non supporté pour %q : '%q'"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "unsupported type for operator"
|
msgid "unsupported type for operator"
|
||||||
|
34
locale/hi.po
34
locale/hi.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Automatically generated\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@ -245,6 +245,10 @@ msgstr ""
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -270,6 +274,10 @@ msgstr ""
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -284,6 +292,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -891,6 +900,7 @@ msgid "File exists"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -927,7 +937,8 @@ msgid "Group full"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -935,6 +946,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -997,7 +1012,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1013,6 +1029,7 @@ msgstr ""
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1420,6 +1437,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2713,6 +2731,10 @@ msgstr ""
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3143,6 +3165,7 @@ msgstr ""
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3150,6 +3173,7 @@ msgstr ""
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3417,6 +3441,10 @@ msgstr ""
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -6,7 +6,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\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"
|
||||||
@ -246,6 +246,10 @@ msgstr "'label' richiede 1 argomento"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' al di fuori della funzione"
|
msgstr "'return' al di fuori della funzione"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' al di fuori della funzione"
|
msgstr "'yield' al di fuori della funzione"
|
||||||
@ -271,6 +275,10 @@ msgstr "pow() con tre argmomenti non supportata"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Un canale di interrupt hardware è già in uso"
|
msgstr "Un canale di interrupt hardware è già in uso"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -285,6 +293,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Tutte le periferiche I2C sono in uso"
|
msgstr "Tutte le periferiche I2C sono in uso"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -904,6 +913,7 @@ msgid "File exists"
|
|||||||
msgstr "File esistente"
|
msgstr "File esistente"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -940,7 +950,8 @@ msgid "Group full"
|
|||||||
msgstr "Gruppo pieno"
|
msgstr "Gruppo pieno"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -948,6 +959,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "operazione I/O su file chiuso"
|
msgstr "operazione I/O su file chiuso"
|
||||||
@ -1012,7 +1027,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Pin %q non valido"
|
msgstr "Pin %q non valido"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1028,6 +1044,7 @@ msgstr "File BMP non valido"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1448,6 +1465,7 @@ msgstr "Permesso negato"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2759,6 +2777,10 @@ msgstr "formato non valido"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "specificatore di formato non valido"
|
msgstr "specificatore di formato non valido"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "chiave non valida"
|
msgstr "chiave non valida"
|
||||||
@ -3201,6 +3223,7 @@ msgstr "il terzo argomento di pow() non può essere 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() con 3 argomenti richiede interi"
|
msgstr "pow() con 3 argomenti richiede interi"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3208,6 +3231,7 @@ msgstr "pow() con 3 argomenti richiede interi"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3479,6 +3503,10 @@ msgstr "il tipo non è un tipo di base accettabile"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "l'oggetto di tipo '%q' non ha l'attributo '%q'"
|
msgstr "l'oggetto di tipo '%q' non ha l'attributo '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "tipo prende 1 o 3 argomenti"
|
msgstr "tipo prende 1 o 3 argomenti"
|
||||||
|
34
locale/ja.po
34
locale/ja.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-09-25 18:20+0000\n"
|
"PO-Revision-Date: 2020-09-25 18:20+0000\n"
|
||||||
"Last-Translator: Taku Fukada <naninunenor@gmail.com>\n"
|
"Last-Translator: Taku Fukada <naninunenor@gmail.com>\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@ -252,6 +252,10 @@ msgstr ""
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "関数外でのreturn"
|
msgstr "関数外でのreturn"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "関数外でのyield"
|
msgstr "関数外でのyield"
|
||||||
@ -277,6 +281,10 @@ msgstr "引数3つのpow()は非対応"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "ハードウェア割り込みチャネルは使用中"
|
msgstr "ハードウェア割り込みチャネルは使用中"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -291,6 +299,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "全てのI2C周辺機器が使用中"
|
msgstr "全てのI2C周辺機器が使用中"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr "全てのRX FIFOが使用中"
|
msgstr "全てのRX FIFOが使用中"
|
||||||
|
|
||||||
@ -904,6 +913,7 @@ msgid "File exists"
|
|||||||
msgstr "ファイルが存在します"
|
msgstr "ファイルが存在します"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -940,7 +950,8 @@ msgid "Group full"
|
|||||||
msgstr "グループが一杯"
|
msgstr "グループが一杯"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "ハードウェアビジー。代替のピンを試してください"
|
msgstr "ハードウェアビジー。代替のピンを試してください"
|
||||||
|
|
||||||
@ -948,6 +959,10 @@ msgstr "ハードウェアビジー。代替のピンを試してください"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "ハードウェア使用中。代わりのピンを試してください"
|
msgstr "ハードウェア使用中。代わりのピンを試してください"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "閉じられたファイルへのI/O操作"
|
msgstr "閉じられたファイルへのI/O操作"
|
||||||
@ -1012,7 +1027,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "不正な%qピン"
|
msgstr "不正な%qピン"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr "不正な%qピン選択"
|
msgstr "不正な%qピン選択"
|
||||||
|
|
||||||
@ -1028,6 +1044,7 @@ msgstr "不正なBMPファイル"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "不正なDACピンが与えられました"
|
msgstr "不正なDACピンが与えられました"
|
||||||
@ -1438,6 +1455,7 @@ msgstr "パーミッション拒否"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2743,6 +2761,10 @@ msgstr ""
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "不正な鍵"
|
msgstr "不正な鍵"
|
||||||
@ -3175,6 +3197,7 @@ msgstr "pow()の3つ目の引数は0にできません"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow()の第3引数には整数が必要"
|
msgstr "pow()の第3引数には整数が必要"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3182,6 +3205,7 @@ msgstr "pow()の第3引数には整数が必要"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3450,6 +3474,10 @@ msgstr "この型はベース型にできません"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "typeは1つか3つの引数をとります"
|
msgstr "typeは1つか3つの引数をとります"
|
||||||
|
34
locale/ko.po
34
locale/ko.po
@ -6,7 +6,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
|
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
|
||||||
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
|
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -248,6 +248,10 @@ msgstr "'label' 에는 1 개의 독립변수가 필요합니다"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' 는 함수 외부에 존재합니다"
|
msgstr "'return' 는 함수 외부에 존재합니다"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' 는 함수 외부에 존재합니다"
|
msgstr "'yield' 는 함수 외부에 존재합니다"
|
||||||
@ -273,6 +277,10 @@ msgstr ""
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -287,6 +295,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "사용중인 모든 I2C주변 기기"
|
msgstr "사용중인 모든 I2C주변 기기"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -896,6 +905,7 @@ msgid "File exists"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -932,7 +942,8 @@ msgid "Group full"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -940,6 +951,10 @@ msgstr ""
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1002,7 +1017,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1018,6 +1034,7 @@ msgstr ""
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1425,6 +1442,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2719,6 +2737,10 @@ msgstr "형식가 유효하지 않습니다"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "형식 지정자(format specifier)가 유효하지 않습니다"
|
msgstr "형식 지정자(format specifier)가 유효하지 않습니다"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "키가 유효하지 않습니다"
|
msgstr "키가 유효하지 않습니다"
|
||||||
@ -3149,6 +3171,7 @@ msgstr ""
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3156,6 +3179,7 @@ msgstr ""
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3423,6 +3447,10 @@ msgstr ""
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
34
locale/nl.po
34
locale/nl.po
@ -5,7 +5,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-09-09 16:05+0000\n"
|
"PO-Revision-Date: 2020-09-09 16:05+0000\n"
|
||||||
"Last-Translator: Jelle Jager <jell@jjc.id.au>\n"
|
"Last-Translator: Jelle Jager <jell@jjc.id.au>\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@ -250,6 +250,10 @@ msgstr "'label' vereist 1 argument"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' buiten de functie"
|
msgstr "'return' buiten de functie"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' buiten de functie"
|
msgstr "'yield' buiten de functie"
|
||||||
@ -275,6 +279,10 @@ msgstr "3-arg pow() niet ondersteund"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Een hardware interrupt kanaal is al in gebruik"
|
msgstr "Een hardware interrupt kanaal is al in gebruik"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -289,6 +297,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Alle I2C peripherals zijn in gebruik"
|
msgstr "Alle I2C peripherals zijn in gebruik"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -904,6 +913,7 @@ msgid "File exists"
|
|||||||
msgstr "Bestand bestaat"
|
msgstr "Bestand bestaat"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -942,7 +952,8 @@ msgid "Group full"
|
|||||||
msgstr "Groep is vol"
|
msgstr "Groep is vol"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Hardware bezig, probeer alternatieve pinnen"
|
msgstr "Hardware bezig, probeer alternatieve pinnen"
|
||||||
|
|
||||||
@ -950,6 +961,10 @@ msgstr "Hardware bezig, probeer alternatieve pinnen"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Hardware in gebruik, probeer alternatieve pinnen"
|
msgstr "Hardware in gebruik, probeer alternatieve pinnen"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "I/O actie op gesloten bestand"
|
msgstr "I/O actie op gesloten bestand"
|
||||||
@ -1014,7 +1029,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Ongeldige %q pin"
|
msgstr "Ongeldige %q pin"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr "Ongeldige %q pin selectie"
|
msgstr "Ongeldige %q pin selectie"
|
||||||
|
|
||||||
@ -1030,6 +1046,7 @@ msgstr "Ongeldig BMP bestand"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Ongeldige DAC pin opgegeven"
|
msgstr "Ongeldige DAC pin opgegeven"
|
||||||
@ -1446,6 +1463,7 @@ msgstr "Toegang geweigerd"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2770,6 +2788,10 @@ msgstr "ongeldig formaat"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "ongeldige formaatspecificatie"
|
msgstr "ongeldige formaatspecificatie"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "ongeldige sleutel"
|
msgstr "ongeldige sleutel"
|
||||||
@ -3204,6 +3226,7 @@ msgstr "derde argument van pow() mag geen 0 zijn"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() met 3 argumenten vereist integers"
|
msgstr "pow() met 3 argumenten vereist integers"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3211,6 +3234,7 @@ msgstr "pow() met 3 argumenten vereist integers"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3480,6 +3504,10 @@ msgstr "type is geen aanvaardbaar basistype"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "objecttype '%q' heeft geen attribuut '%q'"
|
msgstr "objecttype '%q' heeft geen attribuut '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "type accepteert 1 of 3 argumenten"
|
msgstr "type accepteert 1 of 3 argumenten"
|
||||||
|
34
locale/pl.po
34
locale/pl.po
@ -6,7 +6,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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-09-29 01:39+0000\n"
|
"PO-Revision-Date: 2020-09-29 01:39+0000\n"
|
||||||
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
||||||
"Language-Team: pl\n"
|
"Language-Team: pl\n"
|
||||||
@ -252,6 +252,10 @@ msgstr "'label' wymaga 1 argumentu"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' poza funkcją"
|
msgstr "'return' poza funkcją"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' poza funkcją"
|
msgstr "'yield' poza funkcją"
|
||||||
@ -277,6 +281,10 @@ msgstr "3-argumentowy pow() jest niewspierany"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Kanał przerwań sprzętowych w użyciu"
|
msgstr "Kanał przerwań sprzętowych w użyciu"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -291,6 +299,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Wszystkie peryferia I2C w użyciu"
|
msgstr "Wszystkie peryferia I2C w użyciu"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -904,6 +913,7 @@ msgid "File exists"
|
|||||||
msgstr "Plik istnieje"
|
msgstr "Plik istnieje"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -940,7 +950,8 @@ msgid "Group full"
|
|||||||
msgstr "Grupa pełna"
|
msgstr "Grupa pełna"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Sprzęt zajęty, wypróbuj alternatywne piny"
|
msgstr "Sprzęt zajęty, wypróbuj alternatywne piny"
|
||||||
|
|
||||||
@ -948,6 +959,10 @@ msgstr "Sprzęt zajęty, wypróbuj alternatywne piny"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Sprzęt w użyciu, wypróbuj alternatywne piny"
|
msgstr "Sprzęt w użyciu, wypróbuj alternatywne piny"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "Operacja I/O na zamkniętym pliku"
|
msgstr "Operacja I/O na zamkniętym pliku"
|
||||||
@ -1012,7 +1027,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Zła nóżka %q"
|
msgstr "Zła nóżka %q"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1028,6 +1044,7 @@ msgstr "Zły BMP"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1436,6 +1453,7 @@ msgstr "Odmowa dostępu"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2736,6 +2754,10 @@ msgstr "zły format"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "zła specyfikacja formatu"
|
msgstr "zła specyfikacja formatu"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "zły klucz"
|
msgstr "zły klucz"
|
||||||
@ -3167,6 +3189,7 @@ msgstr "trzeci argument pow() nie może być 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
|
msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3174,6 +3197,7 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -3442,6 +3466,10 @@ msgstr "typ nie może być bazowy"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "typ '%q' nie ma atrybutu '%q'"
|
msgstr "typ '%q' nie ma atrybutu '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "type wymaga 1 lub 3 argumentów"
|
msgstr "type wymaga 1 lub 3 argumentów"
|
||||||
|
@ -5,8 +5,8 @@ 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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-10-02 22:53+0000\n"
|
"PO-Revision-Date: 2020-10-16 17:01+0000\n"
|
||||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
@ -14,7 +14,7 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 4.3-dev\n"
|
"X-Generator: Weblate 4.3.1-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -254,6 +254,10 @@ msgstr "'label' exige 1 argumento"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "função externa 'return'"
|
msgstr "função externa 'return'"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr "'yield a partir' de dentro da função async"
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "função externa 'yield'"
|
msgstr "função externa 'yield'"
|
||||||
@ -279,6 +283,10 @@ msgstr "3-arg pow() não compatível"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Um canal de interrupção de hardware já está em uso"
|
msgstr "Um canal de interrupção de hardware já está em uso"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr "O ADC2 está sendo usado pelo WiFi"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -293,6 +301,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Todos os periféricos I2C estão em uso"
|
msgstr "Todos os periféricos I2C estão em uso"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr "Todos os FIFOs RX estão em uso"
|
msgstr "Todos os FIFOs RX estão em uso"
|
||||||
|
|
||||||
@ -913,6 +922,7 @@ msgid "File exists"
|
|||||||
msgstr "Arquivo já existe"
|
msgstr "Arquivo já existe"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr "Os filtros são muito complexos"
|
msgstr "Os filtros são muito complexos"
|
||||||
|
|
||||||
@ -951,7 +961,8 @@ msgid "Group full"
|
|||||||
msgstr "Grupo cheio"
|
msgstr "Grupo cheio"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "O hardware está ocupado, tente os pinos alternativos"
|
msgstr "O hardware está ocupado, tente os pinos alternativos"
|
||||||
|
|
||||||
@ -959,6 +970,10 @@ msgstr "O hardware está ocupado, tente os pinos alternativos"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "O hardware está em uso, tente os pinos alternativos"
|
msgstr "O hardware está em uso, tente os pinos alternativos"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr "O nome do host deve ter entre 1 e 253 caracteres"
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "Operação I/O no arquivo fechado"
|
msgstr "Operação I/O no arquivo fechado"
|
||||||
@ -1023,7 +1038,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Pino do %q inválido"
|
msgstr "Pino do %q inválido"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr "Seleção inválida dos pinos %q"
|
msgstr "Seleção inválida dos pinos %q"
|
||||||
|
|
||||||
@ -1039,6 +1055,7 @@ msgstr "Arquivo BMP inválido"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr "BSSID Inválido"
|
msgstr "BSSID Inválido"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "O pino DAC informado é inválido"
|
msgstr "O pino DAC informado é inválido"
|
||||||
@ -1455,6 +1472,7 @@ msgstr "Permissão negada"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2794,6 +2812,10 @@ msgstr "formato inválido"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "o especificador do formato é inválido"
|
msgstr "o especificador do formato é inválido"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr "o nome do host é inválido"
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "chave inválida"
|
msgstr "chave inválida"
|
||||||
@ -3234,6 +3256,7 @@ msgstr "O terceiro argumento pow() não pode ser 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "o pow() com 3 argumentos requer números inteiros"
|
msgstr "o pow() com 3 argumentos requer números inteiros"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3241,6 +3264,7 @@ msgstr "o pow() com 3 argumentos requer números inteiros"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr "pressionando o botão de boot na inicialização.\n"
|
msgstr "pressionando o botão de boot na inicialização.\n"
|
||||||
|
|
||||||
@ -3510,6 +3534,10 @@ msgstr "tipo não é um tipo base aceitável"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "o objeto tipo '%q' não possuí atributo '%q'"
|
msgstr "o objeto tipo '%q' não possuí atributo '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr "o tipo do objeto 'generator' não possui qualquer atributo '__await__'"
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "o tipo usa 1 ou 3 argumentos"
|
msgstr "o tipo usa 1 ou 3 argumentos"
|
||||||
|
36
locale/sv.po
36
locale/sv.po
@ -5,8 +5,8 @@ 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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2020-10-02 22:53+0000\n"
|
"PO-Revision-Date: 2020-10-14 18:12+0000\n"
|
||||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
@ -250,6 +250,10 @@ msgstr "'label' kräver 1 argument"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' utanför funktion"
|
msgstr "'return' utanför funktion"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr "'yield from' i async-funktion"
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' utanför funktion"
|
msgstr "'yield' utanför funktion"
|
||||||
@ -275,6 +279,10 @@ msgstr "3-arguments pow() stöds inte"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "En kanal för hårdvaruavbrott används redan"
|
msgstr "En kanal för hårdvaruavbrott används redan"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr "ADC2 används av WiFi"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -289,6 +297,7 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "All I2C-kringutrustning används"
|
msgstr "All I2C-kringutrustning används"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr "Alla RX FIFO i bruk"
|
msgstr "Alla RX FIFO i bruk"
|
||||||
|
|
||||||
@ -904,6 +913,7 @@ msgid "File exists"
|
|||||||
msgstr "Filen finns redan"
|
msgstr "Filen finns redan"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr "Filter för komplexa"
|
msgstr "Filter för komplexa"
|
||||||
|
|
||||||
@ -940,7 +950,8 @@ msgid "Group full"
|
|||||||
msgstr "Gruppen är full"
|
msgstr "Gruppen är full"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Hårdvaran är upptagen, prova alternativa pinnar"
|
msgstr "Hårdvaran är upptagen, prova alternativa pinnar"
|
||||||
|
|
||||||
@ -948,6 +959,10 @@ msgstr "Hårdvaran är upptagen, prova alternativa pinnar"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Hårdvaran används redan, prova alternativa pinnar"
|
msgstr "Hårdvaran används redan, prova alternativa pinnar"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "I/O-operation på stängd fil"
|
msgstr "I/O-operation på stängd fil"
|
||||||
@ -1012,7 +1027,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Ogiltig %q-pinne"
|
msgstr "Ogiltig %q-pinne"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr "Ogiltigt val av %q pinne"
|
msgstr "Ogiltigt val av %q pinne"
|
||||||
|
|
||||||
@ -1028,6 +1044,7 @@ msgstr "Ogiltig BMP-fil"
|
|||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr "Ogiltig BSSID"
|
msgstr "Ogiltig BSSID"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Ogiltig DAC-pinne angiven"
|
msgstr "Ogiltig DAC-pinne angiven"
|
||||||
@ -1443,6 +1460,7 @@ msgstr "Åtkomst nekad"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -2767,6 +2785,10 @@ msgstr "ogiltigt format"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "ogiltig formatspecificerare"
|
msgstr "ogiltig formatspecificerare"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "ogiltig nyckel"
|
msgstr "ogiltig nyckel"
|
||||||
@ -3201,6 +3223,7 @@ msgstr "pow() 3: e argument kan inte vara 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() med 3 argument kräver heltal"
|
msgstr "pow() med 3 argument kräver heltal"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3208,6 +3231,7 @@ msgstr "pow() med 3 argument kräver heltal"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr "trycka på startknappen vid start.\n"
|
msgstr "trycka på startknappen vid start.\n"
|
||||||
|
|
||||||
@ -3477,6 +3501,10 @@ msgstr "typ är inte en acceptabel bastyp"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "typobjektet '%q' har inget attribut '%q'"
|
msgstr "typobjektet '%q' har inget attribut '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr "typobjekt 'generator' har inget attribut '__await__'"
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "typen tar 1 eller 3 argument"
|
msgstr "typen tar 1 eller 3 argument"
|
||||||
|
@ -6,15 +6,16 @@ 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: 2020-09-29 20:14-0500\n"
|
"POT-Creation-Date: 2020-10-15 16:06+0530\n"
|
||||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
"PO-Revision-Date: 2020-10-13 17:11+0000\n"
|
||||||
"Last-Translator: hexthat\n"
|
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
"Language: zh\n"
|
"Language: zh_Latn_pinyin\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.2.1\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
"X-Generator: Weblate 4.3-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -99,7 +100,7 @@ msgstr "%q bìxū shì chángdù wèi 2 de yuán zǔ"
|
|||||||
|
|
||||||
#: shared-bindings/canio/Match.c
|
#: shared-bindings/canio/Match.c
|
||||||
msgid "%q out of range"
|
msgid "%q out of range"
|
||||||
msgstr ""
|
msgstr "%q chāochū fànwéi"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||||
msgid "%q pin invalid"
|
msgid "%q pin invalid"
|
||||||
@ -119,7 +120,7 @@ msgstr "xūyào '%q' cānshù"
|
|||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "'%q' object cannot assign attribute '%q'"
|
msgid "'%q' object cannot assign attribute '%q'"
|
||||||
msgstr "'%q' duì xiàng wú fǎ fēn pèi shǔ xìng '%q'"
|
msgstr "'%q' duì xiàng wú fǎ fēn pèi shǔ xìng '%q'"
|
||||||
|
|
||||||
#: py/proto.c
|
#: py/proto.c
|
||||||
msgid "'%q' object does not support '%q'"
|
msgid "'%q' object does not support '%q'"
|
||||||
@ -251,6 +252,10 @@ msgstr "'label' xūyào 1 cānshù"
|
|||||||
msgid "'return' outside function"
|
msgid "'return' outside function"
|
||||||
msgstr "'return' wàibù gōngnéng"
|
msgstr "'return' wàibù gōngnéng"
|
||||||
|
|
||||||
|
#: py/compile.c
|
||||||
|
msgid "'yield from' inside async function"
|
||||||
|
msgstr "Yì bù hán shù zhōng de 'yield from'"
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
msgstr "'yield' wàibù gōngnéng"
|
msgstr "'yield' wàibù gōngnéng"
|
||||||
@ -276,6 +281,10 @@ msgstr "bù zhīchí 3-arg pow ()"
|
|||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "Yìngjiàn zhōngduàn tōngdào yǐ zài shǐyòng zhōng"
|
msgstr "Yìngjiàn zhōngduàn tōngdào yǐ zài shǐyòng zhōng"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
|
msgid "ADC2 is being used by WiFi"
|
||||||
|
msgstr "ADC2 zhèng yóu WiFi shǐ yòng"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
@ -290,8 +299,9 @@ msgid "All I2C peripherals are in use"
|
|||||||
msgstr "Suǒyǒu I2C wàiwéi qì zhèngzài shǐyòng"
|
msgstr "Suǒyǒu I2C wàiwéi qì zhèngzài shǐyòng"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "All RX FIFOs in use"
|
msgid "All RX FIFOs in use"
|
||||||
msgstr ""
|
msgstr "Suǒyǒu shǐyòng zhōng de RX FIFO"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
||||||
msgid "All SPI peripherals are in use"
|
msgid "All SPI peripherals are in use"
|
||||||
@ -330,11 +340,11 @@ msgstr "Suǒyǒu jìshí qì shǐyòng"
|
|||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Already advertising."
|
msgid "Already advertising."
|
||||||
msgstr "Mùqián zhèngzài guǎngbò"
|
msgstr "Mùqián zhèngzài guǎngbò."
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
msgid "Already have all-matches listener"
|
msgid "Already have all-matches listener"
|
||||||
msgstr ""
|
msgstr "yǐ jù yǒu quán pǐ pèi zhēn tīng qì"
|
||||||
|
|
||||||
#: shared-module/memorymonitor/AllocationAlarm.c
|
#: shared-module/memorymonitor/AllocationAlarm.c
|
||||||
#: shared-module/memorymonitor/AllocationSize.c
|
#: shared-module/memorymonitor/AllocationSize.c
|
||||||
@ -343,7 +353,7 @@ msgstr "yǐ zài yùn xíng"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/wifi/Radio.c
|
#: ports/esp32s2/common-hal/wifi/Radio.c
|
||||||
msgid "Already scanning for wifi networks"
|
msgid "Already scanning for wifi networks"
|
||||||
msgstr ""
|
msgstr "yǐ jīng sǎo miáo WIFI wǎng luò"
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
msgid "AnalogIn not supported on given pin"
|
msgid "AnalogIn not supported on given pin"
|
||||||
@ -391,7 +401,7 @@ msgstr "MicroPython VM zài wèi yùnxíng shí chángshì fēnpèi duī."
|
|||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "Authentication failure"
|
msgid "Authentication failure"
|
||||||
msgstr ""
|
msgstr "shēn fèn yàn zhèng shī bài"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Auto-reload is off.\n"
|
msgid "Auto-reload is off.\n"
|
||||||
@ -454,7 +464,7 @@ msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè. Yīnggāi shì %d zì jié."
|
|||||||
#: shared-bindings/displayio/Display.c
|
#: shared-bindings/displayio/Display.c
|
||||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||||
msgid "Buffer is not a bytearray."
|
msgid "Buffer is not a bytearray."
|
||||||
msgstr "Huǎnchōng qū bùshì bytearray"
|
msgstr "Huǎnchōng qū bùshì bytearray."
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c
|
#: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c
|
||||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||||
@ -508,7 +518,7 @@ msgstr "CBC kuài bì xū shì 16 zì jié de bèi shù"
|
|||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "Call super().__init__() before accessing native object."
|
msgid "Call super().__init__() before accessing native object."
|
||||||
msgstr "Zài fǎngwèn běn jī wùjiàn zhīqián diàoyòng super().__init__()"
|
msgstr "Zài fǎngwèn běn jī wùjiàn zhīqián diàoyòng super().__init__()."
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "Can't set CCCD on local Characteristic"
|
msgid "Can't set CCCD on local Characteristic"
|
||||||
@ -516,7 +526,7 @@ msgstr "Wúfǎ jiāng CCCD shèzhì wéi běndì tèzhēng"
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Cannot create a new Adapter; use _bleio.adapter;"
|
msgid "Cannot create a new Adapter; use _bleio.adapter;"
|
||||||
msgstr ""
|
msgstr "Wúfǎ chuàngjiàn xīn de shìpèiqì; shǐyòng_bleio.Adapter;"
|
||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c
|
#: shared-bindings/displayio/Bitmap.c
|
||||||
#: shared-bindings/memorymonitor/AllocationSize.c
|
#: shared-bindings/memorymonitor/AllocationSize.c
|
||||||
@ -607,7 +617,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "CircuitPython was unable to allocate the heap.\n"
|
msgid "CircuitPython was unable to allocate the heap.\n"
|
||||||
msgstr ""
|
msgstr "CircuitPython wúfǎ fēnpèi duī.\n"
|
||||||
|
|
||||||
#: shared-module/bitbangio/SPI.c
|
#: shared-module/bitbangio/SPI.c
|
||||||
msgid "Clock pin init failed."
|
msgid "Clock pin init failed."
|
||||||
@ -646,7 +656,7 @@ msgstr "Sǔnhuài de yuánshǐ dàimǎ"
|
|||||||
|
|
||||||
#: ports/cxd56/common-hal/camera/Camera.c
|
#: ports/cxd56/common-hal/camera/Camera.c
|
||||||
msgid "Could not initialize Camera"
|
msgid "Could not initialize Camera"
|
||||||
msgstr ""
|
msgstr "Wúfǎ chūshǐhuà xiàngjī"
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/gnss/GNSS.c
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
msgid "Could not initialize GNSS"
|
msgid "Could not initialize GNSS"
|
||||||
@ -683,7 +693,7 @@ msgstr "Wúfǎ chóngqǐ PWM"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/neopixel_write/__init__.c
|
#: ports/esp32s2/common-hal/neopixel_write/__init__.c
|
||||||
msgid "Could not retrieve clock"
|
msgid "Could not retrieve clock"
|
||||||
msgstr ""
|
msgstr "Wúfǎ huòqǔ shízhōng"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Could not set address"
|
msgid "Could not set address"
|
||||||
@ -777,7 +787,7 @@ msgstr "ECB yí cì zhǐ shǐ yòng 16 gè zì jié"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/SPI.c
|
#: ports/esp32s2/common-hal/busio/SPI.c
|
||||||
msgid "ESP-IDF memory allocation failed"
|
msgid "ESP-IDF memory allocation failed"
|
||||||
msgstr ""
|
msgstr "ESP-IDF nèicún fēnpèi shībài"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
||||||
@ -804,7 +814,7 @@ msgstr "Yùqí de tèdiǎn"
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Expected a DigitalInOut"
|
msgid "Expected a DigitalInOut"
|
||||||
msgstr ""
|
msgstr "yù qī shù zì huà"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Characteristic.c
|
#: shared-bindings/_bleio/Characteristic.c
|
||||||
msgid "Expected a Service"
|
msgid "Expected a Service"
|
||||||
@ -812,7 +822,7 @@ msgstr "Yùqí fúwù"
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Expected a UART"
|
msgid "Expected a UART"
|
||||||
msgstr ""
|
msgstr "qī dài UART"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||||
#: shared-bindings/_bleio/Service.c
|
#: shared-bindings/_bleio/Service.c
|
||||||
@ -838,7 +848,7 @@ msgstr "FFT jǐn wéi ndarrays dìng yì"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||||
msgid "Failed SSL handshake"
|
msgid "Failed SSL handshake"
|
||||||
msgstr ""
|
msgstr "SSL wòshǒu shībài"
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
@ -865,11 +875,11 @@ msgstr "Fēnpèi RX huǎnchōng qū%d zì jié shībài"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||||
msgid "Failed to allocate Wifi memory"
|
msgid "Failed to allocate Wifi memory"
|
||||||
msgstr ""
|
msgstr "Wúfǎ fēnpèi Wifi nèicún"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/wifi/ScannedNetworks.c
|
#: ports/esp32s2/common-hal/wifi/ScannedNetworks.c
|
||||||
msgid "Failed to allocate wifi scan memory"
|
msgid "Failed to allocate wifi scan memory"
|
||||||
msgstr ""
|
msgstr "Wúfǎ fēnpèi wifi sǎomiáo nèicún"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
@ -881,7 +891,7 @@ msgstr "Liánjiē shībài: Chāoshí"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||||
msgid "Failed to init wifi"
|
msgid "Failed to init wifi"
|
||||||
msgstr ""
|
msgstr "Wúfǎ chūshǐhuà wifi"
|
||||||
|
|
||||||
#: shared-module/audiomp3/MP3Decoder.c
|
#: shared-module/audiomp3/MP3Decoder.c
|
||||||
msgid "Failed to parse MP3 file"
|
msgid "Failed to parse MP3 file"
|
||||||
@ -901,12 +911,13 @@ msgid "File exists"
|
|||||||
msgstr "Wénjiàn cúnzài"
|
msgstr "Wénjiàn cúnzài"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
|
#: ports/stm/common-hal/canio/Listener.c
|
||||||
msgid "Filters too complex"
|
msgid "Filters too complex"
|
||||||
msgstr ""
|
msgstr "guò lǜ qì tài fù zá"
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/camera/Camera.c
|
#: ports/cxd56/common-hal/camera/Camera.c
|
||||||
msgid "Format not supported"
|
msgid "Format not supported"
|
||||||
msgstr ""
|
msgstr "Bù zhīyuán géshì"
|
||||||
|
|
||||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -937,7 +948,8 @@ msgid "Group full"
|
|||||||
msgstr "Fēnzǔ yǐ mǎn"
|
msgstr "Fēnzǔ yǐ mǎn"
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/I2C.c
|
||||||
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Hardware busy, try alternative pins"
|
msgid "Hardware busy, try alternative pins"
|
||||||
msgstr "Yìngjiàn máng, qǐng chángshì qítā zhēnjiǎo"
|
msgstr "Yìngjiàn máng, qǐng chángshì qítā zhēnjiǎo"
|
||||||
|
|
||||||
@ -945,6 +957,10 @@ msgstr "Yìngjiàn máng, qǐng chángshì qítā zhēnjiǎo"
|
|||||||
msgid "Hardware in use, try alternative pins"
|
msgid "Hardware in use, try alternative pins"
|
||||||
msgstr "Shǐyòng de yìngjiàn, qǐng chángshì qítā yǐn jiǎo"
|
msgstr "Shǐyòng de yìngjiàn, qǐng chángshì qítā yǐn jiǎo"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "Hostname must be between 1 and 253 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
msgstr "Wénjiàn shàng de I/ O cāozuò"
|
msgstr "Wénjiàn shàng de I/ O cāozuò"
|
||||||
@ -976,7 +992,7 @@ msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
msgid "Input taking too long"
|
msgid "Input taking too long"
|
||||||
msgstr ""
|
msgstr "Shūrù shíjiānguò zhǎng"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/neopixel_write/__init__.c py/moduerrno.c
|
#: ports/esp32s2/common-hal/neopixel_write/__init__.c py/moduerrno.c
|
||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
@ -1009,7 +1025,8 @@ msgid "Invalid %q pin"
|
|||||||
msgstr "Wúxiào de %q yǐn jiǎo"
|
msgstr "Wúxiào de %q yǐn jiǎo"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
|
||||||
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/sdioio/SDCard.c
|
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
|
||||||
|
#: ports/stm/common-hal/sdioio/SDCard.c
|
||||||
msgid "Invalid %q pin selection"
|
msgid "Invalid %q pin selection"
|
||||||
msgstr "wú xiào %q yǐn jiǎo xuǎn zé"
|
msgstr "wú xiào %q yǐn jiǎo xuǎn zé"
|
||||||
|
|
||||||
@ -1023,8 +1040,9 @@ msgstr "Wúxiào de BMP wénjiàn"
|
|||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "Invalid BSSID"
|
msgid "Invalid BSSID"
|
||||||
msgstr ""
|
msgstr "Wúxiào de BSSID"
|
||||||
|
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||||
msgid "Invalid DAC pin supplied"
|
msgid "Invalid DAC pin supplied"
|
||||||
msgstr "Tí gōng liǎo wúxiào de DAC yǐn jiǎo"
|
msgstr "Tí gōng liǎo wúxiào de DAC yǐn jiǎo"
|
||||||
@ -1073,7 +1091,7 @@ msgstr "Géshì kuài dàxiǎo wúxiào"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "Invalid frequency"
|
msgid "Invalid frequency"
|
||||||
msgstr ""
|
msgstr "Wúxiào de pínlǜ"
|
||||||
|
|
||||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||||
msgid "Invalid frequency supplied"
|
msgid "Invalid frequency supplied"
|
||||||
@ -1196,7 +1214,7 @@ msgstr "Jìngxiàng shí de zuìdà X zhí wèi%d"
|
|||||||
|
|
||||||
#: shared-bindings/canio/Message.c
|
#: shared-bindings/canio/Message.c
|
||||||
msgid "Messages limited to 8 bytes"
|
msgid "Messages limited to 8 bytes"
|
||||||
msgstr ""
|
msgstr "Yóujiàn xiànzhì wèi 8 gè zì jié"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "MicroPython NLR jump failed. Likely memory corruption."
|
msgid "MicroPython NLR jump failed. Likely memory corruption."
|
||||||
@ -1308,11 +1326,11 @@ msgstr "Méiyǒu zhǎng zhěngshù zhīchí"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more channels available"
|
msgid "No more channels available"
|
||||||
msgstr ""
|
msgstr "Méiyǒu gèng duō kěyòng píndào"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more timers available"
|
msgid "No more timers available"
|
||||||
msgstr ""
|
msgstr "Méiyǒu gèng duō kěyòng de jìshí qì"
|
||||||
|
|
||||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more timers available on this pin."
|
msgid "No more timers available on this pin."
|
||||||
@ -1320,7 +1338,7 @@ msgstr "Gāi yǐn jiǎo shàng méiyǒu kěyòng de dìngshí qì."
|
|||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "No network with that ssid"
|
msgid "No network with that ssid"
|
||||||
msgstr ""
|
msgstr "Méiyǒu wǎngluò yǔ gāi ssid"
|
||||||
|
|
||||||
#: shared-module/touchio/TouchIn.c
|
#: shared-module/touchio/TouchIn.c
|
||||||
msgid "No pulldown on pin; 1Mohm recommended"
|
msgid "No pulldown on pin; 1Mohm recommended"
|
||||||
@ -1344,7 +1362,7 @@ msgstr "Nordic ruǎn shèbèi gùzhàng shēngmíng."
|
|||||||
|
|
||||||
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
#: shared-bindings/ipaddress/IPv4Address.c shared-bindings/ipaddress/__init__.c
|
||||||
msgid "Not a valid IP string"
|
msgid "Not a valid IP string"
|
||||||
msgstr ""
|
msgstr "Wúxiào de IP zìfú chuàn"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -1362,7 +1380,7 @@ msgstr "Méiyǒu yùnxíng yǐ bǎocún de dàimǎ.\n"
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/__init__.c
|
#: shared-bindings/_bleio/__init__.c
|
||||||
msgid "Not settable"
|
msgid "Not settable"
|
||||||
msgstr ""
|
msgstr "bù kě shè zhì"
|
||||||
|
|
||||||
#: shared-bindings/util.c
|
#: shared-bindings/util.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1380,11 +1398,11 @@ msgstr "Zhǐyǒu 8 huò 16 wèi dānwèi "
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||||
msgid "Only IPv4 SOCK_STREAM sockets supported"
|
msgid "Only IPv4 SOCK_STREAM sockets supported"
|
||||||
msgstr ""
|
msgstr "Jǐn zhīchí IPv4 SOCK_STREAM tào jiē zì"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||||
msgid "Only IPv4 addresses supported"
|
msgid "Only IPv4 addresses supported"
|
||||||
msgstr ""
|
msgstr "Jǐn zhīchí IPv4 dìzhǐ"
|
||||||
|
|
||||||
#: shared-module/displayio/OnDiskBitmap.c
|
#: shared-module/displayio/OnDiskBitmap.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1405,11 +1423,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/ipaddress/__init__.c
|
#: shared-bindings/ipaddress/__init__.c
|
||||||
msgid "Only raw int supported for ip"
|
msgid "Only raw int supported for ip"
|
||||||
msgstr ""
|
msgstr "Ip jǐn zhīchí raw int"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||||
msgid "Out of sockets"
|
msgid "Out of sockets"
|
||||||
msgstr ""
|
msgstr "tào jiē zì wài"
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Oversample must be multiple of 8."
|
msgid "Oversample must be multiple of 8."
|
||||||
@ -1438,6 +1456,7 @@ msgstr "Quánxiàn bèi jùjué"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
#: ports/cxd56/common-hal/analogio/AnalogIn.c
|
||||||
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
#: ports/nrf/common-hal/analogio/AnalogIn.c
|
||||||
#: ports/stm/common-hal/analogio/AnalogIn.c
|
#: ports/stm/common-hal/analogio/AnalogIn.c
|
||||||
@ -1479,7 +1498,7 @@ msgstr "Duōbiānxíng zhìshǎo xūyào 3 diǎn"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
|
"Port does not accept PWM carrier. Pass a pin, frequency and duty cycle "
|
||||||
"instead"
|
"instead"
|
||||||
msgstr ""
|
msgstr "Duānkǒu bù jiēshòu PWM zàibō. Tōngguò yǐn jiǎo, pínlǜ hé zhàn kōng bǐ"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
@ -1489,6 +1508,7 @@ msgid ""
|
|||||||
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
|
"Port does not accept pins or frequency. Construct and pass a PWMOut Carrier "
|
||||||
"instead"
|
"instead"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Duānkǒu bù jiēshòu yǐn jiǎo huò pínlǜ. Gòuzào bìng chuándì PWMOut zàibō"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "Prefix buffer must be on the heap"
|
msgid "Prefix buffer must be on the heap"
|
||||||
@ -1552,7 +1572,7 @@ msgstr "Shuāxīn tài kuàile"
|
|||||||
|
|
||||||
#: shared-bindings/canio/RemoteTransmissionRequest.c
|
#: shared-bindings/canio/RemoteTransmissionRequest.c
|
||||||
msgid "RemoteTransmissionRequests limited to 8 bytes"
|
msgid "RemoteTransmissionRequests limited to 8 bytes"
|
||||||
msgstr ""
|
msgstr "RemoteTransmissionRequests xiànzhì wèi 8 gè zì jié"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "Requested AES mode is unsupported"
|
msgid "Requested AES mode is unsupported"
|
||||||
@ -1568,7 +1588,7 @@ msgstr "Xíng xiàng bìxū shì digitalio.DigitalInOut"
|
|||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Running in safe mode! "
|
msgid "Running in safe mode! "
|
||||||
msgstr "Zài ānquán móshì xià yùnxíng!"
|
msgstr "Zài ānquán móshì xià yùnxíng! "
|
||||||
|
|
||||||
#: shared-module/sdcardio/SDCard.c
|
#: shared-module/sdcardio/SDCard.c
|
||||||
msgid "SD card CSD format not supported"
|
msgid "SD card CSD format not supported"
|
||||||
@ -1625,11 +1645,11 @@ msgstr "Xùliè huà yǐjīng shǐyòngguò"
|
|||||||
|
|
||||||
#: shared-bindings/ssl/SSLContext.c
|
#: shared-bindings/ssl/SSLContext.c
|
||||||
msgid "Server side context cannot have hostname"
|
msgid "Server side context cannot have hostname"
|
||||||
msgstr ""
|
msgstr "Fúwùqì duān shàngxiàwén bùnéng jùyǒu zhǔjī míng"
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/camera/Camera.c
|
#: ports/cxd56/common-hal/camera/Camera.c
|
||||||
msgid "Size not supported"
|
msgid "Size not supported"
|
||||||
msgstr ""
|
msgstr "bù zhī chí dà xiǎo"
|
||||||
|
|
||||||
#: shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/nvm/ByteArray.c
|
||||||
msgid "Slice and value different lengths."
|
msgid "Slice and value different lengths."
|
||||||
@ -1644,7 +1664,7 @@ msgstr "Qiēpiàn bù shòu zhīchí"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
|
||||||
msgid "SocketPool can only be used with wifi.radio"
|
msgid "SocketPool can only be used with wifi.radio"
|
||||||
msgstr ""
|
msgstr "SocketPool zhǐ néng yǔ wifi.Radio yīqǐ shǐyòng"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "Source and destination buffers must be the same length"
|
msgid "Source and destination buffers must be the same length"
|
||||||
@ -1692,7 +1712,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
||||||
msgstr ""
|
msgstr "Rgb_pins de chángdù bìxū wèi 6,12,18,24 huò 30"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1823,7 +1843,7 @@ msgstr "Wúfǎ fēnpèi huǎnchōng qū yòng yú qiānmíng zhuǎnhuàn"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/busio/I2C.c
|
#: ports/esp32s2/common-hal/busio/I2C.c
|
||||||
msgid "Unable to create lock"
|
msgid "Unable to create lock"
|
||||||
msgstr ""
|
msgstr "Wúfǎ chuàngjiàn suǒ"
|
||||||
|
|
||||||
#: shared-module/displayio/I2CDisplay.c
|
#: shared-module/displayio/I2CDisplay.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1854,11 +1874,11 @@ msgstr "Yìwài de nrfx uuid lèixíng"
|
|||||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unhandled ESP TLS error %d %d %x %d"
|
msgid "Unhandled ESP TLS error %d %d %x %d"
|
||||||
msgstr ""
|
msgstr "Wèi chǔlǐ de ESP TLS cuòwù %d %d %x %d"
|
||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "Unknown failure"
|
msgid "Unknown failure"
|
||||||
msgstr ""
|
msgstr "Wèizhī gùzhàng"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1946,7 +1966,7 @@ msgstr "WatchDogTimer dāngqián wèi yùnxíng"
|
|||||||
#: shared-bindings/watchdog/WatchDogTimer.c
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
|
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Yīdàn shèzhì wèi WatchDogMode.RESET, zé bùnéng gēnggǎi WatchDogTimer.Mode."
|
"Yīdàn shèzhì wèi WatchDogMode.RESET, zé bùnéng gēnggǎi WatchDogTimer.Mode"
|
||||||
|
|
||||||
#: shared-bindings/watchdog/WatchDogTimer.c
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
msgid "WatchDogTimer.timeout must be greater than 0"
|
msgid "WatchDogTimer.timeout must be greater than 0"
|
||||||
@ -1967,13 +1987,14 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Huānyíng lái dào Adafruit CircuitPython%s!\n"
|
"Huānyíng lái dào Adafruit CircuitPython%s!\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Qǐng fǎngwèn xuéxí. learn.Adafruit.com/category/circuitpython.\n"
|
"Qǐng fǎngwèn learn.Adafruit.Com/category/circuitpython yǐ huòqǔ xiàngmù "
|
||||||
|
"zhǐnán.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Ruò yào liè chū nèizài de mókuài, qǐng qǐng zuò yǐxià `help(\"modules\")`.\n"
|
"Yào liè chū nèizhì mókuài, qǐng zhíxíng `help(“modules”)`\n"
|
||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "WiFi password must be between 8 and 63 characters"
|
msgid "WiFi password must be between 8 and 63 characters"
|
||||||
msgstr ""
|
msgstr "WiFi mìmǎ bìxū jiè yú 8 dào 63 gè zìfú zhī jiān"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
#: ports/nrf/common-hal/_bleio/PacketBuffer.c
|
||||||
msgid "Writes not supported on Characteristic"
|
msgid "Writes not supported on Characteristic"
|
||||||
@ -1989,7 +2010,7 @@ msgstr "Nín qǐngqiú qǐdòng ānquán móshì "
|
|||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "__init__() should return None"
|
msgid "__init__() should return None"
|
||||||
msgstr "__init__() fǎnhuí not"
|
msgstr "__init__() fǎnhuí not"
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "__init__() should return None, not '%q'"
|
msgid "__init__() should return None, not '%q'"
|
||||||
@ -2145,7 +2166,7 @@ msgstr "zì jié > 8 wèi"
|
|||||||
|
|
||||||
#: py/objarray.c
|
#: py/objarray.c
|
||||||
msgid "bytes length not a multiple of item size"
|
msgid "bytes length not a multiple of item size"
|
||||||
msgstr ""
|
msgstr "zì jié chángdù, bùshì xiàngmù dàxiǎo de bèishù"
|
||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
msgid "bytes value out of range"
|
msgid "bytes value out of range"
|
||||||
@ -2405,7 +2426,8 @@ msgstr "mòrèn 'except' bìxū shì zuìhòu yīgè"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
|
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"mùbiāo huǎnchōng qū bìxū shì zì yǎnlèi huò lèixíng 'B' wèi wèi shēndù = 8"
|
"Duìyú bit_depth = 8, mùbiāo huǎnchōng qū bìxū shì zì jié shùzǔ huò lèixíng "
|
||||||
|
"wèi 'B' de shùzǔ"
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "destination buffer must be an array of type 'H' for bit_depth = 16"
|
msgid "destination buffer must be an array of type 'H' for bit_depth = 16"
|
||||||
@ -2463,11 +2485,11 @@ msgstr "lìwài bìxū láizì BaseException"
|
|||||||
|
|
||||||
#: shared-bindings/canio/CAN.c
|
#: shared-bindings/canio/CAN.c
|
||||||
msgid "expected '%q' but got '%q'"
|
msgid "expected '%q' but got '%q'"
|
||||||
msgstr ""
|
msgstr "yùqí wèi'%q'dàn dédàole'%q'"
|
||||||
|
|
||||||
#: shared-bindings/canio/CAN.c
|
#: shared-bindings/canio/CAN.c
|
||||||
msgid "expected '%q' or '%q' but got '%q'"
|
msgid "expected '%q' or '%q' but got '%q'"
|
||||||
msgstr ""
|
msgstr "yùqí wèi'%q'huò'%q', dàn huòdéle'%q'"
|
||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
msgid "expected ':' after format specifier"
|
msgid "expected ':' after format specifier"
|
||||||
@ -2680,7 +2702,7 @@ msgstr "chūshǐ zhí bìxū shì kě diédài de"
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||||
msgid "initial_value length is wrong"
|
msgid "initial_value length is wrong"
|
||||||
msgstr ""
|
msgstr "Initial_value chángdù cuòwù"
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "inline assembler must be a function"
|
msgid "inline assembler must be a function"
|
||||||
@ -2755,6 +2777,10 @@ msgstr "wúxiào géshì"
|
|||||||
msgid "invalid format specifier"
|
msgid "invalid format specifier"
|
||||||
msgstr "wúxiào de géshì biāozhù"
|
msgstr "wúxiào de géshì biāozhù"
|
||||||
|
|
||||||
|
#: shared-bindings/wifi/Radio.c
|
||||||
|
msgid "invalid hostname"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
msgstr "wúxiào de mì yào"
|
msgstr "wúxiào de mì yào"
|
||||||
@ -2877,7 +2903,7 @@ msgstr "Dāng gùdìng chángdù wèi %s shí, zuìdà chángdù bìxū wèi 0-%
|
|||||||
|
|
||||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||||
msgid "max_length must be > 0"
|
msgid "max_length must be > 0"
|
||||||
msgstr ""
|
msgstr "Max_length bìxū > 0"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "maximum recursion depth exceeded"
|
msgid "maximum recursion depth exceeded"
|
||||||
@ -2937,9 +2963,8 @@ msgid "name reused for argument"
|
|||||||
msgstr "cān shǔ míngchēng bèi chóngxīn shǐyòng"
|
msgstr "cān shǔ míngchēng bèi chóngxīn shǐyòng"
|
||||||
|
|
||||||
#: py/emitnative.c
|
#: py/emitnative.c
|
||||||
#, fuzzy
|
|
||||||
msgid "native yield"
|
msgid "native yield"
|
||||||
msgstr "yuánshēng chǎnliàng"
|
msgstr "yuán chǎn"
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -3116,11 +3141,11 @@ msgstr "ord() yùqí zìfú, dàn chángdù zìfú chuàn %d"
|
|||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c
|
#: shared-bindings/displayio/Bitmap.c
|
||||||
msgid "out of range of source"
|
msgid "out of range of source"
|
||||||
msgstr ""
|
msgstr "yuán fàn wéi wài"
|
||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c
|
#: shared-bindings/displayio/Bitmap.c
|
||||||
msgid "out of range of target"
|
msgid "out of range of target"
|
||||||
msgstr ""
|
msgstr "mù biāo fàn wéi wài"
|
||||||
|
|
||||||
#: py/objint_mpz.c
|
#: py/objint_mpz.c
|
||||||
msgid "overflow converting long int to machine word"
|
msgid "overflow converting long int to machine word"
|
||||||
@ -3129,7 +3154,7 @@ msgstr "chāo gāo zhuǎnhuàn zhǎng zhěng shùzì shí"
|
|||||||
#: py/modstruct.c
|
#: py/modstruct.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "pack expected %d items for packing (got %d)"
|
msgid "pack expected %d items for packing (got %d)"
|
||||||
msgstr ""
|
msgstr "bāo zhuāng yù qī de %d bāo zhuāng xiàng mù (dé dào %d)"
|
||||||
|
|
||||||
#: shared-bindings/_stage/Layer.c shared-bindings/_stage/Text.c
|
#: shared-bindings/_stage/Layer.c shared-bindings/_stage/Text.c
|
||||||
msgid "palette must be 32 bytes long"
|
msgid "palette must be 32 bytes long"
|
||||||
@ -3169,7 +3194,7 @@ msgstr "duōbiānxíng zhī néng zài yīgè fù jí zhōng zhùcè"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pulseio/PulseIn.c
|
#: ports/esp32s2/common-hal/pulseio/PulseIn.c
|
||||||
msgid "pop from an empty PulseIn"
|
msgid "pop from an empty PulseIn"
|
||||||
msgstr "cóng kōng de PulseIn dànchū dànchū"
|
msgstr "cóng kōng mài chōng tán chū"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
#: ports/cxd56/common-hal/pulseio/PulseIn.c
|
#: ports/cxd56/common-hal/pulseio/PulseIn.c
|
||||||
@ -3187,6 +3212,7 @@ msgstr "pow() 3 cān shǔ bùnéng wéi 0"
|
|||||||
msgid "pow() with 3 arguments requires integers"
|
msgid "pow() with 3 arguments requires integers"
|
||||||
msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
|
msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
|
||||||
|
|
||||||
|
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
|
||||||
@ -3194,8 +3220,9 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
|
|||||||
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
|
||||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||||
|
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||||
msgid "pressing boot button at start up.\n"
|
msgid "pressing boot button at start up.\n"
|
||||||
msgstr ""
|
msgstr "Zài qǐdòng shí àn qǐdòng ànniǔ.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
|
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
|
||||||
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
|
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
|
||||||
@ -3203,7 +3230,7 @@ msgstr ""
|
|||||||
#: ports/atmel-samd/boards/escornabot_makech/mpconfigboard.h
|
#: ports/atmel-samd/boards/escornabot_makech/mpconfigboard.h
|
||||||
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
|
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
|
||||||
msgid "pressing both buttons at start up.\n"
|
msgid "pressing both buttons at start up.\n"
|
||||||
msgstr ""
|
msgstr "zài qǐdòng shí tóngshí àn xià liǎng gè ànniǔ.\n"
|
||||||
|
|
||||||
#: extmod/modutimeq.c
|
#: extmod/modutimeq.c
|
||||||
msgid "queue overflow"
|
msgid "queue overflow"
|
||||||
@ -3250,7 +3277,7 @@ msgstr "yòubiān bìxū shì ndarray huò biāoliàng"
|
|||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
msgid "rsplit(None,n)"
|
msgid "rsplit(None,n)"
|
||||||
msgstr ""
|
msgstr "Rchāifēn(wú ,N)"
|
||||||
|
|
||||||
#: shared-bindings/audiocore/RawSample.c
|
#: shared-bindings/audiocore/RawSample.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -3330,7 +3357,7 @@ msgstr "sosfilt xūyào diédài cānshù"
|
|||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c
|
#: shared-bindings/displayio/Bitmap.c
|
||||||
msgid "source palette too large"
|
msgid "source palette too large"
|
||||||
msgstr ""
|
msgstr "yuán miànbǎn tài dà"
|
||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
msgid "start/end indices"
|
msgid "start/end indices"
|
||||||
@ -3463,6 +3490,10 @@ msgstr "lèixíng bùshì kě jiēshòu de jīchǔ lèixíng"
|
|||||||
msgid "type object '%q' has no attribute '%q'"
|
msgid "type object '%q' has no attribute '%q'"
|
||||||
msgstr "lèixíng duìxiàng '%q' méiyǒu shǔxìng '%q'"
|
msgstr "lèixíng duìxiàng '%q' méiyǒu shǔxìng '%q'"
|
||||||
|
|
||||||
|
#: py/objgenerator.c
|
||||||
|
msgid "type object 'generator' has no attribute '__await__'"
|
||||||
|
msgstr "lèi xíng duì xiàng 'generator' méi yǒu shǔ xìng '__await__'"
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "type takes 1 or 3 arguments"
|
msgid "type takes 1 or 3 arguments"
|
||||||
msgstr "lèixíng wèi 1 huò 3 gè cānshù"
|
msgstr "lèixíng wèi 1 huò 3 gè cānshù"
|
||||||
@ -3571,7 +3602,7 @@ msgstr "kān mén gǒu chāoshí bìxū dàyú 0"
|
|||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
msgid "width must be greater than zero"
|
msgid "width must be greater than zero"
|
||||||
msgstr ""
|
msgstr "kuāndù bìxū dàyú líng"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "window must be <= interval"
|
msgid "window must be <= interval"
|
||||||
|
42
main.c
42
main.c
@ -242,19 +242,24 @@ void cleanup_after_vm(supervisor_allocation* heap) {
|
|||||||
reset_status_led();
|
reset_status_led();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void print_code_py_status_message(safe_mode_t safe_mode) {
|
||||||
|
if (autoreload_is_enabled()) {
|
||||||
|
serial_write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n"));
|
||||||
|
} else {
|
||||||
|
serial_write_compressed(translate("Auto-reload is off.\n"));
|
||||||
|
}
|
||||||
|
if (safe_mode != NO_SAFE_MODE) {
|
||||||
|
serial_write_compressed(translate("Running in safe mode! "));
|
||||||
|
serial_write_compressed(translate("Not running saved code.\n"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool run_code_py(safe_mode_t safe_mode) {
|
bool run_code_py(safe_mode_t safe_mode) {
|
||||||
bool serial_connected_at_start = serial_connected();
|
bool serial_connected_at_start = serial_connected();
|
||||||
#if CIRCUITPY_AUTORELOAD_DELAY_MS > 0
|
#if CIRCUITPY_AUTORELOAD_DELAY_MS > 0
|
||||||
if (serial_connected_at_start) {
|
if (serial_connected_at_start) {
|
||||||
serial_write("\n");
|
serial_write("\n");
|
||||||
if (autoreload_is_enabled()) {
|
print_code_py_status_message(safe_mode);
|
||||||
serial_write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n"));
|
|
||||||
} else if (safe_mode != NO_SAFE_MODE) {
|
|
||||||
serial_write_compressed(translate("Running in safe mode! "));
|
|
||||||
serial_write_compressed(translate("Auto-reload is off.\n"));
|
|
||||||
} else if (!autoreload_is_enabled()) {
|
|
||||||
serial_write_compressed(translate("Auto-reload is off.\n"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -266,10 +271,7 @@ bool run_code_py(safe_mode_t safe_mode) {
|
|||||||
|
|
||||||
bool found_main = false;
|
bool found_main = false;
|
||||||
|
|
||||||
if (safe_mode != NO_SAFE_MODE) {
|
if (safe_mode == NO_SAFE_MODE) {
|
||||||
serial_write_compressed(translate("Running in safe mode! "));
|
|
||||||
serial_write_compressed(translate("Not running saved code.\n"));
|
|
||||||
} else {
|
|
||||||
new_status_color(MAIN_RUNNING);
|
new_status_color(MAIN_RUNNING);
|
||||||
|
|
||||||
static const char * const supported_filenames[] = STRING_LIST("code.txt", "code.py", "main.py", "main.txt");
|
static const char * const supported_filenames[] = STRING_LIST("code.txt", "code.py", "main.py", "main.txt");
|
||||||
@ -322,16 +324,8 @@ bool run_code_py(safe_mode_t safe_mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!serial_connected_before_animation && serial_connected()) {
|
if (!serial_connected_before_animation && serial_connected()) {
|
||||||
if (serial_connected_at_start) {
|
|
||||||
serial_write("\n\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!serial_connected_at_start) {
|
if (!serial_connected_at_start) {
|
||||||
if (autoreload_is_enabled()) {
|
print_code_py_status_message(safe_mode);
|
||||||
serial_write_compressed(translate("Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\n"));
|
|
||||||
} else {
|
|
||||||
serial_write_compressed(translate("Auto-reload is off.\n"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
print_safe_mode_message(safe_mode);
|
print_safe_mode_message(safe_mode);
|
||||||
serial_write("\n");
|
serial_write("\n");
|
||||||
@ -486,8 +480,10 @@ int __attribute__((used)) main(void) {
|
|||||||
reset_devices();
|
reset_devices();
|
||||||
reset_board();
|
reset_board();
|
||||||
|
|
||||||
// Turn on autoreload by default but before boot.py in case it wants to change it.
|
// If not in safe mode turn on autoreload by default but before boot.py in case it wants to change it.
|
||||||
autoreload_enable();
|
if (safe_mode == NO_SAFE_MODE) {
|
||||||
|
autoreload_enable();
|
||||||
|
}
|
||||||
|
|
||||||
// By default our internal flash is readonly to local python code and
|
// By default our internal flash is readonly to local python code and
|
||||||
// writable over USB. Set it here so that boot.py can change it.
|
// writable over USB. Set it here so that boot.py can change it.
|
||||||
|
@ -66,7 +66,7 @@ LDFLAGS += -static -static-libgcc -static-libstdc++
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# source files
|
# source files
|
||||||
SRC_C = \
|
SRC_C += \
|
||||||
main.c \
|
main.c \
|
||||||
gccollect.c \
|
gccollect.c \
|
||||||
supervisor/stub/safe_mode.c \
|
supervisor/stub/safe_mode.c \
|
||||||
|
48
ports/atmel-samd/boards/bdmicro_vina_d51/board.c
Normal file
48
ports/atmel-samd/boards/bdmicro_vina_d51/board.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* 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"
|
||||||
|
#include "mpconfigboard.h"
|
||||||
|
|
||||||
|
void board_init(void)
|
||||||
|
{
|
||||||
|
// struct port_config pin_conf;
|
||||||
|
// port_get_config_defaults(&pin_conf);
|
||||||
|
//
|
||||||
|
// pin_conf.direction = PORT_PIN_DIR_OUTPUT;
|
||||||
|
// port_pin_set_config(MICROPY_HW_LED_TX, &pin_conf);
|
||||||
|
// port_pin_set_output_level(MICROPY_HW_LED_TX, true);
|
||||||
|
//
|
||||||
|
// port_pin_set_config(MICROPY_HW_LED_RX, &pin_conf);
|
||||||
|
// port_pin_set_output_level(MICROPY_HW_LED_RX, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool board_requests_safe_mode(void) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset_board(void) {
|
||||||
|
}
|
28
ports/atmel-samd/boards/bdmicro_vina_d51/mpconfigboard.h
Normal file
28
ports/atmel-samd/boards/bdmicro_vina_d51/mpconfigboard.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#define MICROPY_HW_BOARD_NAME "BDMICRO VINA-D51"
|
||||||
|
#define MICROPY_HW_MCU_NAME "samd51n20"
|
||||||
|
|
||||||
|
#define CIRCUITPY_MCU_FAMILY samd51
|
||||||
|
|
||||||
|
// These are pins not to reset.
|
||||||
|
// Don't reset QSPI data pins
|
||||||
|
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11)
|
||||||
|
#define MICROPY_PORT_B (PORT_PB10 | PORT_PB11)
|
||||||
|
#define MICROPY_PORT_C (0)
|
||||||
|
#define MICROPY_PORT_D (0)
|
||||||
|
|
||||||
|
#define BOARD_HAS_CRYSTAL 1
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_PB23)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_PB24)
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_PB25)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_PC27)
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_PC28)
|
||||||
|
#define MICROPY_HW_LED_STATUS (&pin_PA15)
|
||||||
|
#define MICROPY_HW_LED_RX (&pin_PC05)
|
||||||
|
#define MICROPY_HW_LED_TX (&pin_PC06)
|
||||||
|
|
||||||
|
// USB is always used internally so skip the pin objects for it.
|
||||||
|
#define IGNORE_PIN_PA24 1
|
||||||
|
#define IGNORE_PIN_PA25 1
|
12
ports/atmel-samd/boards/bdmicro_vina_d51/mpconfigboard.mk
Normal file
12
ports/atmel-samd/boards/bdmicro_vina_d51/mpconfigboard.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
USB_VID = 0x31e2
|
||||||
|
USB_PID = 0x2011
|
||||||
|
USB_PRODUCT = "VINA-D51"
|
||||||
|
USB_MANUFACTURER = "BDMICRO LLC"
|
||||||
|
|
||||||
|
CHIP_VARIANT = SAMD51N20A
|
||||||
|
CHIP_FAMILY = samd51
|
||||||
|
|
||||||
|
QSPI_FLASH_FILESYSTEM = 1
|
||||||
|
EXTERNAL_FLASH_DEVICE_COUNT = 2
|
||||||
|
EXTERNAL_FLASH_DEVICES = "MX25L51245G","GD25S512MD"
|
||||||
|
LONGINT_IMPL = MPZ
|
82
ports/atmel-samd/boards/bdmicro_vina_d51/pins.c
Normal file
82
ports/atmel-samd/boards/bdmicro_vina_d51/pins.c
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_PC00) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_PC01) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA04) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB00) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB01) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB05) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PC10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PC11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA13) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PC20) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PC21) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB31) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA16) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA17) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_PA02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_PA05) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_ESP01_EN), MP_ROM_PTR(&pin_PC03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_ESP01_GPIO0), MP_ROM_PTR(&pin_PA18) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART3_RTS), MP_ROM_PTR(&pin_PA18) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_ESP01_GPIO2), MP_ROM_PTR(&pin_PA19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART3_CTS), MP_ROM_PTR(&pin_PA19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_ESP01_RESET), MP_ROM_PTR(&pin_PC02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_ESP01_RX), MP_ROM_PTR(&pin_PB21) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART3_RX), MP_ROM_PTR(&pin_PB21) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_ESP01_TX), MP_ROM_PTR(&pin_PB20) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART3_TX), MP_ROM_PTR(&pin_PB20) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL), MP_ROM_PTR(&pin_PB03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA), MP_ROM_PTR(&pin_PB02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_0), MP_ROM_PTR(&pin_PA20) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_1), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_0), MP_ROM_PTR(&pin_PB17) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_1), MP_ROM_PTR(&pin_PB13) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_0), MP_ROM_PTR(&pin_PB16) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_1), MP_ROM_PTR(&pin_PB12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_SDI), MP_ROM_PTR(&pin_PA22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2S_SDO), MP_ROM_PTR(&pin_PA21) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED_STATUS), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_PB18) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_PB19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED_RX), MP_ROM_PTR(&pin_PC05) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED_TX), MP_ROM_PTR(&pin_PC06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RS485_RE), MP_ROM_PTR(&pin_PC15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RS485_RX), MP_ROM_PTR(&pin_PC13) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RS485_TE), MP_ROM_PTR(&pin_PC14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RS485_TX), MP_ROM_PTR(&pin_PC12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI_MISO), MP_ROM_PTR(&pin_PB23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI_MOSI), MP_ROM_PTR(&pin_PC27) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PC27) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI_SCK), MP_ROM_PTR(&pin_PC28) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PC28) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI_SS), MP_ROM_PTR(&pin_PB22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PB22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART1_CTS), MP_ROM_PTR(&pin_PC19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART1_RTS), MP_ROM_PTR(&pin_PC18) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART1_RX), MP_ROM_PTR(&pin_PC17) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART1_TX), MP_ROM_PTR(&pin_PC16) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART2_RX), MP_ROM_PTR(&pin_PB25) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB25) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART2_TX), MP_ROM_PTR(&pin_PB24) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB24) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -16,6 +16,7 @@ CIRCUITPY_COUNTIO = 0
|
|||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CPERIPHERAL = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
MICROPY_PY_ASYNC_AWAIT = 0
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ LONGINT_IMPL = MPZ
|
|||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CPERIPHERAL = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
|
MICROPY_PY_ASYNC_AWAIT = 0
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
CFLAGS_INLINE_LIMIT = 55
|
CFLAGS_INLINE_LIMIT = 55
|
||||||
|
38
ports/atmel-samd/boards/dynossat_edu_eps/board.c
Normal file
38
ports/atmel-samd/boards/dynossat_edu_eps/board.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* 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) {
|
||||||
|
}
|
40
ports/atmel-samd/boards/dynossat_edu_eps/mpconfigboard.h
Normal file
40
ports/atmel-samd/boards/dynossat_edu_eps/mpconfigboard.h
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#define MICROPY_HW_BOARD_NAME "DynOSSAT-EDU-EPS"
|
||||||
|
#define MICROPY_HW_MCU_NAME "samd21g18"
|
||||||
|
|
||||||
|
#define MICROPY_HW_NEOPIXEL (&pin_PA06)
|
||||||
|
|
||||||
|
#define SPI_FLASH_MOSI_PIN &pin_PA22
|
||||||
|
#define SPI_FLASH_MISO_PIN &pin_PA21
|
||||||
|
#define SPI_FLASH_SCK_PIN &pin_PA23
|
||||||
|
#define SPI_FLASH_CS_PIN &pin_PA20
|
||||||
|
|
||||||
|
// These are pins not to reset.
|
||||||
|
#define MICROPY_PORT_A ( 0 )
|
||||||
|
#define MICROPY_PORT_B ( 0 )
|
||||||
|
#define MICROPY_PORT_C ( 0 )
|
||||||
|
|
||||||
|
#define BOARD_HAS_CRYSTAL 1
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_PA09)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_PA08)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_PA12)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_PB10)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_PA17)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_PA16)
|
||||||
|
|
||||||
|
// 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_PA03 1
|
||||||
|
#define IGNORE_PIN_PA13 1
|
||||||
|
#define IGNORE_PIN_PA14 1
|
||||||
|
#define IGNORE_PIN_PA15 1
|
||||||
|
#define IGNORE_PIN_PA18 1
|
||||||
|
#define IGNORE_PIN_PA27 1
|
||||||
|
#define IGNORE_PIN_PA28 1
|
||||||
|
#define IGNORE_PIN_PB08 1
|
||||||
|
#define IGNORE_PIN_PB22 1
|
||||||
|
#define IGNORE_PIN_PB23 1
|
23
ports/atmel-samd/boards/dynossat_edu_eps/mpconfigboard.mk
Normal file
23
ports/atmel-samd/boards/dynossat_edu_eps/mpconfigboard.mk
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
USB_VID = 0x04D8
|
||||||
|
USB_PID = 0xEAD1
|
||||||
|
|
||||||
|
USB_PRODUCT = "DynOSSAT-EDU-EPS-v1.0"
|
||||||
|
USB_MANUFACTURER = "BH Dynamics"
|
||||||
|
|
||||||
|
CHIP_VARIANT = SAMD21G18A
|
||||||
|
CHIP_FAMILY = samd21
|
||||||
|
|
||||||
|
SPI_FLASH_FILESYSTEM = 1
|
||||||
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
|
EXTERNAL_FLASH_DEVICES = "GD25Q32C"
|
||||||
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
|
CIRCUITPY_BITBANGIO = 0
|
||||||
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
|
CIRCUITPY_COUNTIO = 0
|
||||||
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
|
||||||
|
SUPEROPT_GC = 0
|
32
ports/atmel-samd/boards/dynossat_edu_eps/pins.c
Normal file
32
ports/atmel-samd/boards/dynossat_edu_eps/pins.c
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D30), MP_ROM_PTR(&pin_PA30) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D31), MP_ROM_PTR(&pin_PA31) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA17) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_OVTEMP), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA16) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SAT_RESET), MP_ROM_PTR(&pin_PA11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SAT_PWR_ENABLE), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_INT_IMU_OBC), MP_ROM_PTR(&pin_PA19) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PB03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_PWRMON_SDA), MP_ROM_PTR(&pin_PA04) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_PWRMON_SCL), MP_ROM_PTR(&pin_PA05) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_PWRMON_ALERT), MP_ROM_PTR(&pin_PB03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C_MONITOR), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
38
ports/atmel-samd/boards/dynossat_edu_obc/board.c
Normal file
38
ports/atmel-samd/boards/dynossat_edu_obc/board.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* 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) {
|
||||||
|
}
|
44
ports/atmel-samd/boards/dynossat_edu_obc/mpconfigboard.h
Normal file
44
ports/atmel-samd/boards/dynossat_edu_obc/mpconfigboard.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#define MICROPY_HW_BOARD_NAME "DynOSSAT-EDU-OBC"
|
||||||
|
#define MICROPY_HW_MCU_NAME "samd51j20"
|
||||||
|
|
||||||
|
#define MICROPY_HW_NEOPIXEL (&pin_PA08)
|
||||||
|
|
||||||
|
#define SPI_FLASH_MOSI_PIN &pin_PA16
|
||||||
|
#define SPI_FLASH_MISO_PIN &pin_PA18
|
||||||
|
#define SPI_FLASH_SCK_PIN &pin_PA17
|
||||||
|
#define SPI_FLASH_CS_PIN &pin_PA19
|
||||||
|
|
||||||
|
// These are pins not to reset.
|
||||||
|
#define MICROPY_PORT_A ( PORT_PA16 | PORT_PA17 | PORT_PA18 | PORT_PA19 )
|
||||||
|
#define MICROPY_PORT_B ( 0 )
|
||||||
|
#define MICROPY_PORT_C ( 0 )
|
||||||
|
#define MICROPY_PORT_D ( 0 )
|
||||||
|
|
||||||
|
#define BOARD_HAS_CRYSTAL 1
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_PB13)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_PB12)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_PB03)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_PB02)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_PB01)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_PA23)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_PA22)
|
||||||
|
|
||||||
|
// 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_PA02 1
|
||||||
|
#define IGNORE_PIN_PA13 1
|
||||||
|
#define IGNORE_PIN_PA14 1
|
||||||
|
#define IGNORE_PIN_PA20 1
|
||||||
|
#define IGNORE_PIN_PA21 1
|
||||||
|
#define IGNORE_PIN_PA27 1
|
||||||
|
#define IGNORE_PIN_PB00 1
|
||||||
|
#define IGNORE_PIN_PB04 1
|
||||||
|
#define IGNORE_PIN_PB05 1
|
||||||
|
#define IGNORE_PIN_PB16 1
|
||||||
|
#define IGNORE_PIN_PB17 1
|
||||||
|
#define IGNORE_PIN_PB23 1
|
||||||
|
#define IGNORE_PIN_PB31 1
|
16
ports/atmel-samd/boards/dynossat_edu_obc/mpconfigboard.mk
Normal file
16
ports/atmel-samd/boards/dynossat_edu_obc/mpconfigboard.mk
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
USB_VID = 0x04D8
|
||||||
|
USB_PID = 0xEAD2
|
||||||
|
|
||||||
|
USB_PRODUCT = "DynOSSAT-EDU-OBC-v1.0"
|
||||||
|
USB_MANUFACTURER = "BH Dynamics"
|
||||||
|
|
||||||
|
CHIP_VARIANT = SAMD51J20A
|
||||||
|
CHIP_FAMILY = samd51
|
||||||
|
|
||||||
|
SPI_FLASH_FILESYSTEM = 1
|
||||||
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
|
EXTERNAL_FLASH_DEVICES = "GD25Q32C"
|
||||||
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
SUPEROPT_GC = 0
|
40
ports/atmel-samd/boards/dynossat_edu_obc/pins.c
Normal file
40
ports/atmel-samd/boards/dynossat_edu_obc/pins.c
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA05) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB01) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D30), MP_ROM_PTR(&pin_PA22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D31), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB13) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA11) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB30) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_PA30) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_PA31) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PB22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_INT_IMU), MP_ROM_PTR(&pin_PA12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SAT_POWER), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -22,6 +22,7 @@ CIRCUITPY_USB_MIDI = 0
|
|||||||
CIRCUITPY_USB_HID = 0
|
CIRCUITPY_USB_HID = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CFLAGS_INLINE_LIMIT = 35
|
CFLAGS_INLINE_LIMIT = 35
|
||||||
|
|
||||||
# Make more room.
|
# Make more room.
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ CIRCUITPY_SAMD = 0
|
|||||||
CIRCUITPY_USB_MIDI = 0
|
CIRCUITPY_USB_MIDI = 0
|
||||||
CIRCUITPY_USB_HID = 0
|
CIRCUITPY_USB_HID = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 35
|
CFLAGS_INLINE_LIMIT = 35
|
||||||
# Make more room.
|
# Make more room.
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
@ -11,12 +11,12 @@ LONGINT_IMPL = MPZ
|
|||||||
|
|
||||||
# Not needed.
|
# Not needed.
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
|
||||||
CIRCUITPY_RGBMATRIX = 0
|
|
||||||
CIRCUITPY_PS2IO = 0
|
|
||||||
CIRCUITPY_AUDIOMP3 = 0
|
CIRCUITPY_AUDIOMP3 = 0
|
||||||
|
CIRCUITPY_BLEIO_HCI = 0
|
||||||
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
|
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||||
|
CIRCUITPY_PS2IO = 0
|
||||||
|
CIRCUITPY_RGBMATRIX = 0
|
||||||
CIRCUITPY_ULAB = 0
|
CIRCUITPY_ULAB = 0
|
||||||
|
|
||||||
# Override optimization to keep binary small
|
# Override optimization to keep binary small
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
#define MICROPY_PORT_C (0)
|
#define MICROPY_PORT_C (0)
|
||||||
#define MICROPY_PORT_D (0)
|
#define MICROPY_PORT_D (0)
|
||||||
|
|
||||||
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
|
#define DEFAULT_I2C_BUS_SCL (&pin_PB30)
|
||||||
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
|
#define DEFAULT_I2C_BUS_SDA (&pin_PB31)
|
||||||
|
|
||||||
#define DEFAULT_SPI_BUS_SCK (&pin_PA16)
|
#define DEFAULT_SPI_BUS_SCK (&pin_PA16)
|
||||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PA19)
|
#define DEFAULT_SPI_BUS_MOSI (&pin_PA19)
|
||||||
|
@ -6,10 +6,6 @@ USB_MANUFACTURER = "Adafruit Industries LLC"
|
|||||||
CHIP_VARIANT = SAMD51J19A
|
CHIP_VARIANT = SAMD51J19A
|
||||||
CHIP_FAMILY = samd51
|
CHIP_FAMILY = samd51
|
||||||
|
|
||||||
# Support _bleio via the on-board ESP32 module.
|
|
||||||
CIRCUITPY_BLEIO = 1
|
|
||||||
CIRCUITPY_BLEIO_HCI = 1
|
|
||||||
|
|
||||||
QSPI_FLASH_FILESYSTEM = 1
|
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"
|
||||||
|
@ -17,6 +17,7 @@ CIRCUITPY_COUNTIO = 0
|
|||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CPERIPHERAL = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
|
MICROPY_PY_ASYNC_AWAIT = 0
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ LONGINT_IMPL = MPZ
|
|||||||
# Disable modules that are unusable on this special-purpose board.
|
# Disable modules that are unusable on this special-purpose board.
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_AUDIOIO = 0
|
CIRCUITPY_AUDIOIO = 0
|
||||||
CIRCUITPY_BLEIO = 0
|
CIRCUITPY_BLEIO_HCI = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
|
@ -51,7 +51,6 @@ void pulsein_reset(void);
|
|||||||
void pulsein_interrupt_handler(uint8_t channel);
|
void pulsein_interrupt_handler(uint8_t channel);
|
||||||
void pulsein_timer_interrupt_handler(uint8_t index);
|
void pulsein_timer_interrupt_handler(uint8_t index);
|
||||||
#ifdef SAMD21
|
#ifdef SAMD21
|
||||||
void rtc_set_continuous(void);
|
|
||||||
void rtc_start_pulsein(void);
|
void rtc_start_pulsein(void);
|
||||||
void rtc_end_pulsein(void);
|
void rtc_end_pulsein(void);
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,6 +37,9 @@ ifndef CIRCUITPY_TOUCHIO_USE_NATIVE
|
|||||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# No room for HCI _bleio on SAMD21.
|
||||||
|
CIRCUITPY_BLEIO_HCI = 0
|
||||||
|
|
||||||
CIRCUITPY_SDCARDIO ?= 0
|
CIRCUITPY_SDCARDIO ?= 0
|
||||||
|
|
||||||
# Not enough RAM for framebuffers
|
# Not enough RAM for framebuffers
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 2ff4ab05101ce7d3e105009cc6612df6e992123f
|
Subproject commit a7e39c4d01aa5916015beecb021777617e77b0ad
|
@ -96,19 +96,20 @@
|
|||||||
#endif
|
#endif
|
||||||
volatile bool hold_interrupt = false;
|
volatile bool hold_interrupt = false;
|
||||||
#ifdef SAMD21
|
#ifdef SAMD21
|
||||||
|
static void rtc_set_continuous(bool continuous) {
|
||||||
|
while (RTC->MODE0.STATUS.bit.SYNCBUSY);
|
||||||
|
RTC->MODE0.READREQ.reg = (continuous ? RTC_READREQ_RCONT : 0) | 0x0010;
|
||||||
|
while (RTC->MODE0.STATUS.bit.SYNCBUSY);
|
||||||
|
}
|
||||||
|
|
||||||
void rtc_start_pulsein(void) {
|
void rtc_start_pulsein(void) {
|
||||||
rtc_set_continuous();
|
rtc_set_continuous(true);
|
||||||
hold_interrupt = true;
|
hold_interrupt = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rtc_end_pulsein(void) {
|
void rtc_end_pulsein(void) {
|
||||||
hold_interrupt = false;
|
hold_interrupt = false;
|
||||||
}
|
rtc_set_continuous(false);
|
||||||
|
|
||||||
void rtc_set_continuous(void) {
|
|
||||||
while (RTC->MODE0.STATUS.bit.SYNCBUSY);
|
|
||||||
RTC->MODE0.READREQ.reg = RTC_READREQ_RREQ | RTC_READREQ_RCONT | 0x0010;
|
|
||||||
while (RTC->MODE0.STATUS.bit.SYNCBUSY);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -430,6 +431,42 @@ uint32_t port_get_saved_word(void) {
|
|||||||
static volatile uint64_t overflowed_ticks = 0;
|
static volatile uint64_t overflowed_ticks = 0;
|
||||||
static volatile bool _ticks_enabled = false;
|
static volatile bool _ticks_enabled = false;
|
||||||
|
|
||||||
|
static uint32_t _get_count(uint32_t* overflow_count) {
|
||||||
|
#ifdef SAM_D5X_E5X
|
||||||
|
while ((RTC->MODE0.SYNCBUSY.reg & (RTC_MODE0_SYNCBUSY_COUNTSYNC | RTC_MODE0_SYNCBUSY_COUNT)) != 0) {}
|
||||||
|
#endif
|
||||||
|
#ifdef SAMD21
|
||||||
|
// Request a read so we don't stall the bus later. See section 14.3.1.5 Read Request
|
||||||
|
RTC->MODE0.READREQ.reg = RTC_READREQ_RREQ | 0x0010;
|
||||||
|
while (RTC->MODE0.STATUS.bit.SYNCBUSY != 0) {}
|
||||||
|
#endif
|
||||||
|
// Disable interrupts so we can grab the count and the overflow.
|
||||||
|
common_hal_mcu_disable_interrupts();
|
||||||
|
uint32_t count = RTC->MODE0.COUNT.reg;
|
||||||
|
if (overflow_count != NULL) {
|
||||||
|
*overflow_count = overflowed_ticks;
|
||||||
|
}
|
||||||
|
common_hal_mcu_enable_interrupts();
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void _port_interrupt_after_ticks(uint32_t ticks) {
|
||||||
|
uint32_t current_ticks = _get_count(NULL);
|
||||||
|
if (ticks > 1 << 28) {
|
||||||
|
// We'll interrupt sooner with an overflow.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#ifdef SAMD21
|
||||||
|
if (hold_interrupt) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
RTC->MODE0.COMP[0].reg = current_ticks + (ticks << 4);
|
||||||
|
RTC->MODE0.INTFLAG.reg = RTC_MODE0_INTFLAG_CMP0;
|
||||||
|
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_CMP0;
|
||||||
|
}
|
||||||
|
|
||||||
void RTC_Handler(void) {
|
void RTC_Handler(void) {
|
||||||
uint32_t intflag = RTC->MODE0.INTFLAG.reg;
|
uint32_t intflag = RTC->MODE0.INTFLAG.reg;
|
||||||
if (intflag & RTC_MODE0_INTFLAG_OVF) {
|
if (intflag & RTC_MODE0_INTFLAG_OVF) {
|
||||||
@ -452,7 +489,7 @@ void RTC_Handler(void) {
|
|||||||
supervisor_tick();
|
supervisor_tick();
|
||||||
// Check _ticks_enabled again because a tick handler may have turned it off.
|
// Check _ticks_enabled again because a tick handler may have turned it off.
|
||||||
if (_ticks_enabled) {
|
if (_ticks_enabled) {
|
||||||
port_interrupt_after_ticks(1);
|
_port_interrupt_after_ticks(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -462,24 +499,14 @@ void RTC_Handler(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t _get_count(void) {
|
|
||||||
#ifdef SAM_D5X_E5X
|
|
||||||
while ((RTC->MODE0.SYNCBUSY.reg & (RTC_MODE0_SYNCBUSY_COUNTSYNC | RTC_MODE0_SYNCBUSY_COUNT)) != 0) {}
|
|
||||||
#endif
|
|
||||||
#ifdef SAMD21
|
|
||||||
while (RTC->MODE0.STATUS.bit.SYNCBUSY != 0) {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return RTC->MODE0.COUNT.reg;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t port_get_raw_ticks(uint8_t* subticks) {
|
uint64_t port_get_raw_ticks(uint8_t* subticks) {
|
||||||
uint32_t current_ticks = _get_count();
|
uint32_t overflow_count;
|
||||||
|
uint32_t current_ticks = _get_count(&overflow_count);
|
||||||
if (subticks != NULL) {
|
if (subticks != NULL) {
|
||||||
*subticks = (current_ticks % 16) * 2;
|
*subticks = (current_ticks % 16) * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return overflowed_ticks + current_ticks / 16;
|
return overflow_count + current_ticks / 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable 1/1024 second tick.
|
// Enable 1/1024 second tick.
|
||||||
@ -489,8 +516,9 @@ void port_enable_tick(void) {
|
|||||||
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_PER2;
|
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_PER2;
|
||||||
#endif
|
#endif
|
||||||
#ifdef SAMD21
|
#ifdef SAMD21
|
||||||
|
// TODO: Switch to using the PER *event* from the RTC to generate an interrupt via EVSYS.
|
||||||
_ticks_enabled = true;
|
_ticks_enabled = true;
|
||||||
port_interrupt_after_ticks(1);
|
_port_interrupt_after_ticks(1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,20 +533,14 @@ void port_disable_tick(void) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is called by sleep, we ignore it when our ticks are enabled because
|
||||||
|
// they'll wake us up earlier. If we don't, we'll mess up ticks by overwriting
|
||||||
|
// the next RTC wake up time.
|
||||||
void port_interrupt_after_ticks(uint32_t ticks) {
|
void port_interrupt_after_ticks(uint32_t ticks) {
|
||||||
uint32_t current_ticks = _get_count();
|
if (_ticks_enabled) {
|
||||||
if (ticks > 1 << 28) {
|
|
||||||
// We'll interrupt sooner with an overflow.
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef SAMD21
|
_port_interrupt_after_ticks(ticks);
|
||||||
if (hold_interrupt) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
RTC->MODE0.COMP[0].reg = current_ticks + (ticks << 4);
|
|
||||||
RTC->MODE0.INTFLAG.reg = RTC_MODE0_INTFLAG_CMP0;
|
|
||||||
RTC->MODE0.INTENSET.reg = RTC_MODE0_INTENSET_CMP0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void port_sleep_until_interrupt(void) {
|
void port_sleep_until_interrupt(void) {
|
||||||
|
@ -162,7 +162,7 @@ SRC_SHARED_MODULE_EXPANDED = $(addprefix shared-bindings/, $(SRC_SHARED_MODULE))
|
|||||||
|
|
||||||
SRC_S = supervisor/cpu.s
|
SRC_S = supervisor/cpu.s
|
||||||
|
|
||||||
SRC_C = \
|
SRC_C += \
|
||||||
background.c \
|
background.c \
|
||||||
fatfs_port.c \
|
fatfs_port.c \
|
||||||
mphalport.c \
|
mphalport.c \
|
||||||
|
@ -6,7 +6,7 @@ set(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf)
|
|||||||
|
|
||||||
# The component list here determines what options we get in menuconfig and what the ninja file
|
# The component list here determines what options we get in menuconfig and what the ninja file
|
||||||
# can build.
|
# can build.
|
||||||
set(COMPONENTS esptool_py soc driver log main esp-tls mbedtls esp_event esp_netif esp_wifi lwip wpa_supplicant freertos)
|
set(COMPONENTS esptool_py soc driver log main esp-tls mbedtls esp_event esp_adc_cal esp_netif esp_wifi lwip wpa_supplicant freertos)
|
||||||
|
|
||||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
project(circuitpython)
|
project(circuitpython)
|
||||||
|
@ -97,6 +97,7 @@ INC += -isystem esp-idf/components/lwip/include/apps/sntp
|
|||||||
INC += -isystem esp-idf/components/hal/include
|
INC += -isystem esp-idf/components/hal/include
|
||||||
INC += -isystem esp-idf/components/hal/esp32s2/include
|
INC += -isystem esp-idf/components/hal/esp32s2/include
|
||||||
INC += -isystem esp-idf/components/log/include/
|
INC += -isystem esp-idf/components/log/include/
|
||||||
|
INC += -isystem esp-idf/components/driver/esp32s2/include
|
||||||
INC += -isystem esp-idf/components/soc/include
|
INC += -isystem esp-idf/components/soc/include
|
||||||
INC += -isystem esp-idf/components/soc/src/esp32s2/include
|
INC += -isystem esp-idf/components/soc/src/esp32s2/include
|
||||||
INC += -isystem esp-idf/components/soc/soc/include
|
INC += -isystem esp-idf/components/soc/soc/include
|
||||||
@ -268,14 +269,13 @@ menuconfig: $(BUILD)/esp-idf/config
|
|||||||
$(Q)grep -Fvxf $(DEBUG_SDKCONFIG) -f $(FLASH_SDKCONFIG) $(BUILD)/sdkconfig.diff > boards/$(BOARD)/sdkconfig
|
$(Q)grep -Fvxf $(DEBUG_SDKCONFIG) -f $(FLASH_SDKCONFIG) $(BUILD)/sdkconfig.diff > boards/$(BOARD)/sdkconfig
|
||||||
|
|
||||||
# qstr builds include headers so we need to make sure they are up to date
|
# qstr builds include headers so we need to make sure they are up to date
|
||||||
$(HEADER_BUILD)/qstr.i.last: | $(BUILD)/esp-idf/config/sdkconfig.h
|
$(HEADER_BUILD)/qstr.split: | $(BUILD)/esp-idf/config/sdkconfig.h
|
||||||
|
|
||||||
# Order here matters
|
ESP_IDF_COMPONENTS_LINK = freertos log hal esp_system esp_adc_cal esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
|
||||||
ESP_IDF_COMPONENTS_LINK = freertos log esp_system esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
|
|
||||||
|
|
||||||
ESP_IDF_COMPONENTS_INCLUDE = driver freertos log soc
|
ESP_IDF_COMPONENTS_INCLUDE = driver freertos log soc
|
||||||
|
|
||||||
INC += $(foreach component, $(ESP_IDF_COMPONENTS_INCLUDE), -Iesp-idf/components/$(component)/include)
|
INC += $(foreach component, $(ESP_IDF_COMPONENTS_INCLUDE), -isystem esp-idf/components/$(component)/include)
|
||||||
|
|
||||||
ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
|
ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
|
||||||
ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
|
ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
|
||||||
@ -283,11 +283,11 @@ ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENT
|
|||||||
MBEDTLS_COMPONENTS_LINK = crypto tls x509
|
MBEDTLS_COMPONENTS_LINK = crypto tls x509
|
||||||
MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component).a)
|
MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component).a)
|
||||||
|
|
||||||
BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libhal.a
|
BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libxt_hal.a
|
||||||
BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a librtc.a libsmartconfig.a libphy.a
|
BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a librtc.a libsmartconfig.a libphy.a
|
||||||
BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/esp32s2/, $(BINARY_WIFI_BLOBS))
|
BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/esp32s2/, $(BINARY_WIFI_BLOBS))
|
||||||
|
|
||||||
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/soc/soc/esp32s2/libsoc_esp32s2.a esp-idf/components/xtensa/esp32s2/libhal.a
|
ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/soc/soc/esp32s2/libsoc_esp32s2.a esp-idf/components/xtensa/esp32s2/libxt_hal.a
|
||||||
ESP_AUTOGEN_LD = $(BUILD)/esp-idf/esp-idf/esp32s2/esp32s2_out.ld $(BUILD)/esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld
|
ESP_AUTOGEN_LD = $(BUILD)/esp-idf/esp-idf/esp32s2/esp32s2_out.ld $(BUILD)/esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld
|
||||||
|
|
||||||
FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE)
|
FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE)
|
||||||
|
@ -31,3 +31,9 @@ CONFIG_SPIRAM_USE_MEMMAP=y
|
|||||||
CONFIG_SPIRAM_MEMTEST=y
|
CONFIG_SPIRAM_MEMTEST=y
|
||||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
# end of SPI RAM config
|
# end of SPI RAM config
|
||||||
|
|
||||||
|
#
|
||||||
|
# LWIP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_LOCAL_HOSTNAME="Metro-ESP32S2"
|
||||||
|
# end of LWIP
|
||||||
|
@ -32,3 +32,8 @@ CONFIG_SPIRAM_MEMTEST=y
|
|||||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
# end of SPI RAM config
|
# end of SPI RAM config
|
||||||
|
|
||||||
|
#
|
||||||
|
# LWIP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_LOCAL_HOSTNAME="microS2"
|
||||||
|
# end of LWIP
|
||||||
|
@ -32,3 +32,8 @@ CONFIG_SPIRAM_MEMTEST=y
|
|||||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
# end of SPI RAM config
|
# end of SPI RAM config
|
||||||
|
|
||||||
|
#
|
||||||
|
# LWIP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_LOCAL_HOSTNAME="UMFeatherS2"
|
||||||
|
# end of LWIP
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
//Micropython setup
|
//Micropython setup
|
||||||
|
|
||||||
#define MICROPY_HW_BOARD_NAME "FeatherS2"
|
#define MICROPY_HW_BOARD_NAME "FeatherS2 PreRelease"
|
||||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||||
|
|
||||||
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
|
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
|
||||||
|
@ -33,3 +33,9 @@ CONFIG_SPIRAM_USE_MEMMAP=y
|
|||||||
CONFIG_SPIRAM_MEMTEST=y
|
CONFIG_SPIRAM_MEMTEST=y
|
||||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
# end of SPI RAM config
|
# end of SPI RAM config
|
||||||
|
|
||||||
|
#
|
||||||
|
# LWIP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_LOCAL_HOSTNAME="UMFeatherS2"
|
||||||
|
# end of LWIP
|
||||||
|
98
ports/esp32s2/common-hal/analogio/AnalogIn.c
Normal file
98
ports/esp32s2/common-hal/analogio/AnalogIn.c
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Lucian Copeland 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 "common-hal/analogio/AnalogIn.h"
|
||||||
|
#include "py/mperrno.h"
|
||||||
|
#include "py/runtime.h"
|
||||||
|
#include "supervisor/shared/translate.h"
|
||||||
|
|
||||||
|
#include "components/driver/include/driver/adc_common.h"
|
||||||
|
#include "components/esp_adc_cal/include/esp_adc_cal.h"
|
||||||
|
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
#define DEFAULT_VREF 1100
|
||||||
|
#define NO_OF_SAMPLES 64
|
||||||
|
#define ATTENUATION ADC_ATTEN_DB_11
|
||||||
|
#define DATA_WIDTH ADC_WIDTH_BIT_13
|
||||||
|
|
||||||
|
void common_hal_analogio_analogin_construct(analogio_analogin_obj_t* self,
|
||||||
|
const mcu_pin_obj_t *pin) {
|
||||||
|
if (pin->adc_index == 0 || pin->adc_channel == ADC_CHANNEL_MAX) {
|
||||||
|
mp_raise_ValueError(translate("Pin does not have ADC capabilities"));
|
||||||
|
}
|
||||||
|
common_hal_mcu_pin_claim(pin);
|
||||||
|
self->pin = pin;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool common_hal_analogio_analogin_deinited(analogio_analogin_obj_t *self) {
|
||||||
|
return self->pin == NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_analogio_analogin_deinit(analogio_analogin_obj_t *self) {
|
||||||
|
if (common_hal_analogio_analogin_deinited(self)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
reset_pin_number(self->pin->number);
|
||||||
|
self->pin = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
|
||||||
|
if (self->pin->adc_index == ADC_UNIT_1) {
|
||||||
|
adc1_config_width(DATA_WIDTH);
|
||||||
|
adc1_config_channel_atten((adc1_channel_t)self->pin->adc_channel, ATTENUATION);
|
||||||
|
} else if (self->pin->adc_index == ADC_UNIT_2) {
|
||||||
|
adc2_config_channel_atten((adc2_channel_t)self->pin->adc_channel, ATTENUATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Automatically select calibration process depending on status of efuse
|
||||||
|
esp_adc_cal_characteristics_t *adc_chars = calloc(1, sizeof(esp_adc_cal_characteristics_t));
|
||||||
|
esp_adc_cal_characterize(self->pin->adc_index, ATTENUATION, DATA_WIDTH, DEFAULT_VREF, adc_chars);
|
||||||
|
|
||||||
|
uint32_t adc_reading = 0;
|
||||||
|
//Multisampling
|
||||||
|
for (int i = 0; i < NO_OF_SAMPLES; i++) {
|
||||||
|
if (self->pin->adc_index == ADC_UNIT_1) {
|
||||||
|
adc_reading += adc1_get_raw((adc1_channel_t)self->pin->adc_channel);
|
||||||
|
} else {
|
||||||
|
int raw;
|
||||||
|
esp_err_t r = adc2_get_raw((adc2_channel_t)self->pin->adc_channel, DATA_WIDTH, &raw);
|
||||||
|
if ( r != ESP_OK ) {
|
||||||
|
mp_raise_ValueError(translate("ADC2 is being used by WiFi"));
|
||||||
|
}
|
||||||
|
adc_reading += raw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
adc_reading /= NO_OF_SAMPLES;
|
||||||
|
|
||||||
|
// This corrects non-linear regions of the ADC range with a LUT, so it's a better reading than raw
|
||||||
|
uint32_t voltage = esp_adc_cal_raw_to_voltage(adc_reading, adc_chars);
|
||||||
|
return voltage * ((1 << 16) - 1)/3300;
|
||||||
|
}
|
||||||
|
|
||||||
|
float common_hal_analogio_analogin_get_reference_voltage(analogio_analogin_obj_t *self) {
|
||||||
|
return 3.3f;
|
||||||
|
}
|
42
ports/esp32s2/common-hal/analogio/AnalogIn.h
Normal file
42
ports/esp32s2/common-hal/analogio/AnalogIn.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Lucian Copeland 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGIN_H
|
||||||
|
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGIN_H
|
||||||
|
|
||||||
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
#include "components/hal/include/hal/adc_types.h"
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "freertos/semphr.h"
|
||||||
|
#include "py/obj.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
mp_obj_base_t base;
|
||||||
|
const mcu_pin_obj_t * pin;
|
||||||
|
} analogio_analogin_obj_t;
|
||||||
|
|
||||||
|
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGIN_H
|
73
ports/esp32s2/common-hal/analogio/AnalogOut.c
Normal file
73
ports/esp32s2/common-hal/analogio/AnalogOut.c
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* SPDX-FileCopyrightText: Copyright (c) 2013, 2014 Damien P. George
|
||||||
|
* Copyright (c) 2019, Lucian Copeland 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 <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "py/mperrno.h"
|
||||||
|
#include "py/runtime.h"
|
||||||
|
|
||||||
|
#include "shared-bindings/analogio/AnalogOut.h"
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
#include "supervisor/shared/translate.h"
|
||||||
|
|
||||||
|
#include "components/driver/include/driver/dac_common.h"
|
||||||
|
|
||||||
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
|
||||||
|
const mcu_pin_obj_t *pin) {
|
||||||
|
if (pin == &pin_GPIO17) {
|
||||||
|
self->channel = DAC_CHANNEL_1;
|
||||||
|
} else if (pin == &pin_GPIO18) {
|
||||||
|
self->channel = DAC_CHANNEL_2;
|
||||||
|
} else {
|
||||||
|
mp_raise_ValueError(translate("Invalid DAC pin supplied"));
|
||||||
|
}
|
||||||
|
dac_output_enable(self->channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool common_hal_analogio_analogout_deinited(analogio_analogout_obj_t *self) {
|
||||||
|
return (self->channel == DAC_CHANNEL_MAX);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) {
|
||||||
|
dac_output_disable(self->channel);
|
||||||
|
self->channel = DAC_CHANNEL_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_analogio_analogout_set_value(analogio_analogout_obj_t *self,
|
||||||
|
uint16_t value) {
|
||||||
|
uint8_t dac_value = (value * 255) / 65535;
|
||||||
|
dac_output_enable(self->channel);
|
||||||
|
dac_output_voltage(self->channel, dac_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void analogout_reset(void) {
|
||||||
|
dac_output_disable(DAC_CHANNEL_1);
|
||||||
|
dac_output_disable(DAC_CHANNEL_2);
|
||||||
|
}
|
43
ports/esp32s2/common-hal/analogio/AnalogOut.h
Normal file
43
ports/esp32s2/common-hal/analogio/AnalogOut.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 Scott Shawcroft
|
||||||
|
* Copyright (c) 2019 Lucian Copeland 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
||||||
|
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
||||||
|
|
||||||
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
#include "py/obj.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
mp_obj_base_t base;
|
||||||
|
const mcu_pin_obj_t * pin;
|
||||||
|
uint8_t channel;
|
||||||
|
} analogio_analogout_obj_t;
|
||||||
|
|
||||||
|
void analogout_reset(void);
|
||||||
|
|
||||||
|
#endif // MICROPY_INCLUDED_STM32F4_COMMON_HAL_ANALOGIO_ANALOGOUT_H
|
1
ports/esp32s2/common-hal/analogio/__init__.c
Normal file
1
ports/esp32s2/common-hal/analogio/__init__.c
Normal file
@ -0,0 +1 @@
|
|||||||
|
// No analogio module functions.
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
#include "components/soc/include/hal/i2c_types.h"
|
#include "components/hal/include/hal/i2c_types.h"
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "freertos/semphr.h"
|
#include "freertos/semphr.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
#include "components/driver/include/driver/spi_common_internal.h"
|
#include "components/driver/include/driver/spi_common_internal.h"
|
||||||
#include "components/soc/include/hal/spi_hal.h"
|
#include "components/hal/include/hal/spi_hal.h"
|
||||||
#include "components/soc/include/hal/spi_types.h"
|
#include "components/hal/include/hal/spi_types.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
#include "components/soc/include/hal/uart_types.h"
|
#include "components/hal/include/hal/uart_types.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
#include "components/driver/include/driver/gpio.h"
|
#include "components/driver/include/driver/gpio.h"
|
||||||
|
|
||||||
#include "components/soc/include/hal/gpio_hal.h"
|
#include "components/hal/include/hal/gpio_hal.h"
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_never_reset(
|
void common_hal_digitalio_digitalinout_never_reset(
|
||||||
digitalio_digitalinout_obj_t *self) {
|
digitalio_digitalinout_obj_t *self) {
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
|
|
||||||
#include "components/driver/include/driver/gpio.h"
|
#include "components/driver/include/driver/gpio.h"
|
||||||
#include "components/soc/include/hal/gpio_hal.h"
|
#include "components/hal/include/hal/gpio_hal.h"
|
||||||
|
|
||||||
#ifdef MICROPY_HW_NEOPIXEL
|
#ifdef MICROPY_HW_NEOPIXEL
|
||||||
bool neopixel_in_use;
|
bool neopixel_in_use;
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
#include "common-hal/ssl/SSLContext.h"
|
#include "common-hal/ssl/SSLContext.h"
|
||||||
|
|
||||||
#include "components/esp-tls/esp_tls.h"
|
#include "components/esp-tls/esp_tls.h"
|
||||||
#include "components/log/include/esp_log.h"
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
|
@ -104,6 +104,19 @@ void common_hal_wifi_radio_stop_scanning_networks(wifi_radio_obj_t *self) {
|
|||||||
self->current_scan = NULL;
|
self->current_scan = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_obj_t common_hal_wifi_radio_get_hostname(wifi_radio_obj_t *self) {
|
||||||
|
const char *hostname = NULL;
|
||||||
|
esp_netif_get_hostname(self->netif, &hostname);
|
||||||
|
if (hostname == NULL) {
|
||||||
|
return mp_const_none;
|
||||||
|
}
|
||||||
|
return mp_obj_new_str(hostname, strlen(hostname));
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_wifi_radio_set_hostname(wifi_radio_obj_t *self, const char *hostname) {
|
||||||
|
esp_netif_set_hostname(self->netif, hostname);
|
||||||
|
}
|
||||||
|
|
||||||
wifi_radio_error_t common_hal_wifi_radio_connect(wifi_radio_obj_t *self, uint8_t* ssid, size_t ssid_len, uint8_t* password, size_t password_len, uint8_t channel, mp_float_t timeout, uint8_t* bssid, size_t bssid_len) {
|
wifi_radio_error_t common_hal_wifi_radio_connect(wifi_radio_obj_t *self, uint8_t* ssid, size_t ssid_len, uint8_t* password, size_t password_len, uint8_t channel, mp_float_t timeout, uint8_t* bssid, size_t bssid_len) {
|
||||||
// check enabled
|
// check enabled
|
||||||
start_station(self);
|
start_station(self);
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
#include "freertos/event_groups.h"
|
#include "freertos/event_groups.h"
|
||||||
|
|
||||||
#include "components/esp_wifi/include/esp_wifi_types.h"
|
#include "components/esp_wifi/include/esp_wifi_types.h"
|
||||||
#include "components/log/include/esp_log.h"
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit a7f77798816661f7c4ae198f3878bc92a9274f82
|
Subproject commit 8bc19ba893e5544d571a753d82b44a84799b94b1
|
@ -31,8 +31,8 @@
|
|||||||
#define CIRCUITPY_INTERNAL_NVM_SIZE (0)
|
#define CIRCUITPY_INTERNAL_NVM_SIZE (0)
|
||||||
#define MICROPY_NLR_THUMB (0)
|
#define MICROPY_NLR_THUMB (0)
|
||||||
|
|
||||||
#define MICROPY_PY_UJSON (1)
|
#define MICROPY_PY_UJSON (1)
|
||||||
#define MICROPY_USE_INTERNAL_PRINTF (0)
|
#define MICROPY_USE_INTERNAL_PRINTF (0)
|
||||||
|
|
||||||
#include "py/circuitpy_mpconfig.h"
|
#include "py/circuitpy_mpconfig.h"
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@ LONGINT_IMPL = MPZ
|
|||||||
|
|
||||||
# These modules are implemented in ports/<port>/common-hal:
|
# These modules are implemented in ports/<port>/common-hal:
|
||||||
CIRCUITPY_FULL_BUILD = 1
|
CIRCUITPY_FULL_BUILD = 1
|
||||||
CIRCUITPY_ANALOGIO = 0
|
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_AUDIOIO = 0
|
CIRCUITPY_AUDIOIO = 0
|
||||||
CIRCUITPY_COUNTIO = 0
|
CIRCUITPY_COUNTIO = 0
|
||||||
|
@ -26,56 +26,58 @@
|
|||||||
|
|
||||||
#include "peripherals/pins.h"
|
#include "peripherals/pins.h"
|
||||||
|
|
||||||
#define NO_ADC 0xff
|
#define NO_ADC 0
|
||||||
|
#define NO_ADC_CHANNEL ADC_CHANNEL_MAX
|
||||||
|
|
||||||
// This macro is used to simplify pin definition in boards/<board>/pins.c
|
// This macro is used to simplify pin definition in boards/<board>/pins.c
|
||||||
#define PIN(p_name, p_number) \
|
#define PIN(p_name, p_number, p_adc_index, p_adc_channel) \
|
||||||
const mcu_pin_obj_t pin_## p_name = { \
|
const mcu_pin_obj_t pin_## p_name = { \
|
||||||
PIN_PREFIX_VALUES \
|
PIN_PREFIX_VALUES \
|
||||||
.number = p_number, \
|
.number = p_number, \
|
||||||
|
.adc_index = p_adc_index, \
|
||||||
|
.adc_channel = p_adc_channel, \
|
||||||
}
|
}
|
||||||
|
|
||||||
PIN(GPIO0, 0);
|
PIN(GPIO0, 0, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO1, 1);
|
PIN(GPIO1, 1, ADC_UNIT_1, ADC_CHANNEL_0);
|
||||||
PIN(GPIO2, 2);
|
PIN(GPIO2, 2, ADC_UNIT_1, ADC_CHANNEL_1);
|
||||||
PIN(GPIO3, 3);
|
PIN(GPIO3, 3, ADC_UNIT_1, ADC_CHANNEL_2);
|
||||||
PIN(GPIO4, 4);
|
PIN(GPIO4, 4, ADC_UNIT_1, ADC_CHANNEL_3);
|
||||||
PIN(GPIO5, 5);
|
PIN(GPIO5, 5, ADC_UNIT_1, ADC_CHANNEL_4);
|
||||||
PIN(GPIO6, 6);
|
PIN(GPIO6, 6, ADC_UNIT_1, ADC_CHANNEL_5);
|
||||||
PIN(GPIO7, 7);
|
PIN(GPIO7, 7, ADC_UNIT_1, ADC_CHANNEL_6);
|
||||||
PIN(GPIO8, 8);
|
PIN(GPIO8, 8, ADC_UNIT_1, ADC_CHANNEL_7);
|
||||||
PIN(GPIO9, 9);
|
PIN(GPIO9, 9, ADC_UNIT_1, ADC_CHANNEL_8);
|
||||||
PIN(GPIO10, 10);
|
PIN(GPIO10, 10, ADC_UNIT_1, ADC_CHANNEL_9);
|
||||||
PIN(GPIO11, 11);
|
PIN(GPIO11, 11, ADC_UNIT_2, ADC_CHANNEL_0);
|
||||||
PIN(GPIO12, 12);
|
PIN(GPIO12, 12, ADC_UNIT_2, ADC_CHANNEL_1);
|
||||||
PIN(GPIO13, 13);
|
PIN(GPIO13, 13, ADC_UNIT_2, ADC_CHANNEL_2);
|
||||||
PIN(GPIO14, 14);
|
PIN(GPIO14, 14, ADC_UNIT_2, ADC_CHANNEL_3);
|
||||||
PIN(GPIO15, 15);
|
PIN(GPIO15, 15, ADC_UNIT_2, ADC_CHANNEL_4);
|
||||||
PIN(GPIO16, 16);
|
PIN(GPIO16, 16, ADC_UNIT_2, ADC_CHANNEL_5);
|
||||||
PIN(GPIO17, 17);
|
PIN(GPIO17, 17, ADC_UNIT_2, ADC_CHANNEL_6);
|
||||||
PIN(GPIO18, 18);
|
PIN(GPIO18, 18, ADC_UNIT_2, ADC_CHANNEL_7);
|
||||||
|
PIN(GPIO19, 19, ADC_UNIT_2, ADC_CHANNEL_8);
|
||||||
PIN(GPIO19, 19);
|
PIN(GPIO20, 20, ADC_UNIT_2, ADC_CHANNEL_9);
|
||||||
PIN(GPIO20, 20);
|
PIN(GPIO21, 21, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO21, 21);
|
PIN(GPIO26, 26, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO26, 26);
|
PIN(GPIO27, 27, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO27, 27);
|
PIN(GPIO28, 28, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO28, 28);
|
PIN(GPIO29, 29, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO29, 29);
|
PIN(GPIO30, 30, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO30, 30);
|
PIN(GPIO31, 31, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO31, 31);
|
PIN(GPIO32, 32, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO32, 32);
|
PIN(GPIO33, 33, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO33, 33);
|
PIN(GPIO34, 34, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO34, 34);
|
PIN(GPIO35, 35, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO35, 35);
|
PIN(GPIO36, 36, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO36, 36);
|
PIN(GPIO37, 37, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO37, 37);
|
PIN(GPIO38, 38, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO38, 38);
|
PIN(GPIO39, 39, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO39, 39);
|
PIN(GPIO40, 40, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO40, 40);
|
PIN(GPIO41, 41, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO41, 41);
|
PIN(GPIO42, 42, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO42, 42);
|
PIN(GPIO43, 43, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO43, 43);
|
PIN(GPIO44, 44, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO44, 44);
|
PIN(GPIO45, 45, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO45, 45);
|
PIN(GPIO46, 46, NO_ADC, NO_ADC_CHANNEL);
|
||||||
PIN(GPIO46, 46);
|
|
||||||
|
@ -34,11 +34,15 @@
|
|||||||
|
|
||||||
#include "esp32s2_peripherals_config.h"
|
#include "esp32s2_peripherals_config.h"
|
||||||
#include "esp-idf/config/sdkconfig.h"
|
#include "esp-idf/config/sdkconfig.h"
|
||||||
#include "components/soc/include/hal/gpio_types.h"
|
|
||||||
|
#include "components/hal/include/hal/gpio_types.h"
|
||||||
|
#include "components/hal/include/hal/adc_types.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PIN_PREFIX_FIELDS
|
PIN_PREFIX_FIELDS
|
||||||
gpio_num_t number;
|
gpio_num_t number;
|
||||||
|
uint8_t adc_index:2;
|
||||||
|
uint8_t adc_channel:6;
|
||||||
} mcu_pin_obj_t;
|
} mcu_pin_obj_t;
|
||||||
|
|
||||||
extern const mcu_pin_obj_t pin_GPIO0;
|
extern const mcu_pin_obj_t pin_GPIO0;
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
|
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
#include "common-hal/analogio/AnalogOut.h"
|
||||||
#include "common-hal/busio/I2C.h"
|
#include "common-hal/busio/I2C.h"
|
||||||
#include "common-hal/busio/SPI.h"
|
#include "common-hal/busio/SPI.h"
|
||||||
#include "common-hal/busio/UART.h"
|
#include "common-hal/busio/UART.h"
|
||||||
@ -95,6 +96,10 @@ void reset_port(void) {
|
|||||||
// A larger delay so the idle task can run and do any IDF cleanup needed.
|
// A larger delay so the idle task can run and do any IDF cleanup needed.
|
||||||
vTaskDelay(4);
|
vTaskDelay(4);
|
||||||
|
|
||||||
|
#if CIRCUITPY_ANALOGIO
|
||||||
|
analogout_reset();
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CIRCUITPY_PULSEIO
|
#if CIRCUITPY_PULSEIO
|
||||||
esp32s2_peripherals_rmt_reset();
|
esp32s2_peripherals_rmt_reset();
|
||||||
pulsein_reset();
|
pulsein_reset();
|
||||||
|
@ -33,6 +33,8 @@
|
|||||||
#include "components/driver/include/driver/periph_ctrl.h"
|
#include "components/driver/include/driver/periph_ctrl.h"
|
||||||
#include "components/driver/include/driver/gpio.h"
|
#include "components/driver/include/driver/gpio.h"
|
||||||
#include "components/esp_rom/include/esp32s2/rom/gpio.h"
|
#include "components/esp_rom/include/esp32s2/rom/gpio.h"
|
||||||
|
#include "components/esp_rom/include/esp_rom_gpio.h"
|
||||||
|
#include "components/hal/esp32s2/include/hal/gpio_ll.h"
|
||||||
|
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
@ -68,6 +70,33 @@ void usb_device_task(void* param)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void configure_pins (usb_hal_context_t *usb)
|
||||||
|
{
|
||||||
|
/* usb_periph_iopins currently configures USB_OTG as USB Device.
|
||||||
|
* Introduce additional parameters in usb_hal_context_t when adding support
|
||||||
|
* for USB Host.
|
||||||
|
*/
|
||||||
|
for ( const usb_iopin_dsc_t *iopin = usb_periph_iopins; iopin->pin != -1; ++iopin ) {
|
||||||
|
if ( (usb->use_external_phy) || (iopin->ext_phy_only == 0) ) {
|
||||||
|
esp_rom_gpio_pad_select_gpio(iopin->pin);
|
||||||
|
if ( iopin->is_output ) {
|
||||||
|
esp_rom_gpio_connect_out_signal(iopin->pin, iopin->func, false, false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
esp_rom_gpio_connect_in_signal(iopin->pin, iopin->func, false);
|
||||||
|
if ( (iopin->pin != GPIO_FUNC_IN_LOW) && (iopin->pin != GPIO_FUNC_IN_HIGH) ) {
|
||||||
|
gpio_ll_input_enable(&GPIO, iopin->pin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
esp_rom_gpio_pad_unhold(iopin->pin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !usb->use_external_phy ) {
|
||||||
|
gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
|
||||||
|
gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void init_usb_hardware(void) {
|
void init_usb_hardware(void) {
|
||||||
periph_module_reset(PERIPH_USB_MODULE);
|
periph_module_reset(PERIPH_USB_MODULE);
|
||||||
periph_module_enable(PERIPH_USB_MODULE);
|
periph_module_enable(PERIPH_USB_MODULE);
|
||||||
@ -75,10 +104,7 @@ void init_usb_hardware(void) {
|
|||||||
.use_external_phy = false // use built-in PHY
|
.use_external_phy = false // use built-in PHY
|
||||||
};
|
};
|
||||||
usb_hal_init(&hal);
|
usb_hal_init(&hal);
|
||||||
|
configure_pins(&hal);
|
||||||
// Initialize the pin drive strength.
|
|
||||||
gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
|
|
||||||
gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
|
|
||||||
|
|
||||||
(void) xTaskCreateStatic(usb_device_task,
|
(void) xTaskCreateStatic(usb_device_task,
|
||||||
"usbd",
|
"usbd",
|
||||||
|
@ -16,6 +16,7 @@ CIRCUITPY_ANALOGIO = 0
|
|||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_AUDIOIO = 0
|
CIRCUITPY_AUDIOIO = 0
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
|
CIRCUITPY_BLEIO_HCI = 0
|
||||||
CIRCUITPY_BOARD = 0
|
CIRCUITPY_BOARD = 0
|
||||||
CIRCUITPY_BUSIO = 0
|
CIRCUITPY_BUSIO = 0
|
||||||
CIRCUITPY_COUNTIO = 0
|
CIRCUITPY_COUNTIO = 0
|
||||||
|
@ -128,7 +128,11 @@ uint32_t port_get_saved_word(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint64_t port_get_raw_ticks(uint8_t* subticks) {
|
uint64_t port_get_raw_ticks(uint8_t* subticks) {
|
||||||
return raw_ticks;
|
// Reading 64 bits may take two loads, so turn of interrupts while we do it.
|
||||||
|
irq_setie(false);
|
||||||
|
uint64_t raw_tick_snapshot = raw_ticks;
|
||||||
|
irq_setie(true);
|
||||||
|
return raw_tick_snapshot;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable 1/1024 second tick.
|
// Enable 1/1024 second tick.
|
||||||
|
@ -75,7 +75,7 @@ INC += \
|
|||||||
|
|
||||||
# NDEBUG disables assert() statements. This reduces code size pretty dramatically, per tannewt.
|
# NDEBUG disables assert() statements. This reduces code size pretty dramatically, per tannewt.
|
||||||
|
|
||||||
CFLAGS += -Os -DNDEBUG
|
CFLAGS += -Os -DNDEBUG -ffreestanding
|
||||||
|
|
||||||
# TinyUSB defines
|
# TinyUSB defines
|
||||||
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX -DCFG_TUD_MIDI_RX_BUFSIZE=512 -DCFG_TUD_CDC_RX_BUFSIZE=512 -DCFG_TUD_MIDI_TX_BUFSIZE=512 -DCFG_TUD_CDC_TX_BUFSIZE=512 -DCFG_TUD_MSC_BUFSIZE=1024
|
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX -DCFG_TUD_MIDI_RX_BUFSIZE=512 -DCFG_TUD_CDC_RX_BUFSIZE=512 -DCFG_TUD_MIDI_TX_BUFSIZE=512 -DCFG_TUD_CDC_TX_BUFSIZE=512 -DCFG_TUD_MSC_BUFSIZE=1024
|
||||||
@ -147,7 +147,7 @@ SRC_SDK := \
|
|||||||
|
|
||||||
SRC_SDK := $(addprefix sdk/devices/$(CHIP_FAMILY)/, $(SRC_SDK))
|
SRC_SDK := $(addprefix sdk/devices/$(CHIP_FAMILY)/, $(SRC_SDK))
|
||||||
|
|
||||||
SRC_C = \
|
SRC_C += \
|
||||||
background.c \
|
background.c \
|
||||||
boards/$(BOARD)/board.c \
|
boards/$(BOARD)/board.c \
|
||||||
boards/$(BOARD)/flash_config.c \
|
boards/$(BOARD)/flash_config.c \
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
#include "fsl_common.h"
|
#include "fsl_common.h"
|
||||||
|
#include "fsl_flexspi_nor_config.h"
|
||||||
|
|
||||||
// Initializes board related state once on start up.
|
// Initializes board related state once on start up.
|
||||||
void board_init(void);
|
void board_init(void);
|
||||||
@ -45,4 +46,11 @@ bool board_requests_safe_mode(void);
|
|||||||
// Reset the state of off MCU components such as neopixels.
|
// Reset the state of off MCU components such as neopixels.
|
||||||
void reset_board(void);
|
void reset_board(void);
|
||||||
|
|
||||||
|
#define SEQUENCE(first, second, third, fourth) first, second, third, fourth
|
||||||
|
#define TWO_EMPTY_STEPS 0x00000000
|
||||||
|
#define EMPTY_SEQUENCE SEQUENCE(TWO_EMPTY_STEPS, TWO_EMPTY_STEPS, TWO_EMPTY_STEPS, TWO_EMPTY_STEPS)
|
||||||
|
|
||||||
|
// FlexSPI configuration that stores command info.
|
||||||
|
extern const flexspi_nor_config_t qspiflash_config;
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_BOARDS_BOARD_H
|
#endif // MICROPY_INCLUDED_MIMXRT10XX_BOARDS_BOARD_H
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
@ -35,88 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for W25Q32JV with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x02, // Bit pattern for setting Quad Enable.
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_133MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status -2
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x31 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01 /* number of bytes to write */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
@ -35,88 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for W25Q64JV with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x02,
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_133MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x31 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
@ -35,88 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for W25Q64JV with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x02,
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_133MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x31 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -34,88 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for AT25SF128A with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x02,
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_60MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x31 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
@ -35,92 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for IS25LP064A with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
#ifdef BOARD_USING_SECONDARY_QSPI_PINMUX
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromInternally,
|
|
||||||
#else
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
#endif
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x40,
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
// SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_4PAD, 24 bits to transmit ),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
// READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x01 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
* IVT Data
|
* IVT Data
|
||||||
*************************************/
|
*************************************/
|
||||||
@ -35,88 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for IS25WP064A with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x40,
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_60MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x01 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
52
ports/mimxrt10xx/boards/metro_m7_1011/board.c
Normal file
52
ports/mimxrt10xx/boards/metro_m7_1011/board.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||||
|
* Copyright (c) 2019 Artur Pacholec
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
#include "mpconfigboard.h"
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
void board_init(void) {
|
||||||
|
// SWD Pins
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_AD_13);//SWDIO
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_AD_12);//SWCLK
|
||||||
|
|
||||||
|
// FLEX flash
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_12);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_11);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_10);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_09);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_08);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_07);
|
||||||
|
common_hal_never_reset_pin(&pin_GPIO_SD_06);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool board_requests_safe_mode(void) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset_board(void) {
|
||||||
|
}
|
179
ports/mimxrt10xx/boards/metro_m7_1011/flash_config.c
Normal file
179
ports/mimxrt10xx/boards/metro_m7_1011/flash_config.c
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 NXP
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
|
||||||
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
|
/*************************************
|
||||||
|
* IVT Data
|
||||||
|
*************************************/
|
||||||
|
const ivt image_vector_table = {
|
||||||
|
IVT_HEADER, /* IVT Header */
|
||||||
|
IMAGE_ENTRY_ADDRESS, /* Image Entry Function */
|
||||||
|
IVT_RSVD, /* Reserved = 0 */
|
||||||
|
(uint32_t)DCD_ADDRESS, /* Address where DCD information is stored */
|
||||||
|
(uint32_t)BOOT_DATA_ADDRESS, /* Address where BOOT Data Structure is stored */
|
||||||
|
(uint32_t)&image_vector_table, /* Pointer to IVT Self (absolute address */
|
||||||
|
(uint32_t)CSF_ADDRESS, /* Address where CSF file is stored */
|
||||||
|
IVT_RSVD /* Reserved = 0 */
|
||||||
|
};
|
||||||
|
|
||||||
|
__attribute__((section(".boot_hdr.boot_data")))
|
||||||
|
/*************************************
|
||||||
|
* Boot Data
|
||||||
|
*************************************/
|
||||||
|
const BOOT_DATA_T boot_data = {
|
||||||
|
FLASH_BASE, /* boot start location */
|
||||||
|
FLASH_SIZE, /* size */
|
||||||
|
PLUGIN_FLAG, /* Plugin flag*/
|
||||||
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
|
};
|
||||||
|
|
||||||
|
// Config for W25Q16JV with QSPI routed.
|
||||||
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
|
.pageSize = 256u,
|
||||||
|
.sectorSize = 4u * 1024u,
|
||||||
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
|
.blockSize = 0x00010000,
|
||||||
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x0200,
|
||||||
|
.configCmdEnable = 1u,
|
||||||
|
.configModeType[0] = kDeviceConfigCmdType_Generic,
|
||||||
|
.configCmdSeqs[0] = {
|
||||||
|
.seqId = 2u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_60MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x35 /* the command to send */,
|
||||||
|
DUMMY_SDR, FLEXSPI_1PAD, 8),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x01 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
20
ports/mimxrt10xx/boards/metro_m7_1011/mpconfigboard.h
Normal file
20
ports/mimxrt10xx/boards/metro_m7_1011/mpconfigboard.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#define MICROPY_HW_BOARD_NAME "Metro MIMXRT1011"
|
||||||
|
#define MICROPY_HW_MCU_NAME "IMXRT1011DAE5A"
|
||||||
|
|
||||||
|
#define MICROPY_HW_NEOPIXEL (&pin_GPIO_00)
|
||||||
|
|
||||||
|
// If you change this, then make sure to update the linker scripts as well to
|
||||||
|
// make sure you don't overwrite code
|
||||||
|
#define CIRCUITPY_INTERNAL_NVM_SIZE 0
|
||||||
|
|
||||||
|
#define BOARD_FLASH_SIZE (2 * 1024 * 1024)
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO_02)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO_01)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO_AD_06)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO_AD_04)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO_AD_03)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_GPIO_09)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_GPIO_10)
|
12
ports/mimxrt10xx/boards/metro_m7_1011/mpconfigboard.mk
Normal file
12
ports/mimxrt10xx/boards/metro_m7_1011/mpconfigboard.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
USB_VID = 0x239A
|
||||||
|
USB_PID = 0x80E2
|
||||||
|
USB_PRODUCT = "Metro M7 1011"
|
||||||
|
USB_MANUFACTURER = "Adafruit"
|
||||||
|
|
||||||
|
CHIP_VARIANT = MIMXRT1011DAE5A
|
||||||
|
CHIP_FAMILY = MIMXRT1011
|
||||||
|
FLASH = W25Q16JV
|
||||||
|
|
||||||
|
# Include these Python libraries in the firmware
|
||||||
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_ESP32SPI
|
||||||
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
59
ports/mimxrt10xx/boards/metro_m7_1011/pins.c
Normal file
59
ports/mimxrt10xx/boards/metro_m7_1011/pins.c
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
|
// Analog
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO_AD_02) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO_AD_01) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO_AD_00) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO_AD_05) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO_AD_10) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO_AD_08) },
|
||||||
|
|
||||||
|
// Digital
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO_09) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO_09) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO_10) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO_10) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO_13) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO_12) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO_SD_00) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO_SD_01) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO_SD_02) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO_11) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO_08) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO_07) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO_06) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO_05) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO_04) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13),MP_ROM_PTR(&pin_GPIO_03) },
|
||||||
|
|
||||||
|
// ESP control
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_CS), MP_ROM_PTR(&pin_GPIO_AD_14) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_GPIO0), MP_ROM_PTR(&pin_GPIO_SD_05) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_BUSY), MP_ROM_PTR(&pin_GPIO_AD_11) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RESET), MP_ROM_PTR(&pin_GPIO_AD_07) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_GPIO_09) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_GPIO_10) },
|
||||||
|
|
||||||
|
// SPI
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO_AD_06) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO_AD_03) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO_AD_04) },
|
||||||
|
|
||||||
|
// UART
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO_10) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO_09) },
|
||||||
|
|
||||||
|
// I2C
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO_01) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO_02) },
|
||||||
|
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO_00) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -6,12 +6,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
/* Component ID definition, used by tools. */
|
|
||||||
#ifndef FSL_COMPONENT_ID
|
|
||||||
#define FSL_COMPONENT_ID "platform.drivers.xip_device"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -39,88 +35,145 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for W25Q16JV with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x0200,
|
||||||
|
.configCmdEnable = 1u,
|
||||||
|
.configModeType[0] = kDeviceConfigCmdType_Generic,
|
||||||
|
.configCmdSeqs[0] = {
|
||||||
|
.seqId = 2u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_60MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x35 /* the command to send */,
|
||||||
|
DUMMY_SDR, FLEXSPI_1PAD, 8),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x01 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x02),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -6,12 +6,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fsl_flexspi_nor_boot.h"
|
#include "fsl_flexspi_nor_boot.h"
|
||||||
#include "fsl_flexspi_nor_config.h"
|
#include "boards/board.h"
|
||||||
|
|
||||||
/* Component ID definition, used by tools. */
|
|
||||||
#ifndef FSL_COMPONENT_ID
|
|
||||||
#define FSL_COMPONENT_ID "platform.drivers.xip_device"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
__attribute__((section(".boot_hdr.ivt")))
|
__attribute__((section(".boot_hdr.ivt")))
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -39,88 +35,135 @@ const BOOT_DATA_T boot_data = {
|
|||||||
0xFFFFFFFF /* empty - extra data word */
|
0xFFFFFFFF /* empty - extra data word */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Config for W25Q64JV with QSPI routed.
|
||||||
__attribute__((section(".boot_hdr.conf")))
|
__attribute__((section(".boot_hdr.conf")))
|
||||||
// Values copied from https://github.com/PaulStoffregen/cores/blob/ddb23fa5d97dac763bc06e11b9b41f026bd51f0a/teensy4/bootdata.c#L39
|
|
||||||
const flexspi_nor_config_t qspiflash_config = {
|
const flexspi_nor_config_t qspiflash_config = {
|
||||||
.memConfig =
|
|
||||||
{
|
|
||||||
.tag = FLEXSPI_CFG_BLK_TAG,
|
|
||||||
.version = FLEXSPI_CFG_BLK_VERSION,
|
|
||||||
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
|
||||||
.csHoldTime = 1u,
|
|
||||||
.csSetupTime = 2u,
|
|
||||||
// Enable DDR mode, Wordaddressable, Safe configuration, Differential clock
|
|
||||||
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
|
||||||
.sflashPadType = kSerialFlash_4Pads,
|
|
||||||
.serialClkFreq = kFlexSpiSerialClk_60MHz, // 03
|
|
||||||
.sflashA1Size = FLASH_SIZE,
|
|
||||||
.lookupTable =
|
|
||||||
{
|
|
||||||
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
|
||||||
// (FLEXSPI_LUT_OPERAND0(op0) | FLEXSPI_LUT_NUM_PADS0(pad0) | FLEXSPI_LUT_OPCODE0(cmd0) | FLEXSPI_LUT_OPERAND1(op1) |
|
|
||||||
// FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
|
|
||||||
// Read LUTs
|
|
||||||
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
|
|
||||||
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x24040405,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000406,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180420,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x081804D8,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x08180402,
|
|
||||||
0x00002004,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0x00000460,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
.pageSize = 256u,
|
.pageSize = 256u,
|
||||||
.sectorSize = 4u * 1024u,
|
.sectorSize = 4u * 1024u,
|
||||||
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
.ipcmdSerialClkFreq = kFlexSpiSerialClk_30MHz,
|
||||||
.blockSize = 0x00010000,
|
.blockSize = 0x00010000,
|
||||||
.isUniformBlockSize = false,
|
.isUniformBlockSize = false,
|
||||||
|
.memConfig =
|
||||||
|
{
|
||||||
|
.tag = FLEXSPI_CFG_BLK_TAG,
|
||||||
|
.version = FLEXSPI_CFG_BLK_VERSION,
|
||||||
|
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
|
||||||
|
.csHoldTime = 3u,
|
||||||
|
.csSetupTime = 3u,
|
||||||
|
|
||||||
|
.busyOffset = 0u, // Status bit 0 indicates busy.
|
||||||
|
.busyBitPolarity = 0u, // Busy when the bit is 1.
|
||||||
|
|
||||||
|
.deviceModeCfgEnable = 1u,
|
||||||
|
.deviceModeType = kDeviceConfigCmdType_QuadEnable,
|
||||||
|
.deviceModeSeq = {
|
||||||
|
.seqId = 4u,
|
||||||
|
.seqNum = 1u,
|
||||||
|
},
|
||||||
|
.deviceModeArg = 0x02,
|
||||||
|
.deviceType = kFlexSpiDeviceType_SerialNOR,
|
||||||
|
.sflashPadType = kSerialFlash_4Pads,
|
||||||
|
.serialClkFreq = kFlexSpiSerialClk_60MHz,
|
||||||
|
.sflashA1Size = FLASH_SIZE,
|
||||||
|
.lookupTable =
|
||||||
|
{
|
||||||
|
// FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
|
||||||
|
// The high 16 bits is command 1 and the low are command 0.
|
||||||
|
// Within a command, the top 6 bits are the opcode, the next two are the number
|
||||||
|
// of pads and then last byte is the operand. The operand's meaning changes
|
||||||
|
// per opcode.
|
||||||
|
|
||||||
|
// Indices with ROM should always have the same function because the ROM
|
||||||
|
// bootloader uses it.
|
||||||
|
|
||||||
|
// 0: ROM: Read LUTs
|
||||||
|
// Quad version
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_4PAD, 24 /* bits to transmit */),
|
||||||
|
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 6 /* 6 dummy cycles, 2 for M7-0 and 4 dummy */,
|
||||||
|
READ_SDR, FLEXSPI_4PAD, 0x04),
|
||||||
|
// Single fast read version, good for debugging.
|
||||||
|
// FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x0B /* the command to send */,
|
||||||
|
// RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
// FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 8 /* 8 dummy clocks */,
|
||||||
|
// READ_SDR, FLEXSPI_1PAD, 0x04),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 1: ROM: Read status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05 /* the command to send */,
|
||||||
|
READ_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 2: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 3: ROM: Write Enable
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0x00),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 4: Config: Write Status
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x31 /* the command to send */,
|
||||||
|
WRITE_SDR, FLEXSPI_1PAD, 0x01),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 5: ROM: Erase Sector
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 6: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 7: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 8: Block Erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 9: ROM: Page program
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02 /* the command to send */,
|
||||||
|
RADDR_SDR, FLEXSPI_1PAD, 24 /* bits to transmit */),
|
||||||
|
|
||||||
|
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04 /* data out */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 10: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 11: ROM: Chip erase
|
||||||
|
SEQUENCE(FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60 /* the command to send */,
|
||||||
|
STOP, FLEXSPI_1PAD, 0),
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS,
|
||||||
|
TWO_EMPTY_STEPS),
|
||||||
|
|
||||||
|
// 12: Empty
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 13: ROM: Read SFDP
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 14: ROM: Restore no cmd
|
||||||
|
EMPTY_SEQUENCE,
|
||||||
|
|
||||||
|
// 15: ROM: Dummy
|
||||||
|
EMPTY_SEQUENCE
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -62,7 +62,6 @@ SECTIONS
|
|||||||
|
|
||||||
KEEP(*(.isr_vector)) /* Startup code */
|
KEEP(*(.isr_vector)) /* Startup code */
|
||||||
*(EXCLUDE_FILE(
|
*(EXCLUDE_FILE(
|
||||||
*flexspi_nor_flash_ops.o
|
|
||||||
*fsl_flexspi.o
|
*fsl_flexspi.o
|
||||||
) .text*) /* .text* sections (code) */
|
) .text*) /* .text* sections (code) */
|
||||||
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
|
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
|
||||||
@ -84,7 +83,6 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
*(.data*) /* .data* sections */
|
*(.data*) /* .data* sections */
|
||||||
*flexspi_nor_flash_ops.o(.text*)
|
|
||||||
*fsl_flexspi.o(.text*)
|
*fsl_flexspi.o(.text*)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
} > OCRAM AT> FLASH_FIRMWARE
|
} > OCRAM AT> FLASH_FIRMWARE
|
||||||
@ -110,7 +108,6 @@ SECTIONS
|
|||||||
.itcm :
|
.itcm :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
|
||||||
*(.itcm.*)
|
*(.itcm.*)
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -9,23 +9,10 @@
|
|||||||
|
|
||||||
#include "fsl_flexspi.h"
|
#include "fsl_flexspi.h"
|
||||||
#include "internal_flash.h"
|
#include "internal_flash.h"
|
||||||
|
#include "boards/board.h"
|
||||||
|
#include "supervisor/linker.h"
|
||||||
|
|
||||||
#define FLASH_QUAD_ENABLE 0x02
|
status_t PLACE_IN_ITCM(flexspi_nor_write_enable)(FLEXSPI_Type *base, uint32_t baseAddr)
|
||||||
#define FLASH_BUSY_STATUS_POL 1
|
|
||||||
#define FLASH_BUSY_STATUS_OFFSET 0
|
|
||||||
|
|
||||||
static inline void flexspi_clock_init(void)
|
|
||||||
{
|
|
||||||
/* Switch to PLL2 for XIP to avoid hardfault during re-initialize clock. */
|
|
||||||
CLOCK_InitSysPfd(kCLOCK_Pfd2, 24); /* Set PLL2 PFD2 clock 396MHZ. */
|
|
||||||
CLOCK_SetMux(kCLOCK_FlexspiMux, 0x2); /* Choose PLL2 PFD2 clock as flexspi source clock. */
|
|
||||||
CLOCK_SetDiv(kCLOCK_FlexspiDiv, 2); /* flexspi clock 133M. */
|
|
||||||
}
|
|
||||||
|
|
||||||
extern flexspi_device_config_t deviceconfig;
|
|
||||||
extern const uint32_t customLUT[CUSTOM_LUT_LENGTH];
|
|
||||||
|
|
||||||
status_t flexspi_nor_write_enable(FLEXSPI_Type *base, uint32_t baseAddr)
|
|
||||||
{
|
{
|
||||||
flexspi_transfer_t flashXfer;
|
flexspi_transfer_t flashXfer;
|
||||||
status_t status;
|
status_t status;
|
||||||
@ -35,14 +22,14 @@ status_t flexspi_nor_write_enable(FLEXSPI_Type *base, uint32_t baseAddr)
|
|||||||
flashXfer.port = kFLEXSPI_PortA1;
|
flashXfer.port = kFLEXSPI_PortA1;
|
||||||
flashXfer.cmdType = kFLEXSPI_Command;
|
flashXfer.cmdType = kFLEXSPI_Command;
|
||||||
flashXfer.SeqNumber = 1;
|
flashXfer.SeqNumber = 1;
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_WRITEENABLE;
|
flashXfer.seqIndex = ROM_INDEX_WRITEENABLE;
|
||||||
|
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t flexspi_nor_wait_bus_busy(FLEXSPI_Type *base)
|
status_t PLACE_IN_ITCM(flexspi_nor_wait_bus_busy)(FLEXSPI_Type *base)
|
||||||
{
|
{
|
||||||
/* Wait status ready. */
|
/* Wait status ready. */
|
||||||
bool isBusy;
|
bool isBusy;
|
||||||
@ -54,7 +41,7 @@ status_t flexspi_nor_wait_bus_busy(FLEXSPI_Type *base)
|
|||||||
flashXfer.port = kFLEXSPI_PortA1;
|
flashXfer.port = kFLEXSPI_PortA1;
|
||||||
flashXfer.cmdType = kFLEXSPI_Read;
|
flashXfer.cmdType = kFLEXSPI_Read;
|
||||||
flashXfer.SeqNumber = 1;
|
flashXfer.SeqNumber = 1;
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_READSTATUSREG;
|
flashXfer.seqIndex = ROM_INDEX_READSTATUSREG;
|
||||||
flashXfer.data = &readValue;
|
flashXfer.data = &readValue;
|
||||||
flashXfer.dataSize = 1;
|
flashXfer.dataSize = 1;
|
||||||
|
|
||||||
@ -66,72 +53,15 @@ status_t flexspi_nor_wait_bus_busy(FLEXSPI_Type *base)
|
|||||||
{
|
{
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
if (FLASH_BUSY_STATUS_POL)
|
size_t busyBit = readValue & (1U << qspiflash_config.memConfig.busyOffset);
|
||||||
{
|
isBusy = (qspiflash_config.memConfig.busyBitPolarity == 0 && busyBit != 0) ||
|
||||||
if (readValue & (1U << FLASH_BUSY_STATUS_OFFSET))
|
(qspiflash_config.memConfig.busyBitPolarity == 1 && busyBit == 0);
|
||||||
{
|
|
||||||
isBusy = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
isBusy = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (readValue & (1U << FLASH_BUSY_STATUS_OFFSET))
|
|
||||||
{
|
|
||||||
isBusy = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
isBusy = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} while (isBusy);
|
} while (isBusy);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t flexspi_nor_enable_quad_mode(FLEXSPI_Type *base)
|
status_t PLACE_IN_ITCM(flexspi_nor_flash_erase_sector)(FLEXSPI_Type *base, uint32_t address)
|
||||||
{
|
|
||||||
flexspi_transfer_t flashXfer;
|
|
||||||
status_t status;
|
|
||||||
uint32_t writeValue = FLASH_QUAD_ENABLE;
|
|
||||||
|
|
||||||
/* Write enable */
|
|
||||||
status = flexspi_nor_write_enable(base, 0);
|
|
||||||
|
|
||||||
if (status != kStatus_Success)
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Enable quad mode. */
|
|
||||||
flashXfer.deviceAddress = 0;
|
|
||||||
flashXfer.port = kFLEXSPI_PortA1;
|
|
||||||
flashXfer.cmdType = kFLEXSPI_Write;
|
|
||||||
flashXfer.SeqNumber = 1;
|
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG;
|
|
||||||
flashXfer.data = &writeValue;
|
|
||||||
flashXfer.dataSize = 1;
|
|
||||||
|
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
|
||||||
if (status != kStatus_Success)
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = flexspi_nor_wait_bus_busy(base);
|
|
||||||
|
|
||||||
/* Do software reset. */
|
|
||||||
FLEXSPI_SoftwareReset(base);
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status_t flexspi_nor_flash_erase_sector(FLEXSPI_Type *base, uint32_t address)
|
|
||||||
{
|
{
|
||||||
status_t status;
|
status_t status;
|
||||||
flexspi_transfer_t flashXfer;
|
flexspi_transfer_t flashXfer;
|
||||||
@ -141,7 +71,7 @@ status_t flexspi_nor_flash_erase_sector(FLEXSPI_Type *base, uint32_t address)
|
|||||||
flashXfer.port = kFLEXSPI_PortA1;
|
flashXfer.port = kFLEXSPI_PortA1;
|
||||||
flashXfer.cmdType = kFLEXSPI_Command;
|
flashXfer.cmdType = kFLEXSPI_Command;
|
||||||
flashXfer.SeqNumber = 1;
|
flashXfer.SeqNumber = 1;
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_WRITEENABLE;
|
flashXfer.seqIndex = ROM_INDEX_WRITEENABLE;
|
||||||
|
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
||||||
|
|
||||||
@ -154,7 +84,7 @@ status_t flexspi_nor_flash_erase_sector(FLEXSPI_Type *base, uint32_t address)
|
|||||||
flashXfer.port = kFLEXSPI_PortA1;
|
flashXfer.port = kFLEXSPI_PortA1;
|
||||||
flashXfer.cmdType = kFLEXSPI_Command;
|
flashXfer.cmdType = kFLEXSPI_Command;
|
||||||
flashXfer.SeqNumber = 1;
|
flashXfer.SeqNumber = 1;
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_ERASESECTOR;
|
flashXfer.seqIndex = ROM_INDEX_ERASESECTOR;
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
||||||
|
|
||||||
if (status != kStatus_Success)
|
if (status != kStatus_Success)
|
||||||
@ -170,7 +100,7 @@ status_t flexspi_nor_flash_erase_sector(FLEXSPI_Type *base, uint32_t address)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t flexspi_nor_flash_program(FLEXSPI_Type *base, uint32_t dstAddr, const uint32_t *src, uint32_t length)
|
status_t PLACE_IN_ITCM(flexspi_nor_flash_page_program)(FLEXSPI_Type *base, uint32_t dstAddr, const uint32_t *src)
|
||||||
{
|
{
|
||||||
status_t status;
|
status_t status;
|
||||||
flexspi_transfer_t flashXfer;
|
flexspi_transfer_t flashXfer;
|
||||||
@ -188,48 +118,7 @@ status_t flexspi_nor_flash_program(FLEXSPI_Type *base, uint32_t dstAddr, const u
|
|||||||
flashXfer.port = kFLEXSPI_PortA1;
|
flashXfer.port = kFLEXSPI_PortA1;
|
||||||
flashXfer.cmdType = kFLEXSPI_Write;
|
flashXfer.cmdType = kFLEXSPI_Write;
|
||||||
flashXfer.SeqNumber = 1;
|
flashXfer.SeqNumber = 1;
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM_QUAD;
|
flashXfer.seqIndex = ROM_INDEX_PAGEPROGRAM;
|
||||||
flashXfer.data = (uint32_t *)src;
|
|
||||||
flashXfer.dataSize = length;
|
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
|
||||||
|
|
||||||
if (status != kStatus_Success)
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = flexspi_nor_wait_bus_busy(base);
|
|
||||||
|
|
||||||
/* Do software reset. */
|
|
||||||
#if defined(FSL_FEATURE_SOC_OTFAD_COUNT)
|
|
||||||
base->AHBCR |= FLEXSPI_AHBCR_CLRAHBRXBUF_MASK | FLEXSPI_AHBCR_CLRAHBTXBUF_MASK;
|
|
||||||
base->AHBCR &= ~(FLEXSPI_AHBCR_CLRAHBRXBUF_MASK | FLEXSPI_AHBCR_CLRAHBTXBUF_MASK);
|
|
||||||
#else
|
|
||||||
FLEXSPI_SoftwareReset(base);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status_t flexspi_nor_flash_page_program(FLEXSPI_Type *base, uint32_t dstAddr, const uint32_t *src)
|
|
||||||
{
|
|
||||||
status_t status;
|
|
||||||
flexspi_transfer_t flashXfer;
|
|
||||||
|
|
||||||
/* Write enable */
|
|
||||||
status = flexspi_nor_write_enable(base, dstAddr);
|
|
||||||
|
|
||||||
if (status != kStatus_Success)
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Prepare page program command */
|
|
||||||
flashXfer.deviceAddress = dstAddr;
|
|
||||||
flashXfer.port = kFLEXSPI_PortA1;
|
|
||||||
flashXfer.cmdType = kFLEXSPI_Write;
|
|
||||||
flashXfer.SeqNumber = 1;
|
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM_QUAD;
|
|
||||||
flashXfer.data = (uint32_t *)src;
|
flashXfer.data = (uint32_t *)src;
|
||||||
flashXfer.dataSize = FLASH_PAGE_SIZE;
|
flashXfer.dataSize = FLASH_PAGE_SIZE;
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
||||||
@ -251,92 +140,3 @@ status_t flexspi_nor_flash_page_program(FLEXSPI_Type *base, uint32_t dstAddr, co
|
|||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t flexspi_nor_get_vendor_id(FLEXSPI_Type *base, uint8_t *vendorId)
|
|
||||||
{
|
|
||||||
uint32_t temp;
|
|
||||||
flexspi_transfer_t flashXfer;
|
|
||||||
flashXfer.deviceAddress = 0;
|
|
||||||
flashXfer.port = kFLEXSPI_PortA1;
|
|
||||||
flashXfer.cmdType = kFLEXSPI_Read;
|
|
||||||
flashXfer.SeqNumber = 1;
|
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_READID;
|
|
||||||
flashXfer.data = &temp;
|
|
||||||
flashXfer.dataSize = 1;
|
|
||||||
|
|
||||||
status_t status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
|
||||||
|
|
||||||
*vendorId = temp;
|
|
||||||
|
|
||||||
/* Do software reset. */
|
|
||||||
#if defined(FSL_FEATURE_SOC_OTFAD_COUNT)
|
|
||||||
base->AHBCR |= FLEXSPI_AHBCR_CLRAHBRXBUF_MASK | FLEXSPI_AHBCR_CLRAHBTXBUF_MASK;
|
|
||||||
base->AHBCR &= ~(FLEXSPI_AHBCR_CLRAHBRXBUF_MASK | FLEXSPI_AHBCR_CLRAHBTXBUF_MASK);
|
|
||||||
#else
|
|
||||||
FLEXSPI_SoftwareReset(base);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status_t flexspi_nor_erase_chip(FLEXSPI_Type *base)
|
|
||||||
{
|
|
||||||
status_t status;
|
|
||||||
flexspi_transfer_t flashXfer;
|
|
||||||
|
|
||||||
/* Write enable */
|
|
||||||
status = flexspi_nor_write_enable(base, 0);
|
|
||||||
|
|
||||||
if (status != kStatus_Success)
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
flashXfer.deviceAddress = 0;
|
|
||||||
flashXfer.port = kFLEXSPI_PortA1;
|
|
||||||
flashXfer.cmdType = kFLEXSPI_Command;
|
|
||||||
flashXfer.SeqNumber = 1;
|
|
||||||
flashXfer.seqIndex = NOR_CMD_LUT_SEQ_IDX_ERASECHIP;
|
|
||||||
|
|
||||||
status = FLEXSPI_TransferBlocking(base, &flashXfer);
|
|
||||||
|
|
||||||
if (status != kStatus_Success)
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = flexspi_nor_wait_bus_busy(base);
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
void flexspi_nor_flash_init(FLEXSPI_Type *base)
|
|
||||||
{
|
|
||||||
flexspi_config_t config;
|
|
||||||
|
|
||||||
flexspi_clock_init();
|
|
||||||
|
|
||||||
/*Get FLEXSPI default settings and configure the flexspi. */
|
|
||||||
FLEXSPI_GetDefaultConfig(&config);
|
|
||||||
|
|
||||||
/*Set AHB buffer size for reading data through AHB bus. */
|
|
||||||
config.ahbConfig.enableAHBPrefetch = true;
|
|
||||||
config.ahbConfig.enableAHBBufferable = true;
|
|
||||||
config.ahbConfig.enableReadAddressOpt = true;
|
|
||||||
config.ahbConfig.enableAHBCachable = true;
|
|
||||||
#ifdef BOARD_USING_SECONDARY_QSPI_PINMUX
|
|
||||||
config.rxSampleClock = kFLEXSPI_ReadSampleClkLoopbackInternally;
|
|
||||||
#else
|
|
||||||
config.rxSampleClock = kFLEXSPI_ReadSampleClkLoopbackFromDqsPad;
|
|
||||||
#endif
|
|
||||||
FLEXSPI_Init(base, &config);
|
|
||||||
|
|
||||||
/* Configure flash settings according to serial flash feature. */
|
|
||||||
FLEXSPI_SetFlashConfig(base, &deviceconfig, kFLEXSPI_PortA1);
|
|
||||||
|
|
||||||
/* Update LUT table. */
|
|
||||||
FLEXSPI_UpdateLUT(base, 0, customLUT, CUSTOM_LUT_LENGTH);
|
|
||||||
|
|
||||||
/* Do software reset. */
|
|
||||||
FLEXSPI_SoftwareReset(base);
|
|
||||||
}
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user