Merge pull request #36 from adafruit/main

UPdate from adafruit main
This commit is contained in:
DavePutz 2020-12-28 09:13:37 -06:00 committed by GitHub
commit 9c14593d62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
102 changed files with 1928 additions and 400 deletions

View File

@ -35,6 +35,7 @@ jobs:
python-version: 3.8 python-version: 3.8
- name: Install deps - name: Install deps
run: | run: |
sudo apt-get update
sudo apt-get install -y eatmydata sudo apt-get install -y eatmydata
sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64 latexmk texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64 latexmk texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra
pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli mypy pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli mypy
@ -42,6 +43,32 @@ jobs:
run: | run: |
gcc --version gcc --version
python3 --version python3 --version
- name: Translations
run: make check-translate
- name: New boards check
run: python3 -u ci_new_boards_check.py
working-directory: tools
- name: Duplicate USB VID/PID Check
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
- name: Build and Validate Stubs
run: make check-stubs -j2
- uses: actions/upload-artifact@v2
with:
name: stubs
path: circuitpython-stubs*
- name: Test Documentation Build (HTML)
run: sphinx-build -E -W -b html -D version=${{ env.CP_VERSION }} -D release=${{ env.CP_VERSION }} . _build/html
- uses: actions/upload-artifact@v2
with:
name: docs
path: _build/html
- name: Test Documentation Build (LaTeX/PDF)
run: |
make latexpdf
- uses: actions/upload-artifact@v2
with:
name: docs
path: _build/latex
- name: Build mpy-cross - name: Build mpy-cross
run: make -C mpy-cross -j2 run: make -C mpy-cross -j2
- name: Build unix port - name: Build unix port
@ -67,32 +94,6 @@ jobs:
- name: mpy Tests - name: mpy Tests
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
working-directory: tests working-directory: tests
- name: Build and Validate Stubs
run: make check-stubs -j2
- uses: actions/upload-artifact@v2
with:
name: stubs
path: circuitpython-stubs*
- name: Test Documentation Build (HTML)
run: sphinx-build -E -W -b html -D version=${{ env.CP_VERSION }} -D release=${{ env.CP_VERSION }} . _build/html
- uses: actions/upload-artifact@v2
with:
name: docs
path: _build/html
- name: Test Documentation Build (LaTeX/PDF)
run: |
make latexpdf
- uses: actions/upload-artifact@v2
with:
name: docs
path: _build/latex
- name: Translations
run: make check-translate
- name: New boards check
run: python3 -u ci_new_boards_check.py
working-directory: tools
- name: Duplicate USB VID/PID Check
run: python3 -u -m tools.ci_check_duplicate_usb_vid_pid
- name: Build mpy-cross.static-raspbian - name: Build mpy-cross.static-raspbian
run: make -C mpy-cross -j2 -f Makefile.static-raspbian run: make -C mpy-cross -j2 -f Makefile.static-raspbian
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
@ -184,6 +185,7 @@ jobs:
- "arduino_nano_33_iot" - "arduino_nano_33_iot"
- "arduino_zero" - "arduino_zero"
- "bast_pro_mini_m0" - "bast_pro_mini_m0"
- "bastble"
- "bdmicro_vina_d21" - "bdmicro_vina_d21"
- "bdmicro_vina_d51" - "bdmicro_vina_d51"
- "bless_dev_board_multi_sensor" - "bless_dev_board_multi_sensor"
@ -310,6 +312,7 @@ jobs:
- "sparkfun_samd21_mini" - "sparkfun_samd21_mini"
- "sparkfun_samd51_thing_plus" - "sparkfun_samd51_thing_plus"
- "spresense" - "spresense"
- "stackrduino_m0_pro"
- "stm32f411ce_blackpill" - "stm32f411ce_blackpill"
- "stm32f411ve_discovery" - "stm32f411ve_discovery"
- "stm32f412zg_discovery" - "stm32f412zg_discovery"
@ -342,8 +345,8 @@ jobs:
run: | run: |
sudo apt-get install -y gettext sudo apt-get install -y gettext
pip install requests sh click setuptools awscli pip install requests sh click setuptools awscli
wget https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 wget --no-verbose https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
sudo tar -C /usr --strip-components=1 -xaf gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 sudo tar -C /usr --strip-components=1 -xaf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
- name: Versions - name: Versions
run: | run: |
gcc --version gcc --version

View File

@ -61,7 +61,7 @@ STATIC struct {
typedef struct __packed { typedef struct __packed {
uint8_t properties; uint8_t properties;
uint16_t value_handle; uint16_t value_handle;
uint8_t uuid[0]; // 2 or 16 bytes uint8_t uuid[]; // 2 or 16 bytes
} characteristic_declaration_t; } characteristic_declaration_t;
STATIC uint8_t bleio_properties_to_ble_spec_properties(uint8_t bleio_properties) { STATIC uint8_t bleio_properties_to_ble_spec_properties(uint8_t bleio_properties) {
@ -1010,21 +1010,22 @@ void process_read_group_req(uint16_t conn_handle, uint16_t mtu, uint8_t dlen, ui
} }
int att_read_group_req(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, uint16_t uuid, uint8_t response_buffer[]) { int att_read_group_req(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, uint16_t uuid, uint8_t response_buffer[]) {
struct __packed {
typedef struct __packed {
struct bt_att_hdr h; struct bt_att_hdr h;
struct bt_att_read_group_req r; struct bt_att_read_group_req r;
} req = { { } req_t;
.code = BT_ATT_OP_READ_GROUP_REQ,
}, {
.start_handle = start_handle,
.end_handle = end_handle,
}
};
req.r.uuid[0] = uuid & 0xff;
req.r.uuid[1] = uuid >> 8;
uint8_t req_bytes[sizeof(req_t) + sizeof(uuid)];
req_t *req = (req_t *) req_bytes;
return send_req_wait_for_rsp(conn_handle, sizeof(req), (uint8_t *) &req, response_buffer); req->h.code = BT_ATT_OP_READ_GROUP_REQ;
req->r.start_handle = start_handle;
req->r.end_handle = end_handle;
req->r.uuid[0] = uuid & 0xff;
req->r.uuid[1] = uuid >> 8;
return send_req_wait_for_rsp(conn_handle, sizeof(req_bytes), req_bytes, response_buffer);
} }
STATIC void process_read_group_rsp(uint16_t conn_handle, uint8_t dlen, uint8_t data[]) { STATIC void process_read_group_rsp(uint16_t conn_handle, uint8_t dlen, uint8_t data[]) {
@ -1305,20 +1306,21 @@ STATIC void process_read_type_req(uint16_t conn_handle, uint16_t mtu, uint8_t dl
} }
int att_read_type_req(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, uint16_t type, uint8_t response_buffer[]) { int att_read_type_req(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle, uint16_t type, uint8_t response_buffer[]) {
struct __packed { typedef struct __packed {
struct bt_att_hdr h; struct bt_att_hdr h;
struct bt_att_read_type_req r; struct bt_att_read_type_req r;
} req = { { } req_t;
.code = BT_ATT_OP_READ_TYPE_REQ,
}, {
.start_handle = start_handle,
.end_handle = end_handle,
}
};
req.r.uuid[0] = type & 0xff;
req.r.uuid[1] = type >> 8;
return send_req_wait_for_rsp(conn_handle, sizeof(req), (uint8_t *) &req, response_buffer); uint8_t req_bytes[sizeof(req_t) + sizeof(type)];
req_t *req = (req_t *) req_bytes;
req->h.code = BT_ATT_OP_READ_TYPE_REQ;
req->r.start_handle = start_handle;
req->r.end_handle = end_handle;
req->r.uuid[0] = type & 0xff;
req->r.uuid[1] = type >> 8;
return send_req_wait_for_rsp(conn_handle, sizeof(req_bytes), req_bytes, response_buffer);
} }
STATIC void process_read_type_rsp(uint16_t conn_handle, uint8_t dlen, uint8_t data[]) { STATIC void process_read_type_rsp(uint16_t conn_handle, uint8_t dlen, uint8_t data[]) {

View File

@ -69,7 +69,7 @@ struct bt_att_info_128 {
#define BT_ATT_OP_FIND_INFO_RSP 0x05 #define BT_ATT_OP_FIND_INFO_RSP 0x05
struct bt_att_find_info_rsp { struct bt_att_find_info_rsp {
uint8_t format; uint8_t format;
uint8_t info[0]; uint8_t info[];
} __packed; } __packed;
/* Find By Type Value Request */ /* Find By Type Value Request */
@ -78,7 +78,7 @@ struct bt_att_find_type_req {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint16_t type; uint16_t type;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
struct bt_att_handle_group { struct bt_att_handle_group {
@ -89,7 +89,8 @@ struct bt_att_handle_group {
/* Find By Type Value Response */ /* Find By Type Value Response */
#define BT_ATT_OP_FIND_TYPE_RSP 0x07 #define BT_ATT_OP_FIND_TYPE_RSP 0x07
struct bt_att_find_type_rsp { struct bt_att_find_type_rsp {
struct bt_att_handle_group list[0]; uint8_t _dummy[0];
struct bt_att_handle_group list[];
} __packed; } __packed;
/* Read By Type Request */ /* Read By Type Request */
@ -97,19 +98,19 @@ struct bt_att_find_type_rsp {
struct bt_att_read_type_req { struct bt_att_read_type_req {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint8_t uuid[0]; uint8_t uuid[];
} __packed; } __packed;
struct bt_att_data { struct bt_att_data {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Read By Type Response */ /* Read By Type Response */
#define BT_ATT_OP_READ_TYPE_RSP 0x09 #define BT_ATT_OP_READ_TYPE_RSP 0x09
struct bt_att_read_type_rsp { struct bt_att_read_type_rsp {
uint8_t len; uint8_t len;
struct bt_att_data data[0]; struct bt_att_data data[];
} __packed; } __packed;
/* Read Request */ /* Read Request */
@ -121,7 +122,8 @@ struct bt_att_read_req {
/* Read Response */ /* Read Response */
#define BT_ATT_OP_READ_RSP 0x0b #define BT_ATT_OP_READ_RSP 0x0b
struct bt_att_read_rsp { struct bt_att_read_rsp {
uint8_t value[0]; uint8_t _dummy[0];
uint8_t value[];
} __packed; } __packed;
/* Read Blob Request */ /* Read Blob Request */
@ -134,7 +136,8 @@ struct bt_att_read_blob_req {
/* Read Blob Response */ /* Read Blob Response */
#define BT_ATT_OP_READ_BLOB_RSP 0x0d #define BT_ATT_OP_READ_BLOB_RSP 0x0d
struct bt_att_read_blob_rsp { struct bt_att_read_blob_rsp {
uint8_t value[0]; uint8_t _dummy[0];
uint8_t value[];
} __packed; } __packed;
/* Read Multiple Request */ /* Read Multiple Request */
@ -142,13 +145,15 @@ struct bt_att_read_blob_rsp {
#define BT_ATT_OP_READ_MULT_REQ 0x0e #define BT_ATT_OP_READ_MULT_REQ 0x0e
struct bt_att_read_mult_req { struct bt_att_read_mult_req {
uint16_t handles[0]; uint8_t _dummy[0];
uint16_t handles[];
} __packed; } __packed;
/* Read Multiple Respose */ /* Read Multiple Respose */
#define BT_ATT_OP_READ_MULT_RSP 0x0f #define BT_ATT_OP_READ_MULT_RSP 0x0f
struct bt_att_read_mult_rsp { struct bt_att_read_mult_rsp {
uint8_t value[0]; uint8_t _dummy[0];
uint8_t value[];
} __packed; } __packed;
/* Read by Group Type Request */ /* Read by Group Type Request */
@ -156,27 +161,27 @@ struct bt_att_read_mult_rsp {
struct bt_att_read_group_req { struct bt_att_read_group_req {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint8_t uuid[0]; uint8_t uuid[];
} __packed; } __packed;
struct bt_att_group_data { struct bt_att_group_data {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Read by Group Type Response */ /* Read by Group Type Response */
#define BT_ATT_OP_READ_GROUP_RSP 0x11 #define BT_ATT_OP_READ_GROUP_RSP 0x11
struct bt_att_read_group_rsp { struct bt_att_read_group_rsp {
uint8_t len; uint8_t len;
struct bt_att_group_data data[0]; struct bt_att_group_data data[];
} __packed; } __packed;
/* Write Request */ /* Write Request */
#define BT_ATT_OP_WRITE_REQ 0x12 #define BT_ATT_OP_WRITE_REQ 0x12
struct bt_att_write_req { struct bt_att_write_req {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Write Response */ /* Write Response */
@ -187,7 +192,7 @@ struct bt_att_write_req {
struct bt_att_prepare_write_req { struct bt_att_prepare_write_req {
uint16_t handle; uint16_t handle;
uint16_t offset; uint16_t offset;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Prepare Write Respond */ /* Prepare Write Respond */
@ -195,7 +200,7 @@ struct bt_att_prepare_write_req {
struct bt_att_prepare_write_rsp { struct bt_att_prepare_write_rsp {
uint16_t handle; uint16_t handle;
uint16_t offset; uint16_t offset;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Execute Write Request */ /* Execute Write Request */
@ -214,14 +219,14 @@ struct bt_att_exec_write_req {
#define BT_ATT_OP_NOTIFY 0x1b #define BT_ATT_OP_NOTIFY 0x1b
struct bt_att_notify { struct bt_att_notify {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Handle Value Indication */ /* Handle Value Indication */
#define BT_ATT_OP_INDICATE 0x1d #define BT_ATT_OP_INDICATE 0x1d
struct bt_att_indicate { struct bt_att_indicate {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Handle Value Confirm */ /* Handle Value Confirm */
@ -233,14 +238,15 @@ struct bt_att_signature {
#define BT_ATT_OP_READ_MULT_VL_REQ 0x20 #define BT_ATT_OP_READ_MULT_VL_REQ 0x20
struct bt_att_read_mult_vl_req { struct bt_att_read_mult_vl_req {
uint16_t handles[0]; uint8_t _dummy[0];
uint16_t handles[];
} __packed; } __packed;
/* Read Multiple Respose */ /* Read Multiple Respose */
#define BT_ATT_OP_READ_MULT_VL_RSP 0x21 #define BT_ATT_OP_READ_MULT_VL_RSP 0x21
struct bt_att_read_mult_vl_rsp { struct bt_att_read_mult_vl_rsp {
uint16_t len; uint16_t len;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Handle Multiple Value Notification */ /* Handle Multiple Value Notification */
@ -248,19 +254,19 @@ struct bt_att_read_mult_vl_rsp {
struct bt_att_notify_mult { struct bt_att_notify_mult {
uint16_t handle; uint16_t handle;
uint16_t len; uint16_t len;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Write Command */ /* Write Command */
#define BT_ATT_OP_WRITE_CMD 0x52 #define BT_ATT_OP_WRITE_CMD 0x52
struct bt_att_write_cmd { struct bt_att_write_cmd {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;
/* Signed Write Command */ /* Signed Write Command */
#define BT_ATT_OP_SIGNED_WRITE_CMD 0xd2 #define BT_ATT_OP_SIGNED_WRITE_CMD 0xd2
struct bt_att_signed_write_cmd { struct bt_att_signed_write_cmd {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[];
} __packed; } __packed;

View File

@ -454,7 +454,7 @@ struct bt_hci_handle_count {
#define BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS BT_OP(BT_OGF_BASEBAND, 0x0035) #define BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS BT_OP(BT_OGF_BASEBAND, 0x0035)
struct bt_hci_cp_host_num_completed_packets { struct bt_hci_cp_host_num_completed_packets {
uint8_t num_handles; uint8_t num_handles;
struct bt_hci_handle_count h[0]; struct bt_hci_handle_count h[];
} __packed; } __packed;
#define BT_HCI_OP_WRITE_INQUIRY_MODE BT_OP(BT_OGF_BASEBAND, 0x0045) #define BT_HCI_OP_WRITE_INQUIRY_MODE BT_OP(BT_OGF_BASEBAND, 0x0045)
@ -1099,7 +1099,7 @@ struct bt_hci_ext_adv_set {
struct bt_hci_cp_le_set_ext_adv_enable { struct bt_hci_cp_le_set_ext_adv_enable {
uint8_t enable; uint8_t enable;
uint8_t set_num; uint8_t set_num;
struct bt_hci_ext_adv_set s[0]; struct bt_hci_ext_adv_set s[];
} __packed; } __packed;
#define BT_HCI_OP_LE_READ_MAX_ADV_DATA_LEN BT_OP(BT_OGF_LE, 0x003a) #define BT_HCI_OP_LE_READ_MAX_ADV_DATA_LEN BT_OP(BT_OGF_LE, 0x003a)
@ -1158,7 +1158,7 @@ struct bt_hci_cp_le_set_ext_scan_param {
uint8_t own_addr_type; uint8_t own_addr_type;
uint8_t filter_policy; uint8_t filter_policy;
uint8_t phys; uint8_t phys;
struct bt_hci_ext_scan_phy p[0]; struct bt_hci_ext_scan_phy p[];
} __packed; } __packed;
/* Extends BT_HCI_LE_SCAN_FILTER_DUP */ /* Extends BT_HCI_LE_SCAN_FILTER_DUP */
@ -1189,7 +1189,7 @@ struct bt_hci_cp_le_ext_create_conn {
uint8_t own_addr_type; uint8_t own_addr_type;
bt_addr_le_t peer_addr; bt_addr_le_t peer_addr;
uint8_t phys; uint8_t phys;
struct bt_hci_ext_conn_phy p[0]; struct bt_hci_ext_conn_phy p[];
} __packed; } __packed;
#define BT_HCI_OP_LE_PER_ADV_CREATE_SYNC BT_OP(BT_OGF_LE, 0x0044) #define BT_HCI_OP_LE_PER_ADV_CREATE_SYNC BT_OP(BT_OGF_LE, 0x0044)
@ -1354,7 +1354,7 @@ struct bt_hci_evt_role_change {
#define BT_HCI_EVT_NUM_COMPLETED_PACKETS 0x13 #define BT_HCI_EVT_NUM_COMPLETED_PACKETS 0x13
struct bt_hci_evt_num_completed_packets { struct bt_hci_evt_num_completed_packets {
uint8_t num_handles; uint8_t num_handles;
struct bt_hci_handle_count h[0]; struct bt_hci_handle_count h[];
} __packed; } __packed;
#define BT_HCI_EVT_PIN_CODE_REQ 0x16 #define BT_HCI_EVT_PIN_CODE_REQ 0x16
@ -1510,11 +1510,11 @@ struct bt_hci_evt_le_advertising_info {
uint8_t evt_type; uint8_t evt_type;
bt_addr_le_t addr; bt_addr_le_t addr;
uint8_t length; uint8_t length;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
struct bt_hci_evt_le_advertising_report { struct bt_hci_evt_le_advertising_report {
uint8_t num_reports; uint8_t num_reports;
struct bt_hci_evt_le_advertising_info adv_info[0]; struct bt_hci_evt_le_advertising_info adv_info[];
} __packed; } __packed;
#define BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE 0x03 #define BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE 0x03
@ -1593,7 +1593,7 @@ struct bt_hci_evt_le_direct_adv_info {
} __packed; } __packed;
struct bt_hci_evt_le_direct_adv_report { struct bt_hci_evt_le_direct_adv_report {
uint8_t num_reports; uint8_t num_reports;
struct bt_hci_evt_le_direct_adv_info direct_adv_info[0]; struct bt_hci_evt_le_direct_adv_info direct_adv_info[];
} __packed; } __packed;
#define BT_HCI_EVT_LE_PHY_UPDATE_COMPLETE 0x0c #define BT_HCI_EVT_LE_PHY_UPDATE_COMPLETE 0x0c
@ -1628,11 +1628,11 @@ struct bt_hci_evt_le_ext_advertising_info {
uint16_t interval; uint16_t interval;
bt_addr_le_t direct_addr; bt_addr_le_t direct_addr;
uint8_t length; uint8_t length;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
struct bt_hci_evt_le_ext_advertising_report { struct bt_hci_evt_le_ext_advertising_report {
uint8_t num_reports; uint8_t num_reports;
struct bt_hci_evt_le_ext_advertising_info adv_info[0]; struct bt_hci_evt_le_ext_advertising_info adv_info[];
} __packed; } __packed;
#define BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED 0x0e #define BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED 0x0e
@ -1654,7 +1654,7 @@ struct bt_hci_evt_le_per_advertising_report {
uint8_t unused; uint8_t unused;
uint8_t data_status; uint8_t data_status;
uint8_t length; uint8_t length;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
#define BT_HCI_EVT_LE_PER_ADV_SYNC_LOST 0x10 #define BT_HCI_EVT_LE_PER_ADV_SYNC_LOST 0x10

View File

@ -104,7 +104,7 @@ struct bt_hci_cp_vs_set_trace_enable {
#define BT_HCI_OP_VS_READ_BUILD_INFO BT_OP(BT_OGF_VS, 0x0008) #define BT_HCI_OP_VS_READ_BUILD_INFO BT_OP(BT_OGF_VS, 0x0008)
struct bt_hci_rp_vs_read_build_info { struct bt_hci_rp_vs_read_build_info {
uint8_t status; uint8_t status;
uint8_t info[0]; uint8_t info[];
} __packed; } __packed;
struct bt_hci_vs_static_addr { struct bt_hci_vs_static_addr {
@ -116,7 +116,7 @@ struct bt_hci_vs_static_addr {
struct bt_hci_rp_vs_read_static_addrs { struct bt_hci_rp_vs_read_static_addrs {
uint8_t status; uint8_t status;
uint8_t num_addrs; uint8_t num_addrs;
struct bt_hci_vs_static_addr a[0]; struct bt_hci_vs_static_addr a[];
} __packed; } __packed;
#define BT_HCI_OP_VS_READ_KEY_HIERARCHY_ROOTS BT_OP(BT_OGF_VS, 0x000a) #define BT_HCI_OP_VS_READ_KEY_HIERARCHY_ROOTS BT_OP(BT_OGF_VS, 0x000a)
@ -143,7 +143,7 @@ struct bt_hci_vs_cmd {
struct bt_hci_rp_vs_read_host_stack_cmds { struct bt_hci_rp_vs_read_host_stack_cmds {
uint8_t status; uint8_t status;
uint8_t num_cmds; uint8_t num_cmds;
struct bt_hci_vs_cmd c[0]; struct bt_hci_vs_cmd c[];
} __packed; } __packed;
#define BT_HCI_VS_SCAN_REQ_REPORTS_DISABLED 0x00 #define BT_HCI_VS_SCAN_REQ_REPORTS_DISABLED 0x00
@ -189,7 +189,7 @@ struct bt_hci_rp_vs_read_tx_power_level {
struct bt_hci_rp_vs_read_usb_transport_mode { struct bt_hci_rp_vs_read_usb_transport_mode {
uint8_t status; uint8_t status;
uint8_t num_supported_modes; uint8_t num_supported_modes;
uint8_t supported_mode[0]; uint8_t supported_mode[];
} __packed; } __packed;
#define BT_HCI_VS_USB_H2_MODE 0x00 #define BT_HCI_VS_USB_H2_MODE 0x00
@ -210,7 +210,7 @@ struct bt_hci_evt_vs {
#define BT_HCI_EVT_VS_FATAL_ERROR 0x02 #define BT_HCI_EVT_VS_FATAL_ERROR 0x02
struct bt_hci_evt_vs_fatal_error { struct bt_hci_evt_vs_fatal_error {
uint64_t pc; uint64_t pc;
uint8_t err_info[0]; uint8_t err_info[];
} __packed; } __packed;
#define BT_HCI_VS_TRACE_LMP_TX 0x01 #define BT_HCI_VS_TRACE_LMP_TX 0x01
@ -221,7 +221,7 @@ struct bt_hci_evt_vs_fatal_error {
#define BT_HCI_EVT_VS_TRACE_INFO 0x03 #define BT_HCI_EVT_VS_TRACE_INFO 0x03
struct bt_hci_evt_vs_trace_info { struct bt_hci_evt_vs_trace_info {
uint8_t type; uint8_t type;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
#define BT_HCI_EVT_VS_SCAN_REQ_RX 0x04 #define BT_HCI_EVT_VS_SCAN_REQ_RX 0x04
@ -267,14 +267,14 @@ struct bt_hci_rp_mesh_get_opts {
#define BT_HCI_OC_MESH_SET_SCAN_FILTER 0x01 #define BT_HCI_OC_MESH_SET_SCAN_FILTER 0x01
struct bt_hci_mesh_pattern { struct bt_hci_mesh_pattern {
uint8_t pattern_len; uint8_t pattern_len;
uint8_t pattern[0]; uint8_t pattern[];
} __packed; } __packed;
struct bt_hci_cp_mesh_set_scan_filter { struct bt_hci_cp_mesh_set_scan_filter {
uint8_t scan_filter; uint8_t scan_filter;
uint8_t filter_dup; uint8_t filter_dup;
uint8_t num_patterns; uint8_t num_patterns;
struct bt_hci_mesh_pattern patterns[0]; struct bt_hci_mesh_pattern patterns[];
} __packed; } __packed;
struct bt_hci_rp_mesh_set_scan_filter { struct bt_hci_rp_mesh_set_scan_filter {
uint8_t status; uint8_t status;
@ -365,11 +365,11 @@ struct bt_hci_evt_mesh_scan_report {
int8_t rssi; int8_t rssi;
uint32_t instant; uint32_t instant;
uint8_t data_len; uint8_t data_len;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
struct bt_hci_evt_mesh_scanning_report { struct bt_hci_evt_mesh_scanning_report {
uint8_t num_reports; uint8_t num_reports;
struct bt_hci_evt_mesh_scan_report reports[0]; struct bt_hci_evt_mesh_scan_report reports[];
} __packed; } __packed;
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -45,7 +45,7 @@ struct bt_l2cap_sig_hdr {
#define BT_L2CAP_CMD_REJECT 0x01 #define BT_L2CAP_CMD_REJECT 0x01
struct bt_l2cap_cmd_reject { struct bt_l2cap_cmd_reject {
uint16_t reason; uint16_t reason;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
struct bt_l2cap_cmd_reject_cid_data { struct bt_l2cap_cmd_reject_cid_data {
@ -88,7 +88,7 @@ struct bt_l2cap_conn_rsp {
struct bt_l2cap_conf_req { struct bt_l2cap_conf_req {
uint16_t dcid; uint16_t dcid;
uint16_t flags; uint16_t flags;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
#define BT_L2CAP_CONF_RSP 0x05 #define BT_L2CAP_CONF_RSP 0x05
@ -96,7 +96,7 @@ struct bt_l2cap_conf_rsp {
uint16_t scid; uint16_t scid;
uint16_t flags; uint16_t flags;
uint16_t result; uint16_t result;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
/* Option type used by MTU config request data */ /* Option type used by MTU config request data */
@ -108,7 +108,7 @@ struct bt_l2cap_conf_rsp {
struct bt_l2cap_conf_opt { struct bt_l2cap_conf_opt {
uint8_t type; uint8_t type;
uint8_t len; uint8_t len;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
#define BT_L2CAP_DISCONN_REQ 0x06 #define BT_L2CAP_DISCONN_REQ 0x06
@ -139,7 +139,7 @@ struct bt_l2cap_info_req {
struct bt_l2cap_info_rsp { struct bt_l2cap_info_rsp {
uint16_t type; uint16_t type;
uint16_t result; uint16_t result;
uint8_t data[0]; uint8_t data[];
} __packed; } __packed;
#define BT_L2CAP_CONN_PARAM_REQ 0x12 #define BT_L2CAP_CONN_PARAM_REQ 0x12
@ -201,7 +201,7 @@ struct bt_l2cap_ecred_conn_req {
uint16_t mtu; uint16_t mtu;
uint16_t mps; uint16_t mps;
uint16_t credits; uint16_t credits;
uint16_t scid[0]; uint16_t scid[];
} __packed; } __packed;
#define BT_L2CAP_ECRED_CONN_RSP 0x18 #define BT_L2CAP_ECRED_CONN_RSP 0x18
@ -210,14 +210,14 @@ struct bt_l2cap_ecred_conn_rsp {
uint16_t mps; uint16_t mps;
uint16_t credits; uint16_t credits;
uint16_t result; uint16_t result;
uint16_t dcid[0]; uint16_t dcid[];
} __packed; } __packed;
#define BT_L2CAP_ECRED_RECONF_REQ 0x19 #define BT_L2CAP_ECRED_RECONF_REQ 0x19
struct bt_l2cap_ecred_reconf_req { struct bt_l2cap_ecred_reconf_req {
uint16_t mtu; uint16_t mtu;
uint16_t mps; uint16_t mps;
uint16_t scid[0]; uint16_t scid[];
} __packed; } __packed;
#define BT_L2CAP_RECONF_SUCCESS 0x0000 #define BT_L2CAP_RECONF_SUCCESS 0x0000

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-10-10 23:51+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"
@ -392,7 +392,7 @@ msgstr "Send yang lain sudah aktif"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Array harus mengandung halfwords (ketik 'H')" msgstr "Array harus mengandung halfwords (ketik 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Nilai array harus berupa byte tunggal." msgstr "Nilai array harus berupa byte tunggal."
@ -504,8 +504,8 @@ msgstr "Panjang buffer harus kelipatan 512"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Penyangga harus memiliki panjang setidaknya 1" msgstr "Penyangga harus memiliki panjang setidaknya 1"
@ -528,7 +528,7 @@ msgstr "Pin bus %d sudah digunakan"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Byte buffer harus 16 byte." msgstr "Byte buffer harus 16 byte."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Bytes harus di antara 0 dan 255." msgstr "Bytes harus di antara 0 dan 255."
@ -1101,6 +1101,10 @@ msgstr "Pin DAC yang diberikan tidak valid"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Frekuensi PWM tidak valid" msgstr "Frekuensi PWM tidak valid"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Argumen tidak valid" msgstr "Argumen tidak valid"
@ -1317,7 +1321,7 @@ msgstr "Tidak ada DAC (Digital Analog Converter) di dalam chip"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "tidak ada channel DMA ditemukan" msgstr "tidak ada channel DMA ditemukan"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1532,6 +1536,7 @@ msgstr "Izin ditolak"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Pin tidak mempunya kemampuan untuk ADC (Analog Digital Converter)" msgstr "Pin tidak mempunya kemampuan untuk ADC (Analog Digital Converter)"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1587,10 +1592,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Buffer awalan harus ada di heap" 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Tekan tombol apa saja untuk masuk ke dalam REPL. Gunakan CTRL+D untuk reset "
"(Reload)"
#: 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."
@ -1726,7 +1733,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Potongan dan nilai panjangnya berbeda." msgstr "Potongan dan nilai panjangnya berbeda."
@ -1945,6 +1952,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "" msgstr ""
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "" msgstr ""
@ -2072,6 +2083,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2154,7 +2169,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -3254,7 +3270,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""
@ -3846,6 +3862,11 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Tekan tombol apa saja untuk masuk ke dalam REPL. Gunakan CTRL+D untuk "
#~ "reset (Reload)"
#~ msgid "" #~ msgid ""
#~ "\n" #~ "\n"
#~ "To exit, please reset the board without " #~ "To exit, please reset the board without "

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-08 09:56-0800\n" "POT-Creation-Date: 2020-12-23 16:41-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -388,7 +388,7 @@ msgstr ""
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "" msgstr ""
@ -522,7 +522,7 @@ msgstr ""
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "" msgstr ""
@ -936,6 +936,10 @@ msgstr ""
msgid "Filters too complex" msgid "Filters too complex"
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/dualbank/__init__.c
msgid "Firmware image is invalid"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c #: ports/cxd56/common-hal/camera/Camera.c
msgid "Format not supported" msgid "Format not supported"
msgstr "" msgstr ""
@ -945,10 +949,6 @@ msgstr ""
msgid "Framebuffer requires %d bytes" msgid "Framebuffer requires %d bytes"
msgstr "" msgstr ""
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
msgid "Frequency captured is above capability. Capture Paused."
msgstr ""
#: ports/stm/common-hal/pwmio/PWMOut.c #: ports/stm/common-hal/pwmio/PWMOut.c
msgid "Frequency must match existing PWMOut using this timer" msgid "Frequency must match existing PWMOut using this timer"
msgstr "" msgstr ""
@ -1080,6 +1080,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "" msgstr ""
@ -1696,7 +1700,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "" msgstr ""
@ -1911,6 +1915,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "" msgstr ""
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "" msgstr ""
@ -1975,6 +1983,10 @@ msgstr ""
msgid "Unsupported pull value." msgid "Unsupported pull value."
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/dualbank/__init__.c
msgid "Update Failed"
msgstr ""
#: ports/nrf/common-hal/_bleio/Characteristic.c #: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c #: ports/nrf/common-hal/_bleio/Descriptor.c
msgid "Value length != required fixed length" msgid "Value length != required fixed length"
@ -2117,7 +2129,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -2992,7 +3005,7 @@ msgid "max_length must be 0-%d when fixed_length is %s"
msgstr "" msgstr ""
#: 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 ""
#: extmod/ulab/code/ndarray.c #: extmod/ulab/code/ndarray.c
@ -3130,6 +3143,14 @@ msgstr ""
msgid "non-keyword arg after keyword arg" msgid "non-keyword arg after keyword arg"
msgstr "" msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "non-zero timeout must be > 0.01"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "non-zero timeout must be >= interval"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c #: extmod/ulab/code/linalg/linalg.c
msgid "norm is defined for 1D and 2D arrays" msgid "norm is defined for 1D and 2D arrays"
msgstr "" msgstr ""
@ -3202,6 +3223,10 @@ msgstr ""
msgid "offset is too large" msgid "offset is too large"
msgstr "" msgstr ""
#: shared-bindings/dualbank/__init__.c
msgid "offset must be >= 0"
msgstr ""
#: py/objstr.c py/objstrunicode.c #: py/objstr.c py/objstrunicode.c
msgid "offset out of bounds" msgid "offset out of bounds"
msgstr "" msgstr ""
@ -3215,7 +3240,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""
@ -3547,6 +3572,10 @@ msgstr ""
msgid "timeout must be 0.0-100.0 seconds" msgid "timeout must be 0.0-100.0 seconds"
msgstr "" msgstr ""
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "timeout must be < 655.35 secs"
msgstr ""
#: shared-bindings/_bleio/CharacteristicBuffer.c #: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "timeout must be >= 0.0" msgid "timeout must be >= 0.0"
msgstr "" msgstr ""

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-12-02 20:29+0000\n" "PO-Revision-Date: 2020-12-04 18:33+0000\n"
"Last-Translator: vkuthan <vit.kuthan@seznam.cz>\n" "Last-Translator: vkuthan <vit.kuthan@seznam.cz>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: cs\n" "Language: cs\n"
@ -22,7 +22,7 @@ msgid ""
"Code done running. Waiting for reload.\n" "Code done running. Waiting for reload.\n"
msgstr "" msgstr ""
"\n" "\n"
"Kód byl dokončen. Čekám na opětovné načtení.\n" "Kód byl dokončen. Čekám na opětovné nahrání.\n"
#: supervisor/shared/safe_mode.c #: supervisor/shared/safe_mode.c
msgid "" msgid ""
@ -58,11 +58,11 @@ msgstr "%d adresní piny a %d rgb piny označují výšku %d, nikoli %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c #: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d" msgid "%q failure: %d"
msgstr "" msgstr "Selhání %q: %d"
#: shared-bindings/microcontroller/Pin.c #: shared-bindings/microcontroller/Pin.c
msgid "%q in use" msgid "%q in use"
msgstr "%q se nyní používá" msgstr "Používá se %q"
#: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c #: extmod/moductypes.c ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c #: ports/cxd56/common-hal/pulseio/PulseIn.c
@ -70,11 +70,11 @@ msgstr "%q se nyní používá"
#: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c #: ports/stm/common-hal/pulseio/PulseIn.c py/obj.c py/objstr.c
#: py/objstrunicode.c #: py/objstrunicode.c
msgid "%q index out of range" msgid "%q index out of range"
msgstr "%q index je mimo rozsah" msgstr "Index %q je mimo rozsah"
#: py/obj.c #: py/obj.c
msgid "%q indices must be integers, not %q" msgid "%q indices must be integers, not %q"
msgstr "%q indexy musí být celá čísla, ne %q" msgstr "Indexy %q musí být celá čísla, ne %q"
#: shared-bindings/vectorio/Polygon.c #: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list" msgid "%q list must be a list"
@ -90,11 +90,11 @@ msgstr "%q musí být >= 0"
#: shared-bindings/memorymonitor/AllocationAlarm.c #: shared-bindings/memorymonitor/AllocationAlarm.c
#: shared-bindings/vectorio/Circle.c shared-bindings/vectorio/Rectangle.c #: shared-bindings/vectorio/Circle.c shared-bindings/vectorio/Rectangle.c
msgid "%q must be >= 1" msgid "%q must be >= 1"
msgstr " %q musí být > = 1" msgstr "%q musí být > = 1"
#: shared-module/vectorio/Polygon.c #: shared-module/vectorio/Polygon.c
msgid "%q must be a tuple of length 2" msgid "%q must be a tuple of length 2"
msgstr " %q musí být n-tice délky 2" msgstr "%q musí být n-tice délky 2"
#: shared-bindings/canio/Match.c #: shared-bindings/canio/Match.c
msgid "%q out of range" msgid "%q out of range"
@ -102,23 +102,23 @@ msgstr "%q je mimo rozsah"
#: ports/atmel-samd/common-hal/microcontroller/Pin.c #: ports/atmel-samd/common-hal/microcontroller/Pin.c
msgid "%q pin invalid" msgid "%q pin invalid"
msgstr "" msgstr "Pin %q není platný"
#: shared-bindings/fontio/BuiltinFont.c #: shared-bindings/fontio/BuiltinFont.c
msgid "%q should be an int" msgid "%q should be an int"
msgstr " %q by měl být int" msgstr "%q by měl být int"
#: py/bc.c py/objnamedtuple.c #: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given" msgid "%q() takes %d positional arguments but %d were given"
msgstr "" msgstr "%q() vyžaduje %d pozičních argumentů, ale %d jich bylo zadáno"
#: py/argcheck.c #: py/argcheck.c
msgid "'%q' argument required" msgid "'%q' argument required"
msgstr "" msgstr "Je vyžadován argument '%q'"
#: py/runtime.c #: py/runtime.c
msgid "'%q' object cannot assign attribute '%q'" msgid "'%q' object cannot assign attribute '%q'"
msgstr "" msgstr "'%q' nemůže přiřadit atribut '%q'"
#: py/proto.c #: py/proto.c
msgid "'%q' object does not support '%q'" msgid "'%q' object does not support '%q'"
@ -392,7 +392,7 @@ msgstr ""
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "" msgstr ""
@ -502,8 +502,8 @@ msgstr ""
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "" msgstr ""
@ -526,7 +526,7 @@ msgstr ""
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "" msgstr ""
@ -1084,6 +1084,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "" msgstr ""
@ -1300,7 +1304,7 @@ msgstr ""
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "" msgstr ""
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1507,6 +1511,7 @@ msgstr ""
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "" msgstr ""
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1559,7 +1564,11 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
@ -1695,7 +1704,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "" msgstr ""
@ -1910,6 +1919,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "" msgstr ""
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "" msgstr ""
@ -2030,6 +2043,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2112,7 +2129,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -3210,7 +3228,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-26 03:11+0000\n" "PO-Revision-Date: 2020-11-26 03:11+0000\n"
"Last-Translator: Daniel Bravo Darriba <bravodarriba@gmail.com>\n" "Last-Translator: Daniel Bravo Darriba <bravodarriba@gmail.com>\n"
"Language: de_DE\n" "Language: de_DE\n"
@ -391,7 +391,7 @@ msgstr "Ein anderer Sendevorgang ist schon aktiv"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Array muss Halbwörter enthalten (type 'H')" msgstr "Array muss Halbwörter enthalten (type 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Array-Werte sollten aus Einzelbytes bestehen." msgstr "Array-Werte sollten aus Einzelbytes bestehen."
@ -505,8 +505,8 @@ msgstr "Die Pufferlänge muss ein vielfaches von 512 sein"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "Der Puffer muss ein vielfaches von 512 bytes sein" msgstr "Der Puffer muss ein vielfaches von 512 bytes sein"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Der Puffer muss eine Mindestenslänge von 1 haben" msgstr "Der Puffer muss eine Mindestenslänge von 1 haben"
@ -529,7 +529,7 @@ msgstr "Bus pin %d wird schon benutzt"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Der Puffer muss 16 Bytes lang sein." msgstr "Der Puffer muss 16 Bytes lang sein."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Ein Bytes kann nur Werte zwischen 0 und 255 annehmen." msgstr "Ein Bytes kann nur Werte zwischen 0 und 255 annehmen."
@ -1101,6 +1101,10 @@ msgstr "Ungültiger DAC-Pin angegeben"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Ungültige PWM Frequenz" msgstr "Ungültige PWM Frequenz"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Ungültiges Argument" msgstr "Ungültiges Argument"
@ -1319,7 +1323,7 @@ msgstr "Kein DAC im Chip vorhanden"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Kein DMA Kanal gefunden" msgstr "Kein DMA Kanal gefunden"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1532,6 +1536,7 @@ msgstr "Zugang verweigert"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Pin hat keine ADC Funktionalität" msgstr "Pin hat keine ADC Funktionalität"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "Pin kann nur als Eingang verwendet werden" msgstr "Pin kann nur als Eingang verwendet werden"
@ -1587,10 +1592,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Der Präfixbuffer muss sich auf dem Heap befinden" msgstr "Der Präfixbuffer muss sich auf dem Heap befinden"
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum neu "
"laden."
#: 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."
@ -1725,7 +1732,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice und Wert (value) haben unterschiedliche Längen." msgstr "Slice und Wert (value) haben unterschiedliche Längen."
@ -1954,6 +1961,10 @@ msgstr "Konnte Farbpalettendaten nicht lesen"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Schreiben in nvm nicht möglich." msgstr "Schreiben in nvm nicht möglich."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Unerwarteter nrfx uuid-Typ" msgstr "Unerwarteter nrfx uuid-Typ"
@ -2087,6 +2098,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "WiFi Passwort muss zwischen 8 und 63 Zeichen lang sein" msgstr "WiFi Passwort muss zwischen 8 und 63 Zeichen lang sein"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "Schreiben nicht unterstüzt für diese Charakteristik" msgstr "Schreiben nicht unterstüzt für diese Charakteristik"
@ -2171,7 +2186,8 @@ msgstr "Argumente müssen ndarrays sein"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "Array/Bytes auf der rechten Seite erforderlich" msgstr "Array/Bytes auf der rechten Seite erforderlich"
@ -3289,7 +3305,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "nur eine sample_rate=16000 wird unterstützt" msgstr "nur eine sample_rate=16000 wird unterstützt"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""
"Es werden nur Slices mit Schritt = 1 (auch bekannt als None) unterstützt" "Es werden nur Slices mit Schritt = 1 (auch bekannt als None) unterstützt"
@ -3890,6 +3906,11 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Drücke eine Taste um dich mit der REPL zu verbinden. Drücke Strg-D zum "
#~ "neu laden."
#~ msgid "arctan2 is implemented for scalars and ndarrays only" #~ msgid "arctan2 is implemented for scalars and ndarrays only"
#~ msgstr "arctan2 ist nur für Skalare und ndarrays implementiert" #~ msgstr "arctan2 ist nur für Skalare und ndarrays implementiert"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\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"
@ -387,7 +387,7 @@ msgstr ""
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "" msgstr ""
@ -497,8 +497,8 @@ msgstr ""
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "" msgstr ""
@ -521,7 +521,7 @@ msgstr ""
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "" msgstr ""
@ -1079,6 +1079,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "" msgstr ""
@ -1295,7 +1299,7 @@ msgstr ""
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "" msgstr ""
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1502,6 +1506,7 @@ msgstr ""
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "" msgstr ""
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1554,7 +1559,11 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
@ -1690,7 +1699,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "" msgstr ""
@ -1905,6 +1914,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "" msgstr ""
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "" msgstr ""
@ -2025,6 +2038,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2107,7 +2124,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -3205,7 +3223,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-27 18:34+0000\n" "PO-Revision-Date: 2020-11-27 18:34+0000\n"
"Last-Translator: Iván Montiel Cardona <ivan_montiel2013@hotmail.com>\n" "Last-Translator: Iván Montiel Cardona <ivan_montiel2013@hotmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -397,7 +397,7 @@ msgstr "Otro envío ya está activo"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "El array debe contener medias palabras (escriba 'H')" msgstr "El array debe contener medias palabras (escriba 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Valores del array deben ser bytes individuales." msgstr "Valores del array deben ser bytes individuales."
@ -511,8 +511,8 @@ msgstr "El tamaño del búfer debe ser múltiplo de 512"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "Búfer deber ser un múltiplo de 512 bytes" msgstr "Búfer deber ser un múltiplo de 512 bytes"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Buffer debe ser de longitud 1 como minimo" msgstr "Buffer debe ser de longitud 1 como minimo"
@ -535,7 +535,7 @@ msgstr "Bus pin %d ya está siendo utilizado"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Búfer Byte debe de ser 16 bytes." msgstr "Búfer Byte debe de ser 16 bytes."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Bytes debe estar entre 0 y 255." msgstr "Bytes debe estar entre 0 y 255."
@ -1102,6 +1102,10 @@ msgstr "Pin suministrado inválido para DAC"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Frecuencia PWM inválida" msgstr "Frecuencia PWM inválida"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Argumento inválido" msgstr "Argumento inválido"
@ -1318,7 +1322,7 @@ msgstr "El chip no tiene DAC"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "No se encontró el canal DMA" msgstr "No se encontró el canal DMA"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1533,6 +1537,7 @@ msgstr "Permiso denegado"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Pin no tiene capacidad ADC" msgstr "Pin no tiene capacidad ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "El pin es solo de entrada" msgstr "El pin es solo de entrada"
@ -1592,9 +1597,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "El prefijo del buffer debe estar en el heap" msgstr "El prefijo del buffer debe estar en el 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Presiona cualquier tecla para entrar al REPL. Usa CTRL-D para recargar."
#: 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."
@ -1729,7 +1737,7 @@ msgstr "El contexto del lado del servidor no puede tener un hostname"
msgid "Size not supported" msgid "Size not supported"
msgstr "Sin capacidades para el tamaño" msgstr "Sin capacidades para el tamaño"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice y value tienen tamaños diferentes." msgstr "Slice y value tienen tamaños diferentes."
@ -1958,6 +1966,10 @@ msgstr "No se pudo leer los datos de la paleta de colores"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Imposible escribir en nvm." msgstr "Imposible escribir en nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Tipo de uuid nrfx inesperado" msgstr "Tipo de uuid nrfx inesperado"
@ -2089,6 +2101,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "La clave de WiFi debe ser entre 8 y 63 caracteres" msgstr "La clave de WiFi debe ser entre 8 y 63 caracteres"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "Escrituras no admitidas en Characteristic" msgstr "Escrituras no admitidas en Characteristic"
@ -2171,7 +2187,8 @@ msgstr "argumentos deben ser ndarrays"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "Longitud del array e índice tienen que ser iguales" msgstr "Longitud del array e índice tienen que ser iguales"
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "array/bytes requeridos en el lado derecho" msgstr "array/bytes requeridos en el lado derecho"
@ -3282,7 +3299,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "solo se admite sample_rate=16000" msgstr "solo se admite sample_rate=16000"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "solo se admiten segmentos con step=1 (alias None)" msgstr "solo se admiten segmentos con step=1 (alias None)"
@ -3876,6 +3893,10 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)" msgstr "zi debe ser una forma (n_section,2)"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Presiona cualquier tecla para entrar al REPL. Usa CTRL-D para recargar."
#~ msgid "Only IPv4 SOCK_STREAM sockets supported" #~ msgid "Only IPv4 SOCK_STREAM sockets supported"
#~ msgstr "Solo hay capacidad para enchufes IPv4 SOCK_STREAM" #~ msgstr "Solo hay capacidad para enchufes IPv4 SOCK_STREAM"

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n" "PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n" "Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n" "Language-Team: fil\n"
@ -390,7 +390,7 @@ msgstr "Isa pang send ay aktibo na"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "May halfwords (type 'H') dapat ang array" msgstr "May halfwords (type 'H') dapat ang array"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Array values ay dapat single bytes." msgstr "Array values ay dapat single bytes."
@ -502,8 +502,8 @@ msgstr ""
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Buffer dapat ay hindi baba sa 1 na haba" msgstr "Buffer dapat ay hindi baba sa 1 na haba"
@ -527,7 +527,7 @@ msgstr "Ginagamit na ang DAC"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "buffer ay dapat bytes-like object" msgstr "buffer ay dapat bytes-like object"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Sa gitna ng 0 o 255 dapat ang bytes." msgstr "Sa gitna ng 0 o 255 dapat ang bytes."
@ -1094,6 +1094,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Mali ang PWM frequency" msgstr "Mali ang PWM frequency"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Maling argumento" msgstr "Maling argumento"
@ -1310,7 +1314,7 @@ msgstr "Walang DAC sa chip"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Walang DMA channel na mahanap" msgstr "Walang DMA channel na mahanap"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1521,6 +1525,7 @@ msgstr "Walang pahintulot"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Ang pin ay walang kakayahan sa ADC" msgstr "Ang pin ay walang kakayahan sa ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1573,10 +1578,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Pindutin ang anumang key upang pumasok sa REPL. Gamitin ang CTRL-D upang i-"
"reload."
#: 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."
@ -1712,7 +1719,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice at value iba't ibang haba." msgstr "Slice at value iba't ibang haba."
@ -1927,6 +1934,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Hindi ma i-sulat sa NVM." msgstr "Hindi ma i-sulat sa NVM."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
#, fuzzy #, fuzzy
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
@ -2057,6 +2068,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2139,7 +2154,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "array/bytes kinakailangan sa kanang bahagi" msgstr "array/bytes kinakailangan sa kanang bahagi"
@ -3255,7 +3271,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "ang mga slices lamang na may hakbang = 1 (aka None) ang sinusuportahan" msgstr "ang mga slices lamang na may hakbang = 1 (aka None) ang sinusuportahan"
@ -3853,6 +3869,11 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Pindutin ang anumang key upang pumasok sa REPL. Gamitin ang CTRL-D upang "
#~ "i-reload."
#~ msgid "%q indices must be integers, not %s" #~ msgid "%q indices must be integers, not %s"
#~ msgstr "%q indeks ay dapat integers, hindi %s" #~ msgstr "%q indeks ay dapat integers, hindi %s"

View File

@ -7,8 +7,8 @@ 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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-24 22:45+0000\n" "PO-Revision-Date: 2020-12-08 19:21+0000\n"
"Last-Translator: Antonin ENFRUN <antonin.e@me.com>\n" "Last-Translator: Antonin ENFRUN <antonin.e@me.com>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -397,7 +397,7 @@ msgstr "Un autre envoi est déjà actif"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Le tableau doit contenir des demi-mots (type 'H')" msgstr "Le tableau doit contenir des demi-mots (type 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'." msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'."
@ -511,8 +511,8 @@ msgstr "La longueur de la mémoire tampon doit être un multiple de 512"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "La mémoire tampon doit être un multiple de 512" msgstr "La mémoire tampon doit être un multiple de 512"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Le tampon doit être de longueur au moins 1" msgstr "Le tampon doit être de longueur au moins 1"
@ -535,7 +535,7 @@ msgstr "La broche %d du bus est déjà utilisée"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Le tampon doit être de 16 octets." msgstr "Le tampon doit être de 16 octets."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Les octets 'bytes' doivent être entre 0 et 255." msgstr "Les octets 'bytes' doivent être entre 0 et 255."
@ -1107,6 +1107,10 @@ msgstr "Broche DAC non valide fournie"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Fréquence de PWM invalide" msgstr "Fréquence de PWM invalide"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Argument invalide" msgstr "Argument invalide"
@ -1303,7 +1307,7 @@ msgstr "Doit utiliser un multiple de 6 broches RVB, pas %d"
#: ports/esp32s2/common-hal/nvm/ByteArray.c #: ports/esp32s2/common-hal/nvm/ByteArray.c
msgid "NVS Error" msgid "NVS Error"
msgstr "" msgstr "Erreur NVS"
#: py/parse.c #: py/parse.c
msgid "Name too long" msgid "Name too long"
@ -1323,10 +1327,10 @@ msgstr "Pas de DAC sur la puce"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Aucun canal DMA trouvé" msgstr "Aucun canal DMA trouvé"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr "Pas de dispositif I2C à l'adresse : %x"
#: 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
@ -1468,7 +1472,7 @@ msgstr "Seules les adresses IPv4 sont prises en charge"
#: ports/esp32s2/common-hal/socketpool/SocketPool.c #: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Only IPv4 sockets supported" msgid "Only IPv4 sockets supported"
msgstr "" msgstr "Seules les sockets IPv4 sont prises en charge"
#: shared-module/displayio/OnDiskBitmap.c #: shared-module/displayio/OnDiskBitmap.c
#, c-format #, c-format
@ -1540,6 +1544,7 @@ msgstr "Permission refusée"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "La broche ne peut être utilisée pour l'ADC" msgstr "La broche ne peut être utilisée pour l'ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "La broche est entrée uniquement" msgstr "La broche est entrée uniquement"
@ -1554,7 +1559,7 @@ msgstr "Numéro de broche déjà réservé par EXTI"
#: ports/esp32s2/common-hal/alarm/__init__.c #: ports/esp32s2/common-hal/alarm/__init__.c
msgid "PinAlarm not yet implemented" msgid "PinAlarm not yet implemented"
msgstr "" msgstr "PinAlarm pas encore implémenté"
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
@ -1599,8 +1604,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Le tampon de préfixe doit être sur le tas" msgstr "Le tampon de préfixe doit être sur le tas"
#: 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.\n"
msgstr "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger." msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
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."
@ -1735,7 +1744,7 @@ msgstr "Un contexte niveau serveur ne peut avoir de hostname"
msgid "Size not supported" msgid "Size not supported"
msgstr "Taille non prise en charge" msgstr "Taille non prise en charge"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Tranche et valeur de tailles différentes." msgstr "Tranche et valeur de tailles différentes."
@ -1772,7 +1781,7 @@ msgstr "Fournissez au moins une broche UART"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "Supply one of monotonic_time or epoch_time" msgid "Supply one of monotonic_time or epoch_time"
msgstr "" msgstr "Fournissez l'un de monotonic_time ou epoch_time"
#: shared-bindings/gnss/GNSS.c #: shared-bindings/gnss/GNSS.c
msgid "System entry must be gnss.SatelliteSystem" msgid "System entry must be gnss.SatelliteSystem"
@ -1965,6 +1974,10 @@ msgstr "Impossible de lire les données de la palette de couleurs"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Impossible d'écrire sur la mémoire non-volatile." msgstr "Impossible d'écrire sur la mémoire non-volatile."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Type inattendu pour l'uuid nrfx" msgstr "Type inattendu pour l'uuid nrfx"
@ -2098,6 +2111,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "Le mot de passe WiFi doit faire entre 8 et 63 caractères" msgstr "Le mot de passe WiFi doit faire entre 8 et 63 caractères"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "Écritures non prises en charge sur la caractéristique" msgstr "Écritures non prises en charge sur la caractéristique"
@ -2180,7 +2197,8 @@ msgstr "les arguments doivent être des ndarrays"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "la longueur du tableau et de l'index doit être égale" msgstr "la longueur du tableau et de l'index doit être égale"
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "tableau/octets requis à droite" msgstr "tableau/octets requis à droite"
@ -3300,7 +3318,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "seul sample_rate = 16000 est pris en charge" msgstr "seul sample_rate = 16000 est pris en charge"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "seules les tranches avec 'step=1' (cad None) sont supportées" msgstr "seules les tranches avec 'step=1' (cad None) sont supportées"
@ -3897,6 +3915,10 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)" msgstr "zi doit être de forme (n_section, 2)"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger."
#~ msgid "Only IPv4 SOCK_STREAM sockets supported" #~ msgid "Only IPv4 SOCK_STREAM sockets supported"
#~ msgstr "Seules les sockets IPv4 SOCK_STREAM sont prises en charge" #~ msgstr "Seules les sockets IPv4 SOCK_STREAM sont prises en charge"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\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"
@ -387,7 +387,7 @@ msgstr ""
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "" msgstr ""
@ -497,8 +497,8 @@ msgstr ""
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "" msgstr ""
@ -521,7 +521,7 @@ msgstr ""
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "" msgstr ""
@ -1079,6 +1079,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "" msgstr ""
@ -1295,7 +1299,7 @@ msgstr ""
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "" msgstr ""
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1502,6 +1506,7 @@ msgstr ""
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "" msgstr ""
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1554,7 +1559,11 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
@ -1690,7 +1699,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "" msgstr ""
@ -1905,6 +1914,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "" msgstr ""
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "" msgstr ""
@ -2025,6 +2038,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2107,7 +2124,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -3205,7 +3223,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n" "PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n" "Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -389,7 +389,7 @@ msgstr "Another send è gia activato"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Array deve avere mezzoparole (typo 'H')" msgstr "Array deve avere mezzoparole (typo 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Valori di Array dovrebbero essere bytes singulari" msgstr "Valori di Array dovrebbero essere bytes singulari"
@ -502,8 +502,8 @@ msgstr ""
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Il buffer deve essere lungo almeno 1" msgstr "Il buffer deve essere lungo almeno 1"
@ -527,7 +527,7 @@ msgstr "DAC già in uso"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "i buffer devono essere della stessa lunghezza" msgstr "i buffer devono essere della stessa lunghezza"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "I byte devono essere compresi tra 0 e 255" msgstr "I byte devono essere compresi tra 0 e 255"
@ -1094,6 +1094,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Frequenza PWM non valida" msgstr "Frequenza PWM non valida"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Argomento non valido" msgstr "Argomento non valido"
@ -1314,7 +1318,7 @@ msgstr "Nessun DAC sul chip"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Nessun canale DMA trovato" msgstr "Nessun canale DMA trovato"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1530,6 +1534,7 @@ msgstr "Permesso negato"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Il pin non ha capacità di ADC" msgstr "Il pin non ha capacità di ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1583,9 +1588,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Premi un qualunque tasto per entrare nel REPL. Usa CTRL-D per ricaricare."
#: 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."
@ -1723,7 +1731,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "" msgstr ""
@ -1938,6 +1946,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Imposibile scrivere su nvm." msgstr "Imposibile scrivere su nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
#, fuzzy #, fuzzy
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
@ -2060,6 +2072,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2142,7 +2158,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -3260,7 +3277,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "solo slice con step=1 (aka None) sono supportate" msgstr "solo slice con step=1 (aka None) sono supportate"
@ -3860,6 +3877,10 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Premi un qualunque tasto per entrare nel REPL. Usa CTRL-D per ricaricare."
#~ msgid "%q indices must be integers, not %s" #~ msgid "%q indices must be integers, not %s"
#~ msgstr "gli indici %q devono essere interi, non %s" #~ msgstr "gli indici %q devono essere interi, non %s"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-27 18:34+0000\n" "PO-Revision-Date: 2020-11-27 18:34+0000\n"
"Last-Translator: sporeball <sporeballdev@gmail.com>\n" "Last-Translator: sporeball <sporeballdev@gmail.com>\n"
"Language-Team: none\n" "Language-Team: none\n"
@ -394,7 +394,7 @@ msgstr "他のsendがすでにアクティブ"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "array のタイプは16ビット ('H') でなければなりません" msgstr "array のタイプは16ビット ('H') でなければなりません"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Arrayの各値は1バイトでなければなりません" msgstr "Arrayの各値は1バイトでなければなりません"
@ -506,8 +506,8 @@ msgstr "バッファ長は512の倍数でなければなりません"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "バッファは512の倍数でなければなりません" msgstr "バッファは512の倍数でなければなりません"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "バッファ長は少なくとも1以上でなければなりません" msgstr "バッファ長は少なくとも1以上でなければなりません"
@ -530,7 +530,7 @@ msgstr "Busピン%dはすでに使用中"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "バッファは16バイトでなければなりません" msgstr "バッファは16バイトでなければなりません"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "バイト値は0から255の間でなければなりません" msgstr "バイト値は0から255の間でなければなりません"
@ -1094,6 +1094,10 @@ msgstr "不正なDACピンが与えられました"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "無効なPWM周波数" msgstr "無効なPWM周波数"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "不正な引数" msgstr "不正な引数"
@ -1310,7 +1314,7 @@ msgstr "チップにDACがありません"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "DMAチャネルが見つかりません" msgstr "DMAチャネルが見つかりません"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1520,6 +1524,7 @@ msgstr "パーミッション拒否"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "ピンにADCの能力がありません" msgstr "ピンにADCの能力がありません"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "ピンは入力専用" msgstr "ピンは入力専用"
@ -1572,8 +1577,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Prefixバッファはヒープ上になければなりません" msgstr "Prefixバッファはヒープ上になければなりません"
#: 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.\n"
msgstr "何らかのキーを押すとREPLに入ります。CTRL-Dでリロード。" msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
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."
@ -1708,7 +1717,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "サイズは対応していません" msgstr "サイズは対応していません"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "スライスと値の長さが一致しません" msgstr "スライスと値の長さが一致しません"
@ -1930,6 +1939,10 @@ msgstr "カラーパレットデータを読み込めません"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "nvmに書き込みできません" msgstr "nvmに書き込みできません"
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "想定されていないnrfx UUID型" msgstr "想定されていないnrfx UUID型"
@ -2050,6 +2063,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "WiFiパスワードは8〜63文字でなければなりません" msgstr "WiFiパスワードは8〜63文字でなければなりません"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2132,7 +2149,8 @@ msgstr "引数はndarrayでなければなりません"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "右辺にはarray/bytesが必要" msgstr "右辺にはarray/bytesが必要"
@ -3235,7 +3253,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""
@ -3829,6 +3847,9 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr "何らかのキーを押すとREPLに入ります。CTRL-Dでリロード。"
#~ msgid "axis must be -1, 0, None, or 1" #~ msgid "axis must be -1, 0, None, or 1"
#~ msgstr "axisは -1, 0, 1, None のいずれかでなければなりません" #~ msgstr "axisは -1, 0, 1, None のいずれかでなければなりません"

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\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"
@ -390,7 +390,7 @@ msgstr ""
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "" msgstr ""
@ -502,8 +502,8 @@ msgstr ""
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "" msgstr ""
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "잘못된 크기의 버퍼. >1 여야합니다" msgstr "잘못된 크기의 버퍼. >1 여야합니다"
@ -526,7 +526,7 @@ msgstr ""
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "잘못된 크기의 버퍼. 16 바이트 여야합니다." msgstr "잘못된 크기의 버퍼. 16 바이트 여야합니다."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "바이트는 0에서 255 사이 여야합니다." msgstr "바이트는 0에서 255 사이 여야합니다."
@ -1084,6 +1084,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "" msgstr ""
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "" msgstr ""
@ -1300,7 +1304,7 @@ msgstr ""
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "" msgstr ""
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1507,6 +1511,7 @@ msgstr ""
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "" msgstr ""
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1559,7 +1564,11 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
@ -1695,7 +1704,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "" msgstr ""
@ -1911,6 +1920,10 @@ msgstr ""
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "" msgstr ""
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "" msgstr ""
@ -2031,6 +2044,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2113,7 +2130,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "" msgstr ""
@ -3211,7 +3229,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-10-27 16:47+0000\n" "PO-Revision-Date: 2020-10-27 16:47+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"
@ -392,7 +392,7 @@ msgstr "Een andere send is al actief"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Array moet halfwords (type 'H') bevatten" msgstr "Array moet halfwords (type 'H') bevatten"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Array waardes moet enkele bytes zijn." msgstr "Array waardes moet enkele bytes zijn."
@ -504,8 +504,8 @@ msgstr "Buffer lengte moet een veelvoud van 512 zijn"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "Buffer moet een veelvoud van 512 bytes zijn" msgstr "Buffer moet een veelvoud van 512 bytes zijn"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Buffer moet op zijn minst lengte 1 zijn" msgstr "Buffer moet op zijn minst lengte 1 zijn"
@ -528,7 +528,7 @@ msgstr "Bus pin %d al in gebruik"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Byte buffer moet 16 bytes zijn." msgstr "Byte buffer moet 16 bytes zijn."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Bytes moeten tussen 0 en 255 liggen." msgstr "Bytes moeten tussen 0 en 255 liggen."
@ -1096,6 +1096,10 @@ msgstr "Ongeldige DAC pin opgegeven"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Ongeldige PWM frequentie" msgstr "Ongeldige PWM frequentie"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Ongeldig argument" msgstr "Ongeldig argument"
@ -1312,7 +1316,7 @@ msgstr "Geen DAC op de chip"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Geen DMA kanaal gevonden" msgstr "Geen DMA kanaal gevonden"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1528,6 +1532,7 @@ msgstr "Toegang geweigerd"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Pin heeft geen ADC mogelijkheden" msgstr "Pin heeft geen ADC mogelijkheden"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "Pin kan alleen voor invoer gebruikt worden" msgstr "Pin kan alleen voor invoer gebruikt worden"
@ -1587,10 +1592,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Prefix buffer moet op de heap zijn" msgstr "Prefix buffer moet op de heap zijn"
#: 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Druk een willekeurige toets om de REPL te starten. Gebruik CTRL+D om te "
"herstarten."
#: 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."
@ -1725,7 +1732,7 @@ msgstr "Context aan de serverkant kan geen hostnaam hebben"
msgid "Size not supported" msgid "Size not supported"
msgstr "Afmeting niet ondersteund" msgstr "Afmeting niet ondersteund"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice en waarde hebben verschillende lengtes." msgstr "Slice en waarde hebben verschillende lengtes."
@ -1950,6 +1957,10 @@ msgstr "Niet in staat kleurenpalet data te lezen"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Niet in staat om naar nvm te schrijven." msgstr "Niet in staat om naar nvm te schrijven."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Onverwacht mrfx uuid type" msgstr "Onverwacht mrfx uuid type"
@ -2081,6 +2092,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "WiFi wachtwoord moet tussen 8 en 63 karakters bevatten" msgstr "WiFi wachtwoord moet tussen 8 en 63 karakters bevatten"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "Schrijven niet ondersteund op Characteristic" msgstr "Schrijven niet ondersteund op Characteristic"
@ -2163,7 +2178,8 @@ msgstr "argumenten moeten ndarrays zijn"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "array/bytes vereist aan de rechterkant" msgstr "array/bytes vereist aan de rechterkant"
@ -3269,7 +3285,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "alleen sample_rate=16000 wordt ondersteund" msgstr "alleen sample_rate=16000 wordt ondersteund"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "alleen segmenten met step=1 (ook wel None) worden ondersteund" msgstr "alleen segmenten met step=1 (ook wel None) worden ondersteund"
@ -3863,6 +3879,11 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben" msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Druk een willekeurige toets om de REPL te starten. Gebruik CTRL+D om te "
#~ "herstarten."
#~ msgid "Only IPv4 SOCK_STREAM sockets supported" #~ msgid "Only IPv4 SOCK_STREAM sockets supported"
#~ msgstr "Alleen IPv4 SOCK_STREAM sockets worden ondersteund" #~ msgstr "Alleen IPv4 SOCK_STREAM sockets worden ondersteund"

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-12-02 20:29+0000\n" "PO-Revision-Date: 2020-12-02 20:29+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"
@ -394,7 +394,7 @@ msgstr "Wysyłanie jest już w toku"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Tablica musi zawierać pół-słowa (typ 'H')" msgstr "Tablica musi zawierać pół-słowa (typ 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Wartości powinny być bajtami." msgstr "Wartości powinny być bajtami."
@ -506,8 +506,8 @@ msgstr "Długość bufora musi być wielokrotnością 512"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "Bufor musi być wielokrotnością 512 bajtów" msgstr "Bufor musi być wielokrotnością 512 bajtów"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Bufor musi mieć długość 1 lub więcej" msgstr "Bufor musi mieć długość 1 lub więcej"
@ -530,7 +530,7 @@ msgstr "Nóżka magistrali %d jest w użyciu"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Bufor musi mieć 16 bajtów." msgstr "Bufor musi mieć 16 bajtów."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Bytes musi być między 0 a 255." msgstr "Bytes musi być między 0 a 255."
@ -1094,6 +1094,10 @@ msgstr ""
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Zła częstotliwość PWM" msgstr "Zła częstotliwość PWM"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Zły argument" msgstr "Zły argument"
@ -1311,7 +1315,7 @@ msgstr "Brak DAC"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Nie znaleziono kanału DMA" msgstr "Nie znaleziono kanału DMA"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1518,6 +1522,7 @@ msgstr "Odmowa dostępu"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Nóżka nie obsługuje ADC" msgstr "Nóżka nie obsługuje ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "" msgstr ""
@ -1570,8 +1575,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "" msgstr ""
#: 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.\n"
msgstr "Dowolny klawisz aby uruchomić konsolę. CTRL-D aby przeładować." msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
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."
@ -1706,7 +1715,7 @@ msgstr ""
msgid "Size not supported" msgid "Size not supported"
msgstr "" msgstr ""
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Fragment i wartość są różnych długości." msgstr "Fragment i wartość są różnych długości."
@ -1921,6 +1930,10 @@ msgstr "Nie można odczytać danych palety"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Błąd zapisu do NVM." msgstr "Błąd zapisu do NVM."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Nieoczekiwany typ nrfx uuid" msgstr "Nieoczekiwany typ nrfx uuid"
@ -2047,6 +2060,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "" msgstr ""
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "" msgstr ""
@ -2129,7 +2146,8 @@ msgstr ""
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "tablica/bytes wymagane po prawej stronie" msgstr "tablica/bytes wymagane po prawej stronie"
@ -3228,7 +3246,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "" msgstr ""
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "tylko fragmenty ze step=1 (lub None) są wspierane" msgstr "tylko fragmenty ze step=1 (lub None) są wspierane"
@ -3821,6 +3839,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr "Dowolny klawisz aby uruchomić konsolę. CTRL-D aby przeładować."
#~ msgid "number of arguments must be 2, or 3" #~ msgid "number of arguments must be 2, or 3"
#~ msgstr "liczba argumentów musi wynosić 2 lub 3" #~ msgstr "liczba argumentów musi wynosić 2 lub 3"

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-30 18:06+0000\n" "PO-Revision-Date: 2020-12-16 17:00+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"
@ -396,7 +396,7 @@ msgstr "Outro envio já está ativo"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Array deve conter meias palavras (tipo 'H')" msgstr "Array deve conter meias palavras (tipo 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Os valores das matrizes devem ser bytes simples." msgstr "Os valores das matrizes devem ser bytes simples."
@ -512,8 +512,8 @@ msgstr "O comprimento do Buffer deve ser um múltiplo de 512"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "O buffer deve ser um múltiplo de 512 bytes" msgstr "O buffer deve ser um múltiplo de 512 bytes"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "O comprimento do buffer deve ter pelo menos 1" msgstr "O comprimento do buffer deve ter pelo menos 1"
@ -536,7 +536,7 @@ msgstr "O pino bus %d já está em uso"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "O buffer deve ter 16 bytes." msgstr "O buffer deve ter 16 bytes."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Os bytes devem estar entre 0 e 255." msgstr "Os bytes devem estar entre 0 e 255."
@ -868,7 +868,7 @@ msgstr "Um endereço esperado"
#: shared-bindings/alarm/__init__.c #: shared-bindings/alarm/__init__.c
msgid "Expected an alarm" msgid "Expected an alarm"
msgstr "" msgstr "Um alarme era esperado"
#: shared-module/_pixelbuf/PixelBuf.c #: shared-module/_pixelbuf/PixelBuf.c
#, c-format #, c-format
@ -1019,7 +1019,7 @@ msgstr "O I2SOut não está disponível"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep" msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "" msgstr "IOs 0, 2 e 4 não suportam pullup interno em repouso (sleep)"
#: shared-bindings/aesio/aes.c #: shared-bindings/aesio/aes.c
#, c-format #, c-format
@ -1105,6 +1105,10 @@ msgstr "O pino DAC informado é inválido"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Frequência PWM inválida" msgstr "Frequência PWM inválida"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr "Pino inválido"
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Argumento inválido" msgstr "Argumento inválido"
@ -1321,10 +1325,10 @@ msgstr "Nenhum DAC no chip"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Nenhum canal DMA encontrado" msgstr "Nenhum canal DMA encontrado"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr "Nenhum dispositivo I2C no endereço: %x"
#: 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
@ -1486,7 +1490,7 @@ msgstr ""
#: ports/esp32s2/common-hal/alarm/__init__.c #: ports/esp32s2/common-hal/alarm/__init__.c
msgid "Only one alarm.time alarm can be set." msgid "Only one alarm.time alarm can be set."
msgstr "" msgstr "Apenas um alarme alarm.time pode ser definido."
#: shared-module/displayio/ColorConverter.c #: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time" msgid "Only one color can be transparent at a time"
@ -1537,6 +1541,7 @@ msgstr "Permissão negada"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "O pino não tem recursos de ADC" msgstr "O pino não tem recursos de ADC"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "Apenas o pino de entrada" msgstr "Apenas o pino de entrada"
@ -1551,7 +1556,7 @@ msgstr "Número do PIN já está reservado através da EXTI"
#: ports/esp32s2/common-hal/alarm/__init__.c #: ports/esp32s2/common-hal/alarm/__init__.c
msgid "PinAlarm not yet implemented" msgid "PinAlarm not yet implemented"
msgstr "" msgstr "PinAlarm ainda não foi implementado"
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
@ -1598,9 +1603,15 @@ msgstr ""
"(heap)" "(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.\n"
msgstr "" msgstr ""
"Pressione qualquer tecla para entrar no REPL. Use CTRL-D para recarregar." "Pressione qualquer tecla para entrar no REPL. Use CTRL-D para recarregar.\n"
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr ""
"Simular o deep sleep até o alarme, até qualquer chave ou até a escrita do "
"arquivo.\n"
#: 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."
@ -1735,7 +1746,7 @@ msgstr "O contexto do lado do servidor não pode ter nome de host"
msgid "Size not supported" msgid "Size not supported"
msgstr "O tamanho não é suportado" msgstr "O tamanho não é suportado"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Fatie e avalie os diferentes comprimentos." msgstr "Fatie e avalie os diferentes comprimentos."
@ -1772,7 +1783,7 @@ msgstr "Forneça pelo menos um pino UART"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "Supply one of monotonic_time or epoch_time" msgid "Supply one of monotonic_time or epoch_time"
msgstr "" msgstr "Forneça um de monotonic_time ou de epoch_time"
#: shared-bindings/gnss/GNSS.c #: shared-bindings/gnss/GNSS.c
msgid "System entry must be gnss.SatelliteSystem" msgid "System entry must be gnss.SatelliteSystem"
@ -1848,7 +1859,7 @@ msgstr "A largura do bloco deve dividir exatamente com a largura do bitmap"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "Time is in the past." msgid "Time is in the past."
msgstr "" msgstr "O tempo está no passado."
#: ports/nrf/common-hal/_bleio/Adapter.c #: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format #, c-format
@ -1964,6 +1975,10 @@ msgstr "Não foi possível ler os dados da paleta de cores"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Não é possível gravar no nvm." msgstr "Não é possível gravar no nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr "Não foi possível escrever no sleep_memory."
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Tipo uuid nrfx inesperado" msgstr "Tipo uuid nrfx inesperado"
@ -2096,6 +2111,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "A senha do Wi-Fi deve ter entre 8 e 63 caracteres" msgstr "A senha do Wi-Fi deve ter entre 8 e 63 caracteres"
#: main.c
msgid "Woken up by alarm.\n"
msgstr "Foi despertado através do alarme.\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"
msgstr "A escrita não é compatível na Característica" msgstr "A escrita não é compatível na Característica"
@ -2178,7 +2197,8 @@ msgstr "os argumentos devem ser ndarrays"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "a matriz e comprimento do índice devem ser iguais" msgstr "a matriz e comprimento do índice devem ser iguais"
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "matriz/bytes são necessários no lado direito" msgstr "matriz/bytes são necessários no lado direito"
@ -2592,7 +2612,7 @@ msgstr "end_x deve ser um int"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "epoch_time not supported on this board" msgid "epoch_time not supported on this board"
msgstr "" msgstr "O epoch_time não é compatível com esta placa"
#: ports/nrf/common-hal/busio/UART.c #: ports/nrf/common-hal/busio/UART.c
#, c-format #, c-format
@ -2965,7 +2985,7 @@ msgstr "sintaxe inválida para o número"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io" msgid "io must be rtc io"
msgstr "" msgstr "O io deve ser rtc io"
#: py/objtype.c #: py/objtype.c
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
@ -3290,7 +3310,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "apenas sample_rate = 16000 é compatível" msgstr "apenas sample_rate = 16000 é compatível"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "" msgstr ""
"apenas fatias com a etapa=1 (também conhecida como Nenhuma) são compatíveis" "apenas fatias com a etapa=1 (também conhecida como Nenhuma) são compatíveis"
@ -3668,7 +3688,7 @@ msgstr "o trapz está definido para 1D arrays de igual tamanho"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1" msgid "trigger level must be 0 or 1"
msgstr "" msgstr "nível do gatilho deve ser 0 ou 1"
#: extmod/ulab/code/linalg/linalg.c #: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range" msgid "tuple index out of range"
@ -3814,7 +3834,7 @@ msgstr "os vetores devem ter os mesmos comprimentos"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict" msgid "wakeup conflict"
msgstr "" msgstr "conflito de wakeup"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c #: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized" msgid "watchdog not initialized"
@ -3888,6 +3908,10 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)" msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Pressione qualquer tecla para entrar no REPL. Use CTRL-D para recarregar."
#~ msgid "Only IPv4 SOCK_STREAM sockets supported" #~ msgid "Only IPv4 SOCK_STREAM sockets supported"
#~ msgstr "São suportados apenas soquetes IPv4 SOCK_STREAM" #~ msgstr "São suportados apenas soquetes IPv4 SOCK_STREAM"

View File

@ -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-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-30 18:06+0000\n" "PO-Revision-Date: 2020-12-07 20:26+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"
@ -392,7 +392,7 @@ msgstr "En annan send är redan aktiv"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Matrisen måste innehålla halfwords (typ \"H\")" msgstr "Matrisen måste innehålla halfwords (typ \"H\")"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Matrisvärden ska bestå av enstaka bytes." msgstr "Matrisvärden ska bestå av enstaka bytes."
@ -504,8 +504,8 @@ msgstr "Buffertlängd måste vara en multipel av 512"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "Bufferten måste vara en multipel av 512 byte" msgstr "Bufferten måste vara en multipel av 512 byte"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Bufferten måste ha minst längd 1" msgstr "Bufferten måste ha minst längd 1"
@ -528,7 +528,7 @@ msgstr "Busspinne %d används redan"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Byte-buffert måste vara 16 byte." msgstr "Byte-buffert måste vara 16 byte."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Bytes måste vara mellan 0 och 255." msgstr "Bytes måste vara mellan 0 och 255."
@ -859,7 +859,7 @@ msgstr "Förväntade en adress"
#: shared-bindings/alarm/__init__.c #: shared-bindings/alarm/__init__.c
msgid "Expected an alarm" msgid "Expected an alarm"
msgstr "" msgstr "Förväntade ett larm"
#: shared-module/_pixelbuf/PixelBuf.c #: shared-module/_pixelbuf/PixelBuf.c
#, c-format #, c-format
@ -1008,7 +1008,7 @@ msgstr "I2SOut är inte tillgängligt"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep" msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr "" msgstr "IO 0, 2 & 4 stöder inte intern pullup för sovläge"
#: shared-bindings/aesio/aes.c #: shared-bindings/aesio/aes.c
#, c-format #, c-format
@ -1094,6 +1094,10 @@ msgstr "Ogiltig DAC-pinne angiven"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Ogiltig PWM-frekvens" msgstr "Ogiltig PWM-frekvens"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Ogiltigt argument" msgstr "Ogiltigt argument"
@ -1311,10 +1315,10 @@ msgstr "Ingen DAC på chipet"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Ingen DMA-kanal hittades" msgstr "Ingen DMA-kanal hittades"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr "Ingen I2C-enhet på adress: %x"
#: 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
@ -1476,7 +1480,7 @@ msgstr ""
#: ports/esp32s2/common-hal/alarm/__init__.c #: ports/esp32s2/common-hal/alarm/__init__.c
msgid "Only one alarm.time alarm can be set." msgid "Only one alarm.time alarm can be set."
msgstr "" msgstr "Endast ett alarm.time kan ställas in."
#: shared-module/displayio/ColorConverter.c #: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time" msgid "Only one color can be transparent at a time"
@ -1525,6 +1529,7 @@ msgstr "Åtkomst nekad"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Pinnen har inte ADC-funktionalitet" msgstr "Pinnen har inte ADC-funktionalitet"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "Pinnen är enbart ingång" msgstr "Pinnen är enbart ingång"
@ -1539,7 +1544,7 @@ msgstr "PInn-nummer redan reserverat av EXTI"
#: ports/esp32s2/common-hal/alarm/__init__.c #: ports/esp32s2/common-hal/alarm/__init__.c
msgid "PinAlarm not yet implemented" msgid "PinAlarm not yet implemented"
msgstr "" msgstr "PinAlarm är inte implementerat ännu"
#: shared-bindings/rgbmatrix/RGBMatrix.c #: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format #, c-format
@ -1584,9 +1589,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Prefixbufferten måste finnas på heap" msgstr "Prefixbufferten måste finnas på 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.\n"
msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
msgstr "" msgstr ""
"Tryck på valfri knapp för att gå in i REPL. Använd CTRL-D för att ladda om."
#: 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."
@ -1721,7 +1729,7 @@ msgstr "Serversidans kontext kan inte ha värdnamn"
msgid "Size not supported" msgid "Size not supported"
msgstr "Storleken stöds inte" msgstr "Storleken stöds inte"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Slice och värde har olika längd." msgstr "Slice och värde har olika längd."
@ -1758,7 +1766,7 @@ msgstr "Ange minst en UART-pinne"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "Supply one of monotonic_time or epoch_time" msgid "Supply one of monotonic_time or epoch_time"
msgstr "" msgstr "Ange en av monotonic_time eller epoch_time"
#: shared-bindings/gnss/GNSS.c #: shared-bindings/gnss/GNSS.c
msgid "System entry must be gnss.SatelliteSystem" msgid "System entry must be gnss.SatelliteSystem"
@ -1833,7 +1841,7 @@ msgstr "Tile-bredd måste vara jämnt delbar med bredd på bitmap"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "Time is in the past." msgid "Time is in the past."
msgstr "" msgstr "Tid har passerats."
#: ports/nrf/common-hal/_bleio/Adapter.c #: ports/nrf/common-hal/_bleio/Adapter.c
#, c-format #, c-format
@ -1946,6 +1954,10 @@ msgstr "Det går inte att läsa färgpalettdata"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Det gick inte att skriva till nvm." msgstr "Det gick inte att skriva till nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Oväntad nrfx uuid-typ" msgstr "Oväntad nrfx uuid-typ"
@ -2074,6 +2086,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "WiFi-lösenord måste vara mellan 8 och 63 tecken" msgstr "WiFi-lösenord måste vara mellan 8 och 63 tecken"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "Skrivning stöds inte på karaktäristik" msgstr "Skrivning stöds inte på karaktäristik"
@ -2156,7 +2172,8 @@ msgstr "argumenten måste vara ndarray"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "array och indexlängd måste vara lika" msgstr "array och indexlängd måste vara lika"
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "array/bytes krävs på höger sida" msgstr "array/bytes krävs på höger sida"
@ -2566,7 +2583,7 @@ msgstr "color ska vara en int"
#: shared-bindings/alarm/time/TimeAlarm.c #: shared-bindings/alarm/time/TimeAlarm.c
msgid "epoch_time not supported on this board" msgid "epoch_time not supported on this board"
msgstr "" msgstr "epoch_time stöds inte av detta kort"
#: ports/nrf/common-hal/busio/UART.c #: ports/nrf/common-hal/busio/UART.c
#, c-format #, c-format
@ -2939,7 +2956,7 @@ msgstr "ogiltig syntax för tal"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "io must be rtc io" msgid "io must be rtc io"
msgstr "" msgstr "io måste vara rtc io"
#: py/objtype.c #: py/objtype.c
msgid "issubclass() arg 1 must be a class" msgid "issubclass() arg 1 must be a class"
@ -3262,7 +3279,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "enbart sample_rate=16000 stöds" msgstr "enbart sample_rate=16000 stöds"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "endast segment med steg=1 (aka Ingen) stöds" msgstr "endast segment med steg=1 (aka Ingen) stöds"
@ -3636,7 +3653,7 @@ msgstr "trapz är definierad för 1D-matriser med samma längd"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "trigger level must be 0 or 1" msgid "trigger level must be 0 or 1"
msgstr "" msgstr "triggernivå måste vara 0 eller 1"
#: extmod/ulab/code/linalg/linalg.c #: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range" msgid "tuple index out of range"
@ -3782,7 +3799,7 @@ msgstr "vektorer måste ha samma längd"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c #: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "wakeup conflict" msgid "wakeup conflict"
msgstr "" msgstr "wakeup-konflikt"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c #: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "watchdog not initialized" msgid "watchdog not initialized"
@ -3856,6 +3873,11 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)" msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Tryck på valfri knapp för att gå in i REPL. Använd CTRL-D för att ladda "
#~ "om."
#~ msgid "Only IPv4 SOCK_STREAM sockets supported" #~ msgid "Only IPv4 SOCK_STREAM sockets supported"
#~ msgstr "Endast IPv4 SOCK_STREAM sockets stöds" #~ msgstr "Endast IPv4 SOCK_STREAM sockets stöds"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: circuitpython-cn\n" "Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-27 23:57-0500\n" "POT-Creation-Date: 2020-12-14 12:59-0500\n"
"PO-Revision-Date: 2020-11-19 01:28+0000\n" "PO-Revision-Date: 2020-11-19 01:28+0000\n"
"Last-Translator: hexthat <hexthat@gmail.com>\n" "Last-Translator: hexthat <hexthat@gmail.com>\n"
"Language-Team: Chinese Hanyu Pinyin\n" "Language-Team: Chinese Hanyu Pinyin\n"
@ -394,7 +394,7 @@ msgstr "Lìng yīgè fāsòng yǐjīng jīhuó"
msgid "Array must contain halfwords (type 'H')" msgid "Array must contain halfwords (type 'H')"
msgstr "Shùzǔ bìxū bāohán bàn zìshù (type 'H')" msgstr "Shùzǔ bìxū bāohán bàn zìshù (type 'H')"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes." msgid "Array values should be single bytes."
msgstr "Shùzǔ zhí yīnggāi shì dāngè zì jié." msgstr "Shùzǔ zhí yīnggāi shì dāngè zì jié."
@ -506,8 +506,8 @@ msgstr "Huǎn chōng qū cháng dù bì xū wéi 512 de bèi shù"
msgid "Buffer must be a multiple of 512 bytes" msgid "Buffer must be a multiple of 512 bytes"
msgstr "Huǎn chōng qū bì xū shì 512 zì jié de bèi shù" msgstr "Huǎn chōng qū bì xū shì 512 zì jié de bèi shù"
#: shared-bindings/bitbangio/I2C.c shared-bindings/busdevice/I2CDevice.c #: shared-bindings/adafruit_bus_device/I2CDevice.c
#: shared-bindings/busio/I2C.c #: shared-bindings/bitbangio/I2C.c shared-bindings/busio/I2C.c
msgid "Buffer must be at least length 1" msgid "Buffer must be at least length 1"
msgstr "Huǎnchōng qū bìxū zhìshǎo chángdù 1" msgstr "Huǎnchōng qū bìxū zhìshǎo chángdù 1"
@ -530,7 +530,7 @@ msgstr "Zǒngxiàn yǐn jiǎo %d yǐ zài shǐyòng zhōng"
msgid "Byte buffer must be 16 bytes." msgid "Byte buffer must be 16 bytes."
msgstr "Zì jié huǎnchōng qū bìxū shì 16 zì jié." msgstr "Zì jié huǎnchōng qū bìxū shì 16 zì jié."
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Bytes must be between 0 and 255." msgid "Bytes must be between 0 and 255."
msgstr "Zì jié bìxū jiè yú 0 dào 255 zhī jiān." msgstr "Zì jié bìxū jiè yú 0 dào 255 zhī jiān."
@ -1092,6 +1092,10 @@ msgstr "Tí gōng liǎo wúxiào de DAC yǐn jiǎo"
msgid "Invalid PWM frequency" msgid "Invalid PWM frequency"
msgstr "Wúxiào de PWM pínlǜ" msgstr "Wúxiào de PWM pínlǜ"
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr ""
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c #: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument" msgid "Invalid argument"
msgstr "Wúxiào de cānshù" msgstr "Wúxiào de cānshù"
@ -1308,7 +1312,7 @@ msgstr "Méiyǒu DAC zài xīnpiàn shàng de"
msgid "No DMA channel found" msgid "No DMA channel found"
msgstr "Wèi zhǎodào DMA píndào" msgstr "Wèi zhǎodào DMA píndào"
#: shared-module/busdevice/I2CDevice.c #: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format #, c-format
msgid "No I2C device at address: %x" msgid "No I2C device at address: %x"
msgstr "" msgstr ""
@ -1521,6 +1525,7 @@ msgstr "Quánxiàn bèi jùjué"
msgid "Pin does not have ADC capabilities" msgid "Pin does not have ADC capabilities"
msgstr "Pin méiyǒu ADC nénglì" msgstr "Pin méiyǒu ADC nénglì"
#: shared-bindings/adafruit_bus_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c #: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only" msgid "Pin is input only"
msgstr "Yǐn jiǎo jǐn shūrù" msgstr "Yǐn jiǎo jǐn shūrù"
@ -1577,8 +1582,12 @@ msgid "Prefix buffer must be on the heap"
msgstr "Qiánzhuì huǎnchōng qū bìxū zài duī shàng" msgstr "Qiánzhuì huǎnchōng qū bìxū zài duī shàng"
#: 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.\n"
msgstr "Àn xià rènhé jiàn jìnrù REPL. Shǐyòng CTRL-D chóngxīn jiāzài." msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, any key or file write.\n"
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."
@ -1713,7 +1722,7 @@ msgstr "Fúwùqì duān shàngxiàwén bùnéng jùyǒu zhǔjī míng"
msgid "Size not supported" msgid "Size not supported"
msgstr "bù zhī chí dà xiǎo" msgstr "bù zhī chí dà xiǎo"
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "Slice and value different lengths." msgid "Slice and value different lengths."
msgstr "Qiēpiàn hé zhí bùtóng chángdù." msgstr "Qiēpiàn hé zhí bùtóng chángdù."
@ -1937,6 +1946,10 @@ msgstr "Wúfǎ dòu qǔ sè tiáo shùjù"
msgid "Unable to write to nvm." msgid "Unable to write to nvm."
msgstr "Wúfǎ xiě rù nvm." msgstr "Wúfǎ xiě rù nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c #: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type" msgid "Unexpected nrfx uuid type"
msgstr "Yìwài de nrfx uuid lèixíng" msgstr "Yìwài de nrfx uuid lèixíng"
@ -2066,6 +2079,10 @@ msgstr ""
msgid "WiFi password must be between 8 and 63 characters" msgid "WiFi password must be between 8 and 63 characters"
msgstr "WiFi mìmǎ bìxū jiè yú 8 dào 63 gè zìfú zhī jiān" msgstr "WiFi mìmǎ bìxū jiè yú 8 dào 63 gè zìfú zhī jiān"
#: main.c
msgid "Woken up by alarm.\n"
msgstr ""
#: 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"
msgstr "Tèzhēng bù zhīchí xiě rù" msgstr "Tèzhēng bù zhīchí xiě rù"
@ -2148,7 +2165,8 @@ msgstr "cānshù bìxū shì ndarrays"
msgid "array and index length must be equal" msgid "array and index length must be equal"
msgstr "" msgstr ""
#: py/objarray.c shared-bindings/nvm/ByteArray.c #: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side" msgid "array/bytes required on right side"
msgstr "yòu cè xūyào shùzǔ/zì jié" msgstr "yòu cè xūyào shùzǔ/zì jié"
@ -3252,7 +3270,7 @@ msgid "only sample_rate=16000 is supported"
msgstr "Jǐn zhīchí cǎiyàng lǜ = 16000" msgstr "Jǐn zhīchí cǎiyàng lǜ = 16000"
#: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c #: py/objarray.c py/objstr.c py/objstrunicode.c py/objtuple.c
#: shared-bindings/nvm/ByteArray.c #: shared-bindings/alarm/SleepMemory.c shared-bindings/nvm/ByteArray.c
msgid "only slices with step=1 (aka None) are supported" msgid "only slices with step=1 (aka None) are supported"
msgstr "jǐn zhīchí bù zhǎng = 1(jí wú) de qiēpiàn" msgstr "jǐn zhīchí bù zhǎng = 1(jí wú) de qiēpiàn"
@ -3845,6 +3863,9 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)" msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr "Àn xià rènhé jiàn jìnrù REPL. Shǐyòng CTRL-D chóngxīn jiāzài."
#~ msgid "Only IPv4 SOCK_STREAM sockets supported" #~ msgid "Only IPv4 SOCK_STREAM sockets supported"
#~ msgstr "Jǐn zhīchí IPv4 SOCK_STREAM tào jiē zì" #~ msgstr "Jǐn zhīchí IPv4 SOCK_STREAM tào jiē zì"

12
main.c
View File

@ -112,9 +112,6 @@ STATIC void start_mp(supervisor_allocation* heap) {
reset_status_led(); reset_status_led();
autoreload_stop(); autoreload_stop();
supervisor_workflow_reset(); supervisor_workflow_reset();
#if CIRCUITPY_ALARM
alarm_reset();
#endif
// Stack limit should be less than real stack size, so we have a chance // Stack limit should be less than real stack size, so we have a chance
// to recover from limit hit. (Limit is measured in bytes.) // to recover from limit hit. (Limit is measured in bytes.)
@ -158,6 +155,13 @@ STATIC void start_mp(supervisor_allocation* heap) {
mp_obj_list_init(mp_sys_argv, 0); mp_obj_list_init(mp_sys_argv, 0);
#if CIRCUITPY_ALARM
// Record which alarm woke us up, if any. An object may be created so the heap must be functional.
alarm_save_wakeup_alarm();
// Reset alarm module only after we retrieved the wakeup alarm.
alarm_reset();
#endif
#if CIRCUITPY_NETWORK #if CIRCUITPY_NETWORK
network_module_init(); network_module_init();
#endif #endif
@ -285,6 +289,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
filesystem_flush(); filesystem_flush();
supervisor_allocation* heap = allocate_remaining_memory(); supervisor_allocation* heap = allocate_remaining_memory();
start_mp(heap); start_mp(heap);
found_main = maybe_run_list(supported_filenames, &result); found_main = maybe_run_list(supported_filenames, &result);
#if CIRCUITPY_FULL_BUILD #if CIRCUITPY_FULL_BUILD
if (!found_main){ if (!found_main){
@ -354,7 +359,6 @@ STATIC bool run_code_py(safe_mode_t safe_mode) {
serial_write_compressed(translate("Woken up by alarm.\n")); serial_write_compressed(translate("Woken up by alarm.\n"));
board_init(); board_init();
supervisor_set_run_reason(RUN_REASON_STARTUP); supervisor_set_run_reason(RUN_REASON_STARTUP);
// TODO: Reset any volatile memory the user may have access to.
return true; return true;
} }
#endif #endif

View File

@ -94,21 +94,21 @@ endif
ifeq ($(CHIP_FAMILY), samd51) ifeq ($(CHIP_FAMILY), samd51)
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# TinyUSB defines # TinyUSB defines
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD51 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024 CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD51 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
endif endif
ifeq ($(CHIP_FAMILY), same51) ifeq ($(CHIP_FAMILY), same51)
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# TinyUSB defines # TinyUSB defines
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAME5X -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024 CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAME5X -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
endif endif
ifeq ($(CHIP_FAMILY), same54) ifeq ($(CHIP_FAMILY), same54)
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# TinyUSB defines # TinyUSB defines
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAME5X -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024 CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAME5X -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
endif endif
@ -116,6 +116,9 @@ endif
# option to override default optimization level, set in boards/$(BOARD)/mpconfigboard.mk # option to override default optimization level, set in boards/$(BOARD)/mpconfigboard.mk
CFLAGS += $(OPTIMIZATION_FLAGS) CFLAGS += $(OPTIMIZATION_FLAGS)
# Add -ftree-vrp optimization and checking to all builds. It's not enabled for -Os by default.
CFLAGS += -ftree-vrp
$(echo PERIPHERALS_CHIP_FAMILY=$(PERIPHERALS_CHIP_FAMILY)) $(echo PERIPHERALS_CHIP_FAMILY=$(PERIPHERALS_CHIP_FAMILY))
#Debugging/Optimization #Debugging/Optimization
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)

View File

@ -9,3 +9,5 @@ CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1 INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0 CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0

View File

@ -16,3 +16,5 @@ CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_VECTORIO = 0 CIRCUITPY_VECTORIO = 0
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar
SUPEROPT_GC = 0

View File

@ -0,0 +1,37 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,33 @@
#define MICROPY_HW_BOARD_NAME "StackRduino M0 PRO"
#define MICROPY_HW_MCU_NAME "samd21g18"
#define MICROPY_HW_LED_STATUS (&pin_PA17)
#define MICROPY_HW_NEOPIXEL (&pin_PA06)
#define SPI_FLASH_BAUDRATE (8000000)
#define SPI_FLASH_MOSI_PIN &pin_PB22
#define SPI_FLASH_MISO_PIN &pin_PB03
#define SPI_FLASH_SCK_PIN &pin_PB23
#define SPI_FLASH_CS_PIN &pin_PA27
// These are pins not to reset.
#define MICROPY_PORT_A (PORT_PA06)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define BOARD_HAS_CRYSTAL 1
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
#define DEFAULT_SPI_BUS_MISO (&pin_PA12)
#define DEFAULT_UART_BUS_RX (&pin_PA11)
#define DEFAULT_UART_BUS_TX (&pin_PA10)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -0,0 +1,58 @@
USB_VID = 0x1209
USB_PID = 0xE3E3
USB_PRODUCT = "StackRduino M0 PRO"
USB_MANUFACTURER = "StackRduino"
CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 1
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
LONGINT_IMPL = MPZ
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0
CFLAGS_INLINE_LIMIT = 55
SUPEROPT_GC = 0
CFLAGS_BOARD = --param max-inline-insns-auto=15
ifeq ($(TRANSLATION), ja)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
endif
ifeq ($(TRANSLATION), zh_Latn_pinyin)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
endif
ifeq ($(TRANSLATION), de_DE)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif
ifeq ($(TRANSLATION), pl)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif
ifeq ($(TRANSLATION), fr)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif
ifeq ($(TRANSLATION), pt_BR)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif
ifeq ($(TRANSLATION), es)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif

View File

@ -0,0 +1,40 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB02) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA08) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA21) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA28) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA28) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_CHRG_EN), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -9,8 +9,8 @@ CHIP_VARIANT = SAMD21G18A
CHIP_FAMILY = samd21 CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1 SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 1 EXTERNAL_FLASH_DEVICE_COUNT = 2
EXTERNAL_FLASH_DEVICES = "GD25Q16C" EXTERNAL_FLASH_DEVICES = "GD25Q16C, GD25Q64C"
LONGINT_IMPL = MPZ LONGINT_IMPL = MPZ
CIRCUITPY_AUDIOIO = 1 CIRCUITPY_AUDIOIO = 1

View File

@ -6,5 +6,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_GATE_OUT), MP_ROM_PTR(&pin_PA11) }, { MP_ROM_QSTR(MP_QSTR_GATE_OUT), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_GATE_IN), MP_ROM_PTR(&pin_PA14) }, { MP_ROM_QSTR(MP_QSTR_GATE_IN), MP_ROM_PTR(&pin_PA14) },
{ MP_ROM_QSTR(MP_QSTR_PITCH_IN), MP_ROM_PTR(&pin_PB08) }, { MP_ROM_QSTR(MP_QSTR_PITCH_IN), MP_ROM_PTR(&pin_PB08) },
/* Board revisions starting from v5 have PB10 tied to ground. */
{ MP_ROM_QSTR(MP_QSTR_V5), MP_ROM_PTR(&pin_PB10) },
}; };
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -197,7 +197,7 @@ void common_hal_audioio_audioout_construct(audioio_audioout_obj_t* self,
#endif #endif
#ifdef SAM_D5X_E5X #ifdef SAM_D5X_E5X
DAC->EVCTRL.reg |= DAC_EVCTRL_STARTEI0; DAC->EVCTRL.reg |= DAC_EVCTRL_STARTEI0;
DAC->DACCTRL[0].reg = DAC_DACCTRL_CCTRL_CC100K | DAC->DACCTRL[0].reg = DAC_DACCTRL_CCTRL_CC12M |
DAC_DACCTRL_ENABLE | DAC_DACCTRL_ENABLE |
DAC_DACCTRL_LEFTADJ; DAC_DACCTRL_LEFTADJ;
DAC->CTRLB.reg = DAC_CTRLB_REFSEL_VREFPU; DAC->CTRLB.reg = DAC_CTRLB_REFSEL_VREFPU;
@ -206,7 +206,7 @@ void common_hal_audioio_audioout_construct(audioio_audioout_obj_t* self,
#ifdef SAM_D5X_E5X #ifdef SAM_D5X_E5X
if (channel1_enabled) { if (channel1_enabled) {
DAC->EVCTRL.reg |= DAC_EVCTRL_STARTEI1; DAC->EVCTRL.reg |= DAC_EVCTRL_STARTEI1;
DAC->DACCTRL[1].reg = DAC_DACCTRL_CCTRL_CC100K | DAC->DACCTRL[1].reg = DAC_DACCTRL_CCTRL_CC12M |
DAC_DACCTRL_ENABLE | DAC_DACCTRL_ENABLE |
DAC_DACCTRL_LEFTADJ; DAC_DACCTRL_LEFTADJ;
DAC->CTRLB.reg = DAC_CTRLB_REFSEL_VREFPU; DAC->CTRLB.reg = DAC_CTRLB_REFSEL_VREFPU;

View File

@ -82,7 +82,8 @@ void frequencyin_emergency_cancel_capture(uint8_t index) {
#ifdef SAM_D5X_E5X #ifdef SAM_D5X_E5X
NVIC_EnableIRQ(EIC_0_IRQn + self->channel); NVIC_EnableIRQ(EIC_0_IRQn + self->channel);
#endif #endif
mp_raise_RuntimeError(translate("Frequency captured is above capability. Capture Paused.")); // Frequency captured is above capability. Capture paused.
// We can't raise an error here; we're in an interrupt handler.
} }
void frequencyin_interrupt_handler(uint8_t index) { void frequencyin_interrupt_handler(uint8_t index) {

View File

@ -122,7 +122,7 @@ CFLAGS += \
-fdata-sections \ -fdata-sections \
-Wall \ -Wall \
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk # option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk
CFLAGS += $(OPTIMIZATION_FLAGS) CFLAGS += $(OPTIMIZATION_FLAGS)

View File

@ -106,6 +106,8 @@ INC += -isystem esp-idf/components/heap/include
INC += -isystem esp-idf/components/esp_system/include INC += -isystem esp-idf/components/esp_system/include
INC += -isystem esp-idf/components/spi_flash/include INC += -isystem esp-idf/components/spi_flash/include
INC += -isystem esp-idf/components/nvs_flash/include INC += -isystem esp-idf/components/nvs_flash/include
INC += -isystem esp-idf/components/app_update/include
INC += -isystem esp-idf/components/bootloader_support/include
INC += -I$(BUILD)/esp-idf/config INC += -I$(BUILD)/esp-idf/config
CFLAGS += -DHAVE_CONFIG_H \ CFLAGS += -DHAVE_CONFIG_H \
@ -118,7 +120,7 @@ CFLAGS += -DSTACK_CANARY_VALUE=0xa5a5a5a5
#Debugging/Optimization #Debugging/Optimization
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)
CFLAGS += -ggdb CFLAGS += -DDEBUG -ggdb
OPTIMIZATION_FLAGS ?= -Og OPTIMIZATION_FLAGS ?= -Og
# You may want to enable these flags to make setting breakpoints easier. # You may want to enable these flags to make setting breakpoints easier.
# CFLAGS += -fno-inline -fno-ipa-sra # CFLAGS += -fno-inline -fno-ipa-sra
@ -336,10 +338,10 @@ $(BUILD)/firmware.uf2: $(BUILD)/circuitpython-firmware.bin
$(Q)$(PYTHON3) $(TOP)/tools/uf2/utils/uf2conv.py -f 0xbfdd4eee -b 0x0000 -c -o $@ $^ $(Q)$(PYTHON3) $(TOP)/tools/uf2/utils/uf2conv.py -f 0xbfdd4eee -b 0x0000 -c -o $@ $^
flash: $(BUILD)/firmware.bin flash: $(BUILD)/firmware.bin
esptool.py --chip esp32s2 -p $(PORT) --no-stub -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x0000 $^ esptool.py --chip esp32s2 -p $(PORT) -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x0000 $^
flash-circuitpython-only: $(BUILD)/circuitpython-firmware.bin flash-circuitpython-only: $(BUILD)/circuitpython-firmware.bin
esptool.py --chip esp32s2 -p $(PORT) --no-stub -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x10000 $^ esptool.py --chip esp32s2 -p $(PORT) -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x10000 $^
include $(TOP)/py/mkrules.mk include $(TOP)/py/mkrules.mk

View File

@ -115,8 +115,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus; busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
common_hal_busio_spi_construct(spi, &pin_GPIO36, &pin_GPIO35, NULL); common_hal_busio_spi_construct(spi, &pin_GPIO36, &pin_GPIO35, NULL);

View File

@ -26,7 +26,7 @@
//Micropython setup //Micropython setup
#define MICROPY_HW_BOARD_NAME "MagTag" #define MICROPY_HW_BOARD_NAME "Adafruit MagTag"
#define MICROPY_HW_MCU_NAME "ESP32S2" #define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO1) #define MICROPY_HW_NEOPIXEL (&pin_GPIO1)

View File

@ -26,7 +26,7 @@
//Micropython setup //Micropython setup
#define MICROPY_HW_BOARD_NAME "Metro ESP32S2" #define MICROPY_HW_BOARD_NAME "Adafruit Metro ESP32S2"
#define MICROPY_HW_MCU_NAME "ESP32S2" #define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO45) #define MICROPY_HW_NEOPIXEL (&pin_GPIO45)

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
} }
bool board_requests_safe_mode(void) { bool board_requests_safe_mode(void) {

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
} }
bool board_requests_safe_mode(void) { bool board_requests_safe_mode(void) {

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
} }
bool board_requests_safe_mode(void) { bool board_requests_safe_mode(void) {

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
} }
bool board_requests_safe_mode(void) { bool board_requests_safe_mode(void) {

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
// SPI Flash and RAM // SPI Flash and RAM
common_hal_never_reset_pin(&pin_GPIO26); common_hal_never_reset_pin(&pin_GPIO26);

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
} }
bool board_requests_safe_mode(void) { bool board_requests_safe_mode(void) {

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
// Crystal // Crystal
common_hal_never_reset_pin(&pin_GPIO15); common_hal_never_reset_pin(&pin_GPIO15);

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
//Crystal //Crystal
common_hal_never_reset_pin(&pin_GPIO15); common_hal_never_reset_pin(&pin_GPIO15);

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
// SPI Flash and RAM // SPI Flash and RAM
common_hal_never_reset_pin(&pin_GPIO26); common_hal_never_reset_pin(&pin_GPIO26);

View File

@ -34,8 +34,10 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO20); common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART // Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43); common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44); common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
// SPI Flash and RAM // SPI Flash and RAM
common_hal_never_reset_pin(&pin_GPIO26); common_hal_never_reset_pin(&pin_GPIO26);

View File

@ -0,0 +1,66 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 microDev
* Copyright (c) 2020 Dan Halbert 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 <string.h>
#include "py/runtime.h"
#include "common-hal/alarm/SleepMemory.h"
#include "esp_log.h"
#include "esp_sleep.h"
// Data storage for singleton instance of SleepMemory.
// Might be RTC_SLOW_MEM or RTC_FAST_MEM, depending on setting of CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM.
static RTC_DATA_ATTR uint8_t _sleep_mem[SLEEP_MEMORY_LENGTH];
void alarm_sleep_memory_reset(void) {
// ESP-IDF build system takes care of doing esp_sleep_pd_config() or the equivalentwith
// the correct settings, depending on which RTC mem we are using.
// https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/system/sleep_modes.html#power-down-of-rtc-peripherals-and-memories
}
uint32_t common_hal_alarm_sleep_memory_get_length(alarm_sleep_memory_obj_t *self) {
return sizeof(_sleep_mem);
}
bool common_hal_alarm_sleep_memory_set_bytes(alarm_sleep_memory_obj_t *self, uint32_t start_index, const uint8_t* values, uint32_t len) {
if (start_index + len > sizeof(_sleep_mem)) {
return false;
}
memcpy((uint8_t *) (_sleep_mem + start_index), values, len);
return true;
}
void common_hal_alarm_sleep_memory_get_bytes(alarm_sleep_memory_obj_t *self, uint32_t start_index, uint8_t* values, uint32_t len) {
if (start_index + len > sizeof(_sleep_mem)) {
return;
}
memcpy(values, (uint8_t *) (_sleep_mem + start_index), len);
}

View File

@ -0,0 +1,53 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 Dan Halbert 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_ALARM_SLEEPMEMORY_H
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM_SLEEPMEMORY_H
#include "py/obj.h"
// There are several places we could store persistent data for SleepMemory:
//
// RTC registers: There are a few 32-bit registers maintained during deep sleep.
// We are already using one for saving sleep information during deep sleep.
//
// RTC Fast Memory: 8kB, also used for deep-sleep power-on stub.
// RTC Slow Memory: 8kB, also used for the ULP (tiny co-processor available during sleep).
//
// The ESP-IDF build system takes care of the power management of these regions.
// RTC_DATA_ATTR will allocate storage in RTC_SLOW_MEM unless CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM
// is set. Any memory not allocated by us can be used by the ESP-IDF for heap or other purposes.
// Use half of RTC_SLOW_MEM or RTC_FAST_MEM.
#define SLEEP_MEMORY_LENGTH (4096)
typedef struct {
mp_obj_base_t base;
} alarm_sleep_memory_obj_t;
extern void alarm_sleep_memory_reset(void);
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM_SLEEPMEMORY_H

View File

@ -1,10 +1,10 @@
/* /*
* This file is part of the MicroPython project, http://micropython.org/ * This file is part of the MicroPython project, http://micropython.org/
* *
* The MIT License (MIT) * The MIT License (MIT)
* *
* Copyright (c) 2016 Scott Shawcroft for Adafruit Industries * Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2019 Lucian Copeland for Adafruit Industries * Copyright (c) 2020 Dan Halbert for Adafruit Industries
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
@ -30,6 +30,7 @@
#include "py/runtime.h" #include "py/runtime.h"
#include "shared-bindings/alarm/pin/PinAlarm.h" #include "shared-bindings/alarm/pin/PinAlarm.h"
#include "shared-bindings/alarm/SleepMemory.h"
#include "shared-bindings/alarm/time/TimeAlarm.h" #include "shared-bindings/alarm/time/TimeAlarm.h"
#include "shared-bindings/microcontroller/__init__.h" #include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/wifi/__init__.h" #include "shared-bindings/wifi/__init__.h"
@ -41,8 +42,17 @@
#include "esp_sleep.h" #include "esp_sleep.h"
// Singleton instance of SleepMemory.
const alarm_sleep_memory_obj_t alarm_sleep_memory_obj = {
.base = {
.type = &alarm_sleep_memory_type,
},
};
void alarm_reset(void) { void alarm_reset(void) {
alarm_time_timealarm_reset(); alarm_time_timealarm_reset();
alarm_sleep_memory_reset();
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL); esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
} }

View File

@ -27,6 +27,10 @@
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H #ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H #define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H
void alarm_reset(void); #include "common-hal/alarm/SleepMemory.h"
const alarm_sleep_memory_obj_t alarm_sleep_memory_obj;
extern void alarm_reset(void);
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H #endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ALARM__INIT__H

View File

@ -52,6 +52,7 @@ mp_obj_t alarm_time_timealarm_get_wakeup_alarm(size_t n_alarms, const mp_obj_t *
alarm_time_time_alarm_obj_t *timer = m_new_obj(alarm_time_time_alarm_obj_t); alarm_time_time_alarm_obj_t *timer = m_new_obj(alarm_time_time_alarm_obj_t);
timer->base.type = &alarm_time_time_alarm_type; timer->base.type = &alarm_time_time_alarm_type;
// TODO: Set monotonic_time based on the RTC state. // TODO: Set monotonic_time based on the RTC state.
timer->monotonic_time = 0.0f;
return timer; return timer;
} }

View File

@ -34,8 +34,10 @@
#include "shared-bindings/microcontroller/Pin.h" #include "shared-bindings/microcontroller/Pin.h"
#include <string.h>
#define DEFAULT_VREF 1100 #define DEFAULT_VREF 1100
#define NO_OF_SAMPLES 64 #define NO_OF_SAMPLES 2
#define ATTENUATION ADC_ATTEN_DB_11 #define ATTENUATION ADC_ATTEN_DB_11
#define DATA_WIDTH ADC_WIDTH_BIT_13 #define DATA_WIDTH ADC_WIDTH_BIT_13
@ -66,11 +68,14 @@ uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
adc1_config_channel_atten((adc1_channel_t)self->pin->adc_channel, ATTENUATION); adc1_config_channel_atten((adc1_channel_t)self->pin->adc_channel, ATTENUATION);
} else if (self->pin->adc_index == ADC_UNIT_2) { } else if (self->pin->adc_index == ADC_UNIT_2) {
adc2_config_channel_atten((adc2_channel_t)self->pin->adc_channel, ATTENUATION); adc2_config_channel_atten((adc2_channel_t)self->pin->adc_channel, ATTENUATION);
} else {
mp_raise_ValueError(translate("Invalid Pin"));
} }
// Automatically select calibration process depending on status of efuse // 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_characteristics_t adc_chars;
esp_adc_cal_characterize(self->pin->adc_index, ATTENUATION, DATA_WIDTH, DEFAULT_VREF, adc_chars); memset(&adc_chars, 0, sizeof(adc_chars));
esp_adc_cal_characterize(self->pin->adc_index, ATTENUATION, DATA_WIDTH, DEFAULT_VREF, &adc_chars);
uint32_t adc_reading = 0; uint32_t adc_reading = 0;
//Multisampling //Multisampling
@ -89,7 +94,7 @@ uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
adc_reading /= NO_OF_SAMPLES; 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 // 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); uint32_t voltage = esp_adc_cal_raw_to_voltage(adc_reading, &adc_chars);
return voltage * ((1 << 16) - 1)/3300; return voltage * ((1 << 16) - 1)/3300;
} }

View File

@ -0,0 +1,139 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 microDev
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "common-hal/dualbank/__init__.h"
#include "shared-bindings/dualbank/__init__.h"
#include <string.h>
#include "esp_log.h"
#include "esp_ota_ops.h"
static const esp_partition_t *update_partition = NULL;
static esp_ota_handle_t update_handle = 0;
static const char *TAG = "dualbank";
void dualbank_reset(void) {
// should use `abort` instead of `end`
// but not in idf v4.2
// esp_ota_abort(update_handle);
if (esp_ota_end(update_handle) == ESP_OK) {
update_handle = 0;
update_partition = NULL;
}
}
static void __attribute__((noreturn)) task_fatal_error(void) {
ESP_LOGE(TAG, "Exiting task due to fatal error...");
mp_raise_RuntimeError(translate("Update Failed"));
}
void common_hal_dualbank_flash(const void *buf, const size_t len, const size_t offset) {
esp_err_t err;
const esp_partition_t *running = esp_ota_get_running_partition();
const esp_partition_t *last_invalid = esp_ota_get_last_invalid_partition();
if (update_partition == NULL) {
update_partition = esp_ota_get_next_update_partition(NULL);
ESP_LOGI(TAG, "Running partition type %d subtype %d (offset 0x%08x)",
running->type, running->subtype, running->address);
ESP_LOGI(TAG, "Writing partition type %d subtype %d (offset 0x%08x)\n",
update_partition->type, update_partition->subtype, update_partition->address);
assert(update_partition != NULL);
}
if (update_handle == 0) {
if (len > sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t) + sizeof(esp_app_desc_t)) {
esp_app_desc_t new_app_info;
memcpy(&new_app_info, &((char *)buf)[sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t)], sizeof(esp_app_desc_t));
ESP_LOGI(TAG, "New firmware version: %s", new_app_info.version);
esp_app_desc_t running_app_info;
if (esp_ota_get_partition_description(running, &running_app_info) == ESP_OK) {
ESP_LOGI(TAG, "Running firmware version: %s", running_app_info.version);
}
esp_app_desc_t invalid_app_info;
if (esp_ota_get_partition_description(last_invalid, &invalid_app_info) == ESP_OK) {
ESP_LOGI(TAG, "Last invalid firmware version: %s", invalid_app_info.version);
}
// check new version with running version
if (memcmp(new_app_info.version, running_app_info.version, sizeof(new_app_info.version)) == 0) {
ESP_LOGW(TAG, "New version is the same as running version.");
task_fatal_error();
}
// check new version with last invalid partition
if (last_invalid != NULL) {
if (memcmp(new_app_info.version, invalid_app_info.version, sizeof(new_app_info.version)) == 0) {
ESP_LOGW(TAG, "New version is the same as invalid version.");
task_fatal_error();
}
}
err = esp_ota_begin(update_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle);
if (err != ESP_OK) {
ESP_LOGE(TAG, "esp_ota_begin failed (%s)", esp_err_to_name(err));
task_fatal_error();
}
} else {
ESP_LOGE(TAG, "received package is not fit len");
task_fatal_error();
}
}
if (offset == 0) {
err = esp_ota_write(update_handle, buf, len);
} else {
err = esp_ota_write_with_offset(update_handle, buf, len, offset);
}
if (err != ESP_OK) {
ESP_LOGE(TAG, "esp_ota_write failed (%s)", esp_err_to_name(err));
task_fatal_error();
}
}
void common_hal_dualbank_switch(void) {
if (esp_ota_end(update_handle) == ESP_OK) {
update_handle = 0;
update_partition = NULL;
}
esp_err_t err = esp_ota_set_boot_partition(esp_ota_get_next_update_partition(NULL));
if (err != ESP_OK) {
if (err == ESP_ERR_OTA_VALIDATE_FAILED) {
ESP_LOGE(TAG, "Image validation failed, image is corrupted");
mp_raise_RuntimeError(translate("Firmware image is invalid"));
}
ESP_LOGE(TAG, "esp_ota_set_boot_partition failed (%s)!", esp_err_to_name(err));
task_fatal_error();
}
}

View File

@ -0,0 +1,32 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 microDev
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_DUALBANK___INIT___H
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_DUALBANK___INIT___H
extern void dualbank_reset(void);
#endif //MICROPY_INCLUDED_ESP32S2_COMMON_HAL_DUALBANK___INIT___H

View File

@ -44,6 +44,20 @@ STATIC uint32_t in_use[2];
bool apa102_mosi_in_use; bool apa102_mosi_in_use;
bool apa102_sck_in_use; bool apa102_sck_in_use;
STATIC void floating_gpio_reset(gpio_num_t pin_number) {
// This is the same as gpio_reset_pin(), but without the pullup.
// Note that gpio_config resets the iomatrix to GPIO_FUNC as well.
gpio_config_t cfg = {
.pin_bit_mask = BIT64(pin_number),
.mode = GPIO_MODE_DISABLE,
.pull_up_en = false,
.pull_down_en = false,
.intr_type = GPIO_INTR_DISABLE,
};
gpio_config(&cfg);
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[pin_number], 0);
}
void never_reset_pin_number(gpio_num_t pin_number) { void never_reset_pin_number(gpio_num_t pin_number) {
if (pin_number == -1 ) { if (pin_number == -1 ) {
return; return;
@ -63,6 +77,8 @@ void reset_pin_number(gpio_num_t pin_number) {
never_reset_pins[pin_number / 32] &= ~(1 << pin_number % 32); never_reset_pins[pin_number / 32] &= ~(1 << pin_number % 32);
in_use[pin_number / 32] &= ~(1 << pin_number % 32); in_use[pin_number / 32] &= ~(1 << pin_number % 32);
floating_gpio_reset(pin_number);
#ifdef MICROPY_HW_NEOPIXEL #ifdef MICROPY_HW_NEOPIXEL
if (pin_number == MICROPY_HW_NEOPIXEL->number) { if (pin_number == MICROPY_HW_NEOPIXEL->number) {
neopixel_in_use = false; neopixel_in_use = false;
@ -83,9 +99,7 @@ void reset_all_pins(void) {
(never_reset_pins[i / 32] & (1 << i % 32)) != 0) { (never_reset_pins[i / 32] & (1 << i % 32)) != 0) {
continue; continue;
} }
gpio_set_direction(i, GPIO_MODE_DEF_INPUT); floating_gpio_reset(i);
gpio_pullup_dis(i);
gpio_pulldown_dis(i);
} }
in_use[0] = 0; in_use[0] = 0;
in_use[1] = 0; in_use[1] = 0;

View File

@ -105,6 +105,10 @@ mp_obj_t common_hal_wifi_radio_start_scanning_networks(wifi_radio_obj_t *self) {
} }
void common_hal_wifi_radio_stop_scanning_networks(wifi_radio_obj_t *self) { void common_hal_wifi_radio_stop_scanning_networks(wifi_radio_obj_t *self) {
// Return early if self->current_scan is NULL to avoid hang
if (self->current_scan == NULL) {
return;
}
// Free the memory used to store the found aps. // Free the memory used to store the found aps.
wifi_scannednetworks_deinit(self->current_scan); wifi_scannednetworks_deinit(self->current_scan);
self->current_scan = NULL; self->current_scan = NULL;

View File

@ -19,6 +19,7 @@ CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_AUDIOIO = 0 CIRCUITPY_AUDIOIO = 0
CIRCUITPY_CANIO = 1 CIRCUITPY_CANIO = 1
CIRCUITPY_COUNTIO = 1 CIRCUITPY_COUNTIO = 1
CIRCUITPY_DUALBANK = 1
CIRCUITPY_FREQUENCYIO = 1 CIRCUITPY_FREQUENCYIO = 1
CIRCUITPY_I2CPERIPHERAL = 0 CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_ROTARYIO = 1 CIRCUITPY_ROTARYIO = 1

View File

@ -41,6 +41,7 @@
#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"
#include "common-hal/dualbank/__init__.h"
#include "common-hal/ps2io/Ps2.h" #include "common-hal/ps2io/Ps2.h"
#include "common-hal/pulseio/PulseIn.h" #include "common-hal/pulseio/PulseIn.h"
#include "common-hal/pwmio/PWMOut.h" #include "common-hal/pwmio/PWMOut.h"
@ -123,6 +124,10 @@ void reset_port(void) {
analogout_reset(); analogout_reset();
#endif #endif
#if CIRCUITPY_DUALBANK
dualbank_reset();
#endif
#if CIRCUITPY_PS2IO #if CIRCUITPY_PS2IO
ps2_reset(); ps2_reset();
#endif #endif

View File

@ -80,7 +80,7 @@ ifeq ($(DEBUG), 1)
OPTIMIZATION_FLAGS ?= -Og OPTIMIZATION_FLAGS ?= -Og
else else
CFLAGS += -DNDEBUG -ggdb3 CFLAGS += -DNDEBUG -ggdb3
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# TODO: Test with -flto # TODO: Test with -flto
### CFLAGS += -flto ### CFLAGS += -flto
endif endif

View File

@ -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 -ffreestanding CFLAGS += -Os -ftree-vrp -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
@ -108,7 +108,7 @@ CFLAGS += \
-g3 -Wno-unused-parameter \ -g3 -Wno-unused-parameter \
-ffunction-sections -fdata-sections -fstack-usage -ffunction-sections -fdata-sections -fstack-usage
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
# option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk # option to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk
CFLAGS += $(OPTIMIZATION_FLAGS) CFLAGS += $(OPTIMIZATION_FLAGS)

View File

@ -1,4 +1,4 @@
#define MICROPY_HW_BOARD_NAME "Feather MIMXRT1011" #define MICROPY_HW_BOARD_NAME "Adafruit Feather MIMXRT1011"
#define MICROPY_HW_MCU_NAME "IMXRT1011DAE5A" #define MICROPY_HW_MCU_NAME "IMXRT1011DAE5A"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO_00) #define MICROPY_HW_NEOPIXEL (&pin_GPIO_00)

View File

@ -89,7 +89,7 @@ ifeq ($(DEBUG), 1)
CFLAGS += -ggdb3 CFLAGS += -ggdb3
OPTIMIZATION_FLAGS = -Og OPTIMIZATION_FLAGS = -Og
else else
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
CFLAGS += -DNDEBUG -ggdb3 CFLAGS += -DNDEBUG -ggdb3
CFLAGS += -flto -flto-partition=none CFLAGS += -flto -flto-partition=none
endif endif

View File

@ -0,0 +1,4 @@
# Electronic Cats BastBLE
The [BastBLE](https://electroniccats.com/store/bast-ble/) based on Nordic nRF 52840 and containing
a powerful Cortex M4F. This board include a external memory QSPI flash.

View File

@ -0,0 +1,41 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
#include "nrf.h"
#include "nrf_rtc.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,25 @@
#include "nrfx/hal/nrf_gpio.h"
#define MICROPY_HW_BOARD_NAME "BastBLE"
#define MICROPY_HW_MCU_NAME "nRF52840"
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
#if QSPI_FLASH_FILESYSTEM
#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 30)
#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 29)
#define MICROPY_QSPI_DATA2 NRF_GPIO_PIN_MAP(0, 28)
#define MICROPY_QSPI_DATA3 NRF_GPIO_PIN_MAP(0, 2)
#define MICROPY_QSPI_SCK NRF_GPIO_PIN_MAP(0, 3)
#define MICROPY_QSPI_CS NRF_GPIO_PIN_MAP(0, 26)
#endif
#define DEFAULT_I2C_BUS_SCL (&pin_P1_10)
#define DEFAULT_I2C_BUS_SDA (&pin_P1_11)
#define DEFAULT_SPI_BUS_SCK (&pin_P1_00)
#define DEFAULT_SPI_BUS_MOSI (&pin_P1_06)
#define DEFAULT_SPI_BUS_MISO (&pin_P0_15)
#define DEFAULT_UART_BUS_RX (&pin_P0_09)
#define DEFAULT_UART_BUS_TX (&pin_P0_10)

View File

@ -0,0 +1,10 @@
USB_VID = 0x1209
USB_PID = 0x805A
USB_PRODUCT = "BastBLE"
USB_MANUFACTURER = "ElectronicCats"
MCU_CHIP = nrf52840
QSPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 1
EXTERNAL_FLASH_DEVICES = "GD25Q16C"

View File

@ -0,0 +1,47 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_P1_11) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_P1_10) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_P1_00) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_P1_02) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_P1_13) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_P1_06) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_P0_15) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_P0_06) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_P1_09) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_P0_08) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_P0_26) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_P0_07) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_P0_02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_P0_28) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_P0_05) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_P0_03) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_P0_30) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P1_11) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_P0_29) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P1_10) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P1_06) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P0_15) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P1_00) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_P0_24) },
{ MP_ROM_QSTR(MP_QSTR_AREF), MP_ROM_PTR(&pin_P0_31) },
// voltage sense battery
{ MP_ROM_QSTR(MP_QSTR_VBAT), MP_ROM_PTR(&pin_P0_26) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_10) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_09) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -16,12 +16,14 @@ CIRCUITPY_AUDIOMP3 = 0
CIRCUITPY_BUSIO = 1 CIRCUITPY_BUSIO = 1
CIRCUITPY_DISPLAYIO = 0 CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FRAMEBUFFERIO = 0 CIRCUITPY_FRAMEBUFFERIO = 0
CIRCUITPY_GAMEPAD = 0
CIRCUITPY_NEOPIXEL_WRITE = 0 CIRCUITPY_NEOPIXEL_WRITE = 0
CIRCUITPY_NVM = 0 CIRCUITPY_NVM = 0
CIRCUITPY_PIXELBUF = 0 CIRCUITPY_PIXELBUF = 0
CIRCUITPY_RGBMATRIX = 0 CIRCUITPY_RGBMATRIX = 0
CIRCUITPY_ROTARYIO = 0 CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 1 CIRCUITPY_RTC = 1
CIRCUITPY_SDCARDIO = 0
CIRCUITPY_TOUCHIO = 0 CIRCUITPY_TOUCHIO = 0
CIRCUITPY_ULAB = 0 CIRCUITPY_ULAB = 0
CIRCUITPY_WATCHDOG = 1 CIRCUITPY_WATCHDOG = 1

View File

@ -470,7 +470,16 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t*
ble_drv_add_event_handler(scan_on_ble_evt, self->scan_results); ble_drv_add_event_handler(scan_on_ble_evt, self->scan_results);
uint32_t nrf_timeout = SEC_TO_UNITS(timeout, UNIT_10_MS); uint32_t nrf_timeout = SEC_TO_UNITS(timeout, UNIT_10_MS);
if (timeout <= 0.0001) { if (nrf_timeout > UINT16_MAX) {
// 0xffff / 100
mp_raise_ValueError(translate("timeout must be < 655.35 secs"));
}
if (nrf_timeout == 0 && timeout > 0.0f) {
// Make sure converted timeout is > 0 if original timeout is > 0.
mp_raise_ValueError(translate("non-zero timeout must be > 0.01"));
}
if (nrf_timeout) {
nrf_timeout = BLE_GAP_SCAN_TIMEOUT_UNLIMITED; nrf_timeout = BLE_GAP_SCAN_TIMEOUT_UNLIMITED;
} }

View File

@ -86,7 +86,7 @@ ifeq ($(DEBUG), 1)
CFLAGS += -fno-inline -fno-ipa-sra CFLAGS += -fno-inline -fno-ipa-sra
else else
CFLAGS += -DNDEBUG CFLAGS += -DNDEBUG
OPTIMIZATION_FLAGS ?= -O2 OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
CFLAGS += -ggdb3 CFLAGS += -ggdb3
# TODO: Test with -flto # TODO: Test with -flto
# CFLAGS += -flto # CFLAGS += -flto
@ -95,6 +95,9 @@ endif
# to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk # to override compiler optimization level, set in boards/$(BOARD)/mpconfigboard.mk
CFLAGS += $(OPTIMIZATION_FLAGS) CFLAGS += $(OPTIMIZATION_FLAGS)
# Add -ftree-vrp optimization and checking to all builds. It's not enabled for -Os by default.
CFLAGS += -ftree-vrp
# MCU Series is defined by the HAL package and doesn't need to be specified here # MCU Series is defined by the HAL package and doesn't need to be specified here
C_DEFS = -D$(MCU_PACKAGE) -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER -D$(MCU_VARIANT) C_DEFS = -D$(MCU_PACKAGE) -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER -D$(MCU_VARIANT)

View File

@ -20,3 +20,5 @@ LD_FILE = boards/STM32F401xd_fs.ld
# lto for this port, and if other stuff hasn't been added in the # lto for this port, and if other stuff hasn't been added in the
# meantime # meantime
CIRCUITPY_ULAB = 0 CIRCUITPY_ULAB = 0
SUPEROPT_GC = 0

View File

@ -26,7 +26,7 @@
//Micropython setup //Micropython setup
#define MICROPY_HW_BOARD_NAME "Feather STM32F405 Express" #define MICROPY_HW_BOARD_NAME "Adafruit Feather STM32F405 Express"
#define MICROPY_HW_MCU_NAME "STM32F405RG" #define MICROPY_HW_MCU_NAME "STM32F405RG"
#define FLASH_SIZE (0x100000) #define FLASH_SIZE (0x100000)

View File

@ -42,6 +42,9 @@
// #define SPI_FLASH_SCK_PIN (&pin_PA05) // #define SPI_FLASH_SCK_PIN (&pin_PA05)
// #define SPI_FLASH_CS_PIN (&pin_PA04) // #define SPI_FLASH_CS_PIN (&pin_PA04)
#define DEFAULT_I2C_BUS_SCL (&pin_PB06)
#define DEFAULT_I2C_BUS_SDA (&pin_PB07)
#define CIRCUITPY_AUTORELOAD_DELAY_MS (500) #define CIRCUITPY_AUTORELOAD_DELAY_MS (500)
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x2000 - 0xC000) #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x2000 - 0xC000)

View File

@ -35,5 +35,10 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_C14), MP_ROM_PTR(&pin_PC14) }, { MP_ROM_QSTR(MP_QSTR_C14), MP_ROM_PTR(&pin_PC14) },
{ MP_ROM_QSTR(MP_QSTR_C13), MP_ROM_PTR(&pin_PC13) }, { MP_ROM_QSTR(MP_QSTR_C13), MP_ROM_PTR(&pin_PC13) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PC13) }, { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PC13) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB07) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB06) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
}; };
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -205,6 +205,9 @@ endif
ifeq ($(CIRCUITPY_OS),1) ifeq ($(CIRCUITPY_OS),1)
SRC_PATTERNS += os/% SRC_PATTERNS += os/%
endif endif
ifeq ($(CIRCUITPY_DUALBANK),1)
SRC_PATTERNS += dualbank/%
endif
ifeq ($(CIRCUITPY_PIXELBUF),1) ifeq ($(CIRCUITPY_PIXELBUF),1)
SRC_PATTERNS += _pixelbuf/% SRC_PATTERNS += _pixelbuf/%
endif endif
@ -304,6 +307,7 @@ SRC_COMMON_HAL_ALL = \
_bleio/__init__.c \ _bleio/__init__.c \
_pew/PewPew.c \ _pew/PewPew.c \
_pew/__init__.c \ _pew/__init__.c \
alarm/SleepMemory.c \
alarm/__init__.c \ alarm/__init__.c \
alarm/pin/PinAlarm.c \ alarm/pin/PinAlarm.c \
alarm/time/TimeAlarm.c \ alarm/time/TimeAlarm.c \
@ -347,6 +351,7 @@ SRC_COMMON_HAL_ALL = \
nvm/ByteArray.c \ nvm/ByteArray.c \
nvm/__init__.c \ nvm/__init__.c \
os/__init__.c \ os/__init__.c \
dualbank/__init__.c \
ps2io/Ps2.c \ ps2io/Ps2.c \
ps2io/__init__.c \ ps2io/__init__.c \
pulseio/PulseIn.c \ pulseio/PulseIn.c \

View File

@ -539,6 +539,13 @@ extern const struct _mp_obj_module_t os_module;
#define OS_MODULE_ALT_NAME #define OS_MODULE_ALT_NAME
#endif #endif
#if CIRCUITPY_DUALBANK
extern const struct _mp_obj_module_t dualbank_module;
#define DUALBANK_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_dualbank), (mp_obj_t)&dualbank_module },
#else
#define DUALBANK_MODULE
#endif
#if CIRCUITPY_PEW #if CIRCUITPY_PEW
extern const struct _mp_obj_module_t pew_module; extern const struct _mp_obj_module_t pew_module;
#define PEW_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__pew),(mp_obj_t)&pew_module }, #define PEW_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR__pew),(mp_obj_t)&pew_module },
@ -827,6 +834,7 @@ extern const struct _mp_obj_module_t wifi_module;
NETWORK_MODULE \ NETWORK_MODULE \
SOCKET_MODULE \ SOCKET_MODULE \
WIZNET_MODULE \ WIZNET_MODULE \
DUALBANK_MODULE \
PEW_MODULE \ PEW_MODULE \
PIXELBUF_MODULE \ PIXELBUF_MODULE \
PS2IO_MODULE \ PS2IO_MODULE \

View File

@ -96,7 +96,7 @@ CFLAGS += -DCIRCUITPY_BLEIO=$(CIRCUITPY_BLEIO)
CIRCUITPY_BOARD ?= 1 CIRCUITPY_BOARD ?= 1
CFLAGS += -DCIRCUITPY_BOARD=$(CIRCUITPY_BOARD) CFLAGS += -DCIRCUITPY_BOARD=$(CIRCUITPY_BOARD)
CIRCUITPY_BUSDEVICE ?= $(CIRCUITPY_FULL_BUILD) CIRCUITPY_BUSDEVICE = 0
CFLAGS += -DCIRCUITPY_BUSDEVICE=$(CIRCUITPY_BUSDEVICE) CFLAGS += -DCIRCUITPY_BUSDEVICE=$(CIRCUITPY_BUSDEVICE)
CIRCUITPY_BUILTINS_POW3 ?= $(CIRCUITPY_FULL_BUILD) CIRCUITPY_BUILTINS_POW3 ?= $(CIRCUITPY_FULL_BUILD)
@ -179,6 +179,9 @@ CFLAGS += -DCIRCUITPY_NVM=$(CIRCUITPY_NVM)
CIRCUITPY_OS ?= 1 CIRCUITPY_OS ?= 1
CFLAGS += -DCIRCUITPY_OS=$(CIRCUITPY_OS) CFLAGS += -DCIRCUITPY_OS=$(CIRCUITPY_OS)
CIRCUITPY_DUALBANK ?= 0
CFLAGS += -DCIRCUITPY_DUALBANK=$(CIRCUITPY_DUALBANK)
CIRCUITPY_PIXELBUF ?= $(CIRCUITPY_FULL_BUILD) CIRCUITPY_PIXELBUF ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_PIXELBUF=$(CIRCUITPY_PIXELBUF) CFLAGS += -DCIRCUITPY_PIXELBUF=$(CIRCUITPY_PIXELBUF)

View File

@ -56,7 +56,7 @@ RM = rm
RSYNC = rsync RSYNC = rsync
SED = sed SED = sed
# Linux has 'nproc', macOS has 'sysctl -n hw.logicalcpu', this is cross-platform # Linux has 'nproc', macOS has 'sysctl -n hw.logicalcpu', this is cross-platform
NPROC = $(PYTHON) -c 'import multiprocessing as mp; print(mp.cpu_count())' NPROC = $(PYTHON3) -c 'import multiprocessing as mp; print(mp.cpu_count())'
AS = $(CROSS_COMPILE)as AS = $(CROSS_COMPILE)as
CC = $(CROSS_COMPILE)gcc CC = $(CROSS_COMPILE)gcc
@ -72,7 +72,7 @@ CXX += -m32
LD += -m32 LD += -m32
endif endif
MAKE_FROZEN = $(PYTHON) $(TOP)/tools/make-frozen.py MAKE_FROZEN = $(PYTHON3) $(TOP)/tools/make-frozen.py
MPY_CROSS = $(TOP)/mpy-cross/mpy-cross MPY_CROSS = $(TOP)/mpy-cross/mpy-cross
MPY_TOOL = $(PYTHON3) $(TOP)/tools/mpy-tool.py MPY_TOOL = $(PYTHON3) $(TOP)/tools/mpy-tool.py
PREPROCESS_FROZEN_MODULES = PYTHONPATH=$(TOP)/tools/python-semver $(TOP)/tools/preprocess_frozen_modules.py PREPROCESS_FROZEN_MODULES = PYTHONPATH=$(TOP)/tools/python-semver $(TOP)/tools/preprocess_frozen_modules.py

View File

@ -125,7 +125,6 @@ void mp_obj_print_exception(const mp_print_t *print, mp_obj_t exc) {
mp_printf(print, decompressed_block, block); mp_printf(print, decompressed_block, block);
} }
} }
mp_obj_exception_clear_traceback(exc);
} }
} }
mp_obj_print_helper(print, exc, PRINT_EXC); mp_obj_print_helper(print, exc, PRINT_EXC);

View File

@ -19,7 +19,7 @@ endif
QSTR_GLOBAL_DEPENDENCIES += $(PY_SRC)/mpconfig.h mpconfigport.h QSTR_GLOBAL_DEPENDENCIES += $(PY_SRC)/mpconfig.h mpconfigport.h
# some code is performance bottleneck and compiled with other optimization options # some code is performance bottleneck and compiled with other optimization options
_CSUPEROPT = -O3 CSUPEROPT = -O3
# this sets the config file for FatFs # this sets the config file for FatFs
CFLAGS_MOD += -DFFCONF_H=\"lib/oofatfs/ffconf.h\" CFLAGS_MOD += -DFFCONF_H=\"lib/oofatfs/ffconf.h\"

View File

@ -33,8 +33,8 @@
#include "shared-bindings/_bleio/Address.h" #include "shared-bindings/_bleio/Address.h"
#include "shared-bindings/_bleio/Adapter.h" #include "shared-bindings/_bleio/Adapter.h"
#define ADV_INTERVAL_MIN (0.0020f) #define ADV_INTERVAL_MIN (0.02001f)
#define ADV_INTERVAL_MIN_STRING "0.0020" #define ADV_INTERVAL_MIN_STRING "0.02001"
#define ADV_INTERVAL_MAX (10.24f) #define ADV_INTERVAL_MAX (10.24f)
#define ADV_INTERVAL_MAX_STRING "10.24" #define ADV_INTERVAL_MAX_STRING "10.24"
// 20ms is recommended by Apple // 20ms is recommended by Apple
@ -307,7 +307,7 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_float_t timeout = 0; mp_float_t timeout = 0.0f;
if (args[ARG_timeout].u_obj != mp_const_none) { if (args[ARG_timeout].u_obj != mp_const_none) {
timeout = mp_obj_get_float(args[ARG_timeout].u_obj); timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
} }
@ -325,6 +325,13 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
mp_raise_ValueError_varg(translate("interval must be in range %s-%s"), INTERVAL_MIN_STRING, INTERVAL_MAX_STRING); mp_raise_ValueError_varg(translate("interval must be in range %s-%s"), INTERVAL_MIN_STRING, INTERVAL_MAX_STRING);
} }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wfloat-equal"
if (timeout != 0.0f && timeout < interval) {
mp_raise_ValueError(translate("non-zero timeout must be >= interval"));
}
#pragma GCC diagnostic pop
const mp_float_t window = mp_obj_float_get(args[ARG_window].u_obj); const mp_float_t window = mp_obj_float_get(args[ARG_window].u_obj);
if (window > interval) { if (window > interval) {
mp_raise_ValueError(translate("window must be <= interval")); mp_raise_ValueError(translate("window must be <= interval"));

View File

@ -110,8 +110,8 @@ STATIC mp_obj_t bleio_characteristic_add_to_service(size_t n_args, const mp_obj_
common_hal_bleio_attribute_security_mode_check_valid(write_perm); common_hal_bleio_attribute_security_mode_check_valid(write_perm);
const mp_int_t max_length_int = args[ARG_max_length].u_int; const mp_int_t max_length_int = args[ARG_max_length].u_int;
if (max_length_int <= 0) { if (max_length_int < 0) {
mp_raise_ValueError(translate("max_length must be > 0")); mp_raise_ValueError(translate("max_length must be >= 0"));
} }
const size_t max_length = (size_t) max_length_int; const size_t max_length = (size_t) max_length_int;
const bool fixed_length = args[ARG_fixed_length].u_bool; const bool fixed_length = args[ARG_fixed_length].u_bool;

View File

@ -101,8 +101,8 @@ STATIC mp_obj_t bleio_descriptor_add_to_characteristic(size_t n_args, const mp_o
common_hal_bleio_attribute_security_mode_check_valid(write_perm); common_hal_bleio_attribute_security_mode_check_valid(write_perm);
const mp_int_t max_length_int = args[ARG_max_length].u_int; const mp_int_t max_length_int = args[ARG_max_length].u_int;
if (max_length_int <= 0) { if (max_length_int < 0) {
mp_raise_ValueError(translate("max_length must be > 0")); mp_raise_ValueError(translate("max_length must be >= 0"));
} }
const size_t max_length = (size_t) max_length_int; const size_t max_length = (size_t) max_length_int;
const bool fixed_length = args[ARG_fixed_length].u_bool; const bool fixed_length = args[ARG_fixed_length].u_bool;

View File

@ -163,7 +163,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(adafruit_bus_device_i2cdevice_readinto_obj, 2,
//| """ //| """
//| ... //| ...
//| //|
STATIC void write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, int32_t start, mp_int_t end) { STATIC void write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, int32_t start, mp_int_t end, bool transmit_stop_bit) {
mp_buffer_info_t bufinfo; mp_buffer_info_t bufinfo;
mp_get_buffer_raise(buffer, &bufinfo, MP_BUFFER_READ); mp_get_buffer_raise(buffer, &bufinfo, MP_BUFFER_READ);
@ -173,7 +173,7 @@ STATIC void write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, in
mp_raise_ValueError(translate("Buffer must be at least length 1")); mp_raise_ValueError(translate("Buffer must be at least length 1"));
} }
uint8_t status = common_hal_adafruit_bus_device_i2cdevice_write(MP_OBJ_TO_PTR(self), ((uint8_t*)bufinfo.buf) + start, length); uint8_t status = common_hal_adafruit_bus_device_i2cdevice_write(MP_OBJ_TO_PTR(self), ((uint8_t*)bufinfo.buf) + start, length, transmit_stop_bit);
if (status != 0) { if (status != 0) {
mp_raise_OSError(status); mp_raise_OSError(status);
} }
@ -191,7 +191,7 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_write(size_t n_args, const mp_obj_
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
write(self, args[ARG_buffer].u_obj, args[ARG_start].u_int, args[ARG_end].u_int); write(self, args[ARG_buffer].u_obj, args[ARG_start].u_int, args[ARG_end].u_int, true);
return mp_const_none; return mp_const_none;
} }
MP_DEFINE_CONST_FUN_OBJ_KW(adafruit_bus_device_i2cdevice_write_obj, 2, adafruit_bus_device_i2cdevice_write); MP_DEFINE_CONST_FUN_OBJ_KW(adafruit_bus_device_i2cdevice_write_obj, 2, adafruit_bus_device_i2cdevice_write);
@ -233,7 +233,7 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_write_then_readinto(size_t n_args,
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
write(self, args[ARG_out_buffer].u_obj, args[ARG_out_start].u_int, args[ARG_out_end].u_int); write(self, args[ARG_out_buffer].u_obj, args[ARG_out_start].u_int, args[ARG_out_end].u_int, false);
readinto(self, args[ARG_in_buffer].u_obj, args[ARG_in_start].u_int, args[ARG_in_end].u_int); readinto(self, args[ARG_in_buffer].u_obj, args[ARG_in_start].u_int, args[ARG_in_end].u_int);

View File

@ -45,7 +45,7 @@ extern const mp_obj_type_t adafruit_bus_device_i2cdevice_type;
// Initializes the hardware peripheral. // Initializes the hardware peripheral.
extern void common_hal_adafruit_bus_device_i2cdevice_construct(adafruit_bus_device_i2cdevice_obj_t *self, busio_i2c_obj_t *i2c, uint8_t device_address); extern void common_hal_adafruit_bus_device_i2cdevice_construct(adafruit_bus_device_i2cdevice_obj_t *self, busio_i2c_obj_t *i2c, uint8_t device_address);
extern uint8_t common_hal_adafruit_bus_device_i2cdevice_readinto(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length); extern uint8_t common_hal_adafruit_bus_device_i2cdevice_readinto(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length);
extern uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length); extern uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length, bool transmit_stop_bit);
extern void common_hal_adafruit_bus_device_i2cdevice_lock(adafruit_bus_device_i2cdevice_obj_t *self); extern void common_hal_adafruit_bus_device_i2cdevice_lock(adafruit_bus_device_i2cdevice_obj_t *self);
extern void common_hal_adafruit_bus_device_i2cdevice_unlock(adafruit_bus_device_i2cdevice_obj_t *self); extern void common_hal_adafruit_bus_device_i2cdevice_unlock(adafruit_bus_device_i2cdevice_obj_t *self);
extern void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_device_i2cdevice_obj_t *self); extern void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_device_i2cdevice_obj_t *self);

View File

@ -0,0 +1,159 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2020 Dan Halbert 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 "py/binary.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "py/runtime0.h"
#include "shared-bindings/alarm/SleepMemory.h"
#include "supervisor/shared/translate.h"
//| class SleepMemory:
//| """Store raw bytes in RAM that persists during deep sleep.
//| The class acts as a ``bytearray``.
//| If power is lost, the memory contents are lost.
//|
//| Note that this class can't be imported and used directly. The sole
//| instance of :class:`SleepMemory` is available at
//| :attr:`alarm.sleep_memory`.
//|
//| Usage::
//|
//| import alarm
//| alarm.sleep_memory[0] = True
//| alarm.sleep_memory[1] = 12
//| """
//| def __init__(self) -> None:
//| """Not used. Access the sole instance through `alarm.sleep_memory`."""
//| ...
//|
STATIC const mp_rom_map_elem_t alarm_sleep_memory_locals_dict_table[] = {
};
STATIC MP_DEFINE_CONST_DICT(alarm_sleep_memory_locals_dict, alarm_sleep_memory_locals_dict_table);
//| @overload
//| def __getitem__(self, index: slice) -> bytearray: ...
//| @overload
//| def __getitem__(self, index: int) -> int:
//| """Returns the value at the given index."""
//| ...
//|
//| @overload
//| def __setitem__(self, index: slice, value: ReadableBuffer) -> None: ...
//| @overload
//| def __setitem__(self, index: int, value: int) -> None:
//| """Set the value at the given index."""
//| ...
//|
STATIC mp_obj_t alarm_sleep_memory_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value) {
if (value == MP_OBJ_NULL) {
// delete item
// slice deletion
return MP_OBJ_NULL; // op not supported
} else {
alarm_sleep_memory_obj_t *self = MP_OBJ_TO_PTR(self_in);
if (0) {
#if MICROPY_PY_BUILTINS_SLICE
} else if (MP_OBJ_IS_TYPE(index_in, &mp_type_slice)) {
mp_bound_slice_t slice;
if (!mp_seq_get_fast_slice_indexes(common_hal_alarm_sleep_memory_get_length(self), index_in, &slice)) {
mp_raise_NotImplementedError(translate("only slices with step=1 (aka None) are supported"));
}
if (value != MP_OBJ_SENTINEL) {
#if MICROPY_PY_ARRAY_SLICE_ASSIGN
// Assign
size_t src_len = slice.stop - slice.start;
uint8_t* src_items;
if (MP_OBJ_IS_TYPE(value, &mp_type_array) ||
MP_OBJ_IS_TYPE(value, &mp_type_bytearray) ||
MP_OBJ_IS_TYPE(value, &mp_type_memoryview) ||
MP_OBJ_IS_TYPE(value, &mp_type_bytes)) {
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(value, &bufinfo, MP_BUFFER_READ);
if (bufinfo.len != src_len) {
mp_raise_ValueError(translate("Slice and value different lengths."));
}
src_len = bufinfo.len;
src_items = bufinfo.buf;
if (1 != mp_binary_get_size('@', bufinfo.typecode, NULL)) {
mp_raise_ValueError(translate("Array values should be single bytes."));
}
} else {
mp_raise_NotImplementedError(translate("array/bytes required on right side"));
}
if (!common_hal_alarm_sleep_memory_set_bytes(self, slice.start, src_items, src_len)) {
mp_raise_RuntimeError(translate("Unable to write to sleep_memory."));
}
return mp_const_none;
#else
return MP_OBJ_NULL; // op not supported
#endif
} else {
// Read slice.
size_t len = slice.stop - slice.start;
uint8_t *items = m_new(uint8_t, len);
common_hal_alarm_sleep_memory_get_bytes(self, slice.start, items, len);
return mp_obj_new_bytearray_by_ref(len, items);
}
#endif
} else {
// Single index rather than slice.
size_t index = mp_get_index(self->base.type, common_hal_alarm_sleep_memory_get_length(self),
index_in, false);
if (value == MP_OBJ_SENTINEL) {
// load
uint8_t value_out;
common_hal_alarm_sleep_memory_get_bytes(self, index, &value_out, 1);
return MP_OBJ_NEW_SMALL_INT(value_out);
} else {
// store
mp_int_t byte_value = mp_obj_get_int(value);
if (byte_value > 0xff || byte_value < 0) {
mp_raise_ValueError(translate("Bytes must be between 0 and 255."));
}
uint8_t short_value = byte_value;
if (!common_hal_alarm_sleep_memory_set_bytes(self, index, &short_value, 1)) {
mp_raise_RuntimeError(translate("Unable to write to sleep_memory."));
}
return mp_const_none;
}
}
}
}
const mp_obj_type_t alarm_sleep_memory_type = {
{ &mp_type_type },
.name = MP_QSTR_SleepMemory,
.subscr = alarm_sleep_memory_subscr,
.print = NULL,
.locals_dict = (mp_obj_t)&alarm_sleep_memory_locals_dict,
};

View File

@ -0,0 +1,40 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_SLEEPMEMORY_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_SLEEPMEMORY_H
#include "common-hal/alarm/SleepMemory.h"
extern const mp_obj_type_t alarm_sleep_memory_type;
uint32_t common_hal_alarm_sleep_memory_get_length(alarm_sleep_memory_obj_t *self);
bool common_hal_alarm_sleep_memory_set_bytes(alarm_sleep_memory_obj_t *self, uint32_t start_index, const uint8_t* values, uint32_t len);
void common_hal_alarm_sleep_memory_get_bytes(alarm_sleep_memory_obj_t *self, uint32_t start_index, uint8_t* values, uint32_t len);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_SLEEPMEMORY_H

View File

@ -29,6 +29,7 @@
#include "py/runtime.h" #include "py/runtime.h"
#include "shared-bindings/alarm/__init__.h" #include "shared-bindings/alarm/__init__.h"
#include "shared-bindings/alarm/SleepMemory.h"
#include "shared-bindings/alarm/pin/PinAlarm.h" #include "shared-bindings/alarm/pin/PinAlarm.h"
#include "shared-bindings/alarm/time/TimeAlarm.h" #include "shared-bindings/alarm/time/TimeAlarm.h"
#include "shared-bindings/supervisor/Runtime.h" #include "shared-bindings/supervisor/Runtime.h"
@ -57,7 +58,11 @@
//| maintaining the connection takes priority and power consumption may not be reduced. //| maintaining the connection takes priority and power consumption may not be reduced.
//| """ //| """
//| sleep_memory: SleepMemory
//| """Memory that persists during deep sleep.
//| This object is the sole instance of `alarm.SleepMemory`."""
//| //|
//| wake_alarm: Alarm //| wake_alarm: Alarm
//| """The most recently triggered alarm. If CircuitPython was sleeping, the alarm the woke it from sleep.""" //| """The most recently triggered alarm. If CircuitPython was sleeping, the alarm the woke it from sleep."""
//| //|
@ -177,6 +182,7 @@ STATIC const mp_obj_module_t alarm_time_module = {
.globals = (mp_obj_dict_t*)&alarm_time_globals, .globals = (mp_obj_dict_t*)&alarm_time_globals,
}; };
// The module table is mutable because .wake_alarm is a mutable attribute.
STATIC mp_map_elem_t alarm_module_globals_table[] = { STATIC mp_map_elem_t alarm_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_alarm) }, { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_alarm) },
@ -188,12 +194,14 @@ STATIC mp_map_elem_t alarm_module_globals_table[] = {
MP_OBJ_FROM_PTR(&alarm_exit_and_deep_sleep_until_alarms_obj) }, MP_OBJ_FROM_PTR(&alarm_exit_and_deep_sleep_until_alarms_obj) },
{ MP_ROM_QSTR(MP_QSTR_pin), MP_OBJ_FROM_PTR(&alarm_pin_module) }, { MP_ROM_QSTR(MP_QSTR_pin), MP_OBJ_FROM_PTR(&alarm_pin_module) },
{ MP_ROM_QSTR(MP_QSTR_time), MP_OBJ_FROM_PTR(&alarm_time_module) } { MP_ROM_QSTR(MP_QSTR_time), MP_OBJ_FROM_PTR(&alarm_time_module) },
{ MP_ROM_QSTR(MP_QSTR_SleepMemory), MP_OBJ_FROM_PTR(&alarm_sleep_memory_type) },
{ MP_ROM_QSTR(MP_QSTR_sleep_memory), MP_OBJ_FROM_PTR(&alarm_sleep_memory_obj) },
}; };
STATIC MP_DEFINE_MUTABLE_DICT(alarm_module_globals, alarm_module_globals_table); STATIC MP_DEFINE_MUTABLE_DICT(alarm_module_globals, alarm_module_globals_table);
void common_hal_alarm_set_wake_alarm(mp_obj_t alarm) { STATIC void alarm_set_wake_alarm(mp_obj_t alarm) {
// Equivalent of: // Equivalent of:
// alarm.wake_alarm = alarm // alarm.wake_alarm = alarm
mp_map_elem_t *elem = mp_map_elem_t *elem =
@ -203,6 +211,11 @@ void common_hal_alarm_set_wake_alarm(mp_obj_t alarm) {
} }
} }
// Initialize .wake_alarm value.
void alarm_save_wakeup_alarm(void) {
alarm_set_wake_alarm(common_hal_alarm_get_wake_alarm());
}
const mp_obj_module_t alarm_module = { const mp_obj_module_t alarm_module = {
.base = { &mp_type_module }, .base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&alarm_module_globals, .globals = (mp_obj_dict_t*)&alarm_module_globals,

View File

@ -43,8 +43,11 @@ extern void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj
// Deep sleep is entered outside of the VM so we omit the `common_hal_` prefix. // Deep sleep is entered outside of the VM so we omit the `common_hal_` prefix.
extern NORETURN void alarm_enter_deep_sleep(void); extern NORETURN void alarm_enter_deep_sleep(void);
extern mp_obj_t common_hal_alarm_get_wake_alarm(void);
// Used by wake-up code. // Used by wake-up code.
extern void common_hal_alarm_set_wake_alarm(mp_obj_t alarm); void alarm_save_wakeup_alarm(void);
// True if an alarm is alerting. This is most useful for pretend deep sleep. // True if an alarm is alerting. This is most useful for pretend deep sleep.
extern bool alarm_woken_from_sleep(void); extern bool alarm_woken_from_sleep(void);

View File

@ -38,7 +38,6 @@
//| RGB565: ImageFormat //| RGB565: ImageFormat
//| """RGB565 format.""" //| """RGB565 format."""
//| //|
const mp_obj_type_t camera_imageformat_type;
const camera_imageformat_obj_t camera_imageformat_jpg_obj = { const camera_imageformat_obj_t camera_imageformat_jpg_obj = {
{ &camera_imageformat_type }, { &camera_imageformat_type },

View File

@ -35,7 +35,7 @@ typedef enum {
IMAGEFORMAT_RGB565, IMAGEFORMAT_RGB565,
} camera_imageformat_t; } camera_imageformat_t;
const mp_obj_type_t camera_imageformat_type; extern const mp_obj_type_t camera_imageformat_type;
camera_imageformat_t camera_imageformat_obj_to_type(mp_obj_t obj); camera_imageformat_t camera_imageformat_obj_to_type(mp_obj_t obj);
mp_obj_t camera_imageformat_type_to_obj(camera_imageformat_t mode); mp_obj_t camera_imageformat_type_to_obj(camera_imageformat_t mode);

View File

@ -0,0 +1,115 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 microDev
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/dualbank/__init__.h"
//| """DUALBANK Module
//|
//| The `dualbank` module adds ability to update and switch
//| between the two app partitions.
//|
//| There are two identical partitions, these contain different
//| firmware versions.
//| Having two partitions enables rollback functionality.
//|
//| The two partitions are defined as boot partition and
//| next-update partition. Calling `dualbank.flash()` writes
//| the next-update partition.
//|
//| After the next-update partition is written a validation
//| check is performed and on a successful validation this
//| partition is set as the boot partition. On next reset,
//| firmware will be loaded from this partition.
//|
//| Here is the sequence of commands to follow:
//|
//| .. code-block:: python
//|
//| import dualbank
//|
//| dualbank.flash(buffer, offset)
//| dualbank.switch()
//| """
//| ...
//|
//| def flash(*buffer: ReadableBuffer, offset: int=0) -> None:
//| """Writes one of two app partitions at the given offset.
//|
//| This can be called multiple times when flashing the firmware
//| in small chunks.
//| """
//| ...
//|
STATIC mp_obj_t dualbank_flash(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_buffer, ARG_offset };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_buffer, MP_ARG_OBJ | MP_ARG_REQUIRED },
{ MP_QSTR_offset, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0} },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
if (args[ARG_offset].u_int < 0) {
mp_raise_ValueError(translate("offset must be >= 0"));
}
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_READ);
common_hal_dualbank_flash(bufinfo.buf, bufinfo.len, args[ARG_offset].u_int);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(dualbank_flash_obj, 0, dualbank_flash);
//| def switch() -> None:
//| """Switches the boot partition.
//|
//| On next reset, firmware will be loaded from the partition
//| just switched over to.
//| """
//| ...
//|
STATIC mp_obj_t dualbank_switch(void) {
common_hal_dualbank_switch();
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(dualbank_switch_obj, dualbank_switch);
STATIC const mp_rom_map_elem_t dualbank_module_globals_table[] = {
// module name
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_dualbank) },
// module functions
{ MP_ROM_QSTR(MP_QSTR_flash), MP_ROM_PTR(&dualbank_flash_obj) },
{ MP_ROM_QSTR(MP_QSTR_switch), MP_ROM_PTR(&dualbank_switch_obj) },
};
STATIC MP_DEFINE_CONST_DICT(dualbank_module_globals, dualbank_module_globals_table);
const mp_obj_module_t dualbank_module = {
.base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&dualbank_module_globals,
};

View File

@ -0,0 +1,35 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 microDev
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DUALBANK___INIT___H
#define MICROPY_INCLUDED_SHARED_BINDINGS_DUALBANK___INIT___H
#include "py/runtime.h"
extern void common_hal_dualbank_switch(void);
extern void common_hal_dualbank_flash(const void *buf, const size_t len, const size_t offset);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DUALBANK___INIT___H

View File

@ -57,8 +57,8 @@ uint8_t common_hal_adafruit_bus_device_i2cdevice_readinto(adafruit_bus_device_i2
return common_hal_busio_i2c_read(self->i2c, self->device_address, buffer, length); return common_hal_busio_i2c_read(self->i2c, self->device_address, buffer, length);
} }
uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length) { uint8_t common_hal_adafruit_bus_device_i2cdevice_write(adafruit_bus_device_i2cdevice_obj_t *self, mp_obj_t buffer, size_t length, bool transmit_stop_bit) {
return common_hal_busio_i2c_write(self->i2c, self->device_address, buffer, length, true); return common_hal_busio_i2c_write(self->i2c, self->device_address, buffer, length, transmit_stop_bit);
} }
void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_device_i2cdevice_obj_t *self) { void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_device_i2cdevice_obj_t *self) {

View File

@ -29,6 +29,8 @@
#include "py/misc.h" #include "py/misc.h"
#include "py/runtime.h" #include "py/runtime.h"
#define NO_TRANSPARENT_COLOR (0x1000000)
uint32_t displayio_colorconverter_dither_noise_1 (uint32_t n) uint32_t displayio_colorconverter_dither_noise_1 (uint32_t n)
{ {
n = (n >> 13) ^ n; n = (n >> 13) ^ n;
@ -42,6 +44,7 @@ uint32_t displayio_colorconverter_dither_noise_2(uint32_t x, uint32_t y) {
void common_hal_displayio_colorconverter_construct(displayio_colorconverter_t* self, bool dither) { void common_hal_displayio_colorconverter_construct(displayio_colorconverter_t* self, bool dither) {
self->dither = dither; self->dither = dither;
self->transparent_color = NO_TRANSPARENT_COLOR;
} }
uint16_t displayio_colorconverter_compute_rgb565(uint32_t color_rgb888) { uint16_t displayio_colorconverter_compute_rgb565(uint32_t color_rgb888) {
@ -130,7 +133,7 @@ bool common_hal_displayio_colorconverter_get_dither(displayio_colorconverter_t*
} }
void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color) { void common_hal_displayio_colorconverter_make_transparent(displayio_colorconverter_t* self, uint32_t transparent_color) {
if (self->transparent_color >= 0x1000000) { if (self->transparent_color != NO_TRANSPARENT_COLOR) {
mp_raise_RuntimeError(translate("Only one color can be transparent at a time")); mp_raise_RuntimeError(translate("Only one color can be transparent at a time"));
} }
self->transparent_color = transparent_color; self->transparent_color = transparent_color;
@ -138,8 +141,8 @@ void common_hal_displayio_colorconverter_make_transparent(displayio_colorconvert
void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color) { void common_hal_displayio_colorconverter_make_opaque(displayio_colorconverter_t* self, uint32_t transparent_color) {
(void) transparent_color; (void) transparent_color;
// 0x1000000 will never equal a valid color // NO_TRANSPARENT_COLOR will never equal a valid color
self->transparent_color = 0x1000000; self->transparent_color = NO_TRANSPARENT_COLOR;
} }
void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _displayio_colorspace_t* colorspace, const displayio_input_pixel_t *input_pixel, displayio_output_pixel_t *output_color) { void displayio_colorconverter_convert(displayio_colorconverter_t *self, const _displayio_colorspace_t* colorspace, const displayio_input_pixel_t *input_pixel, displayio_output_pixel_t *output_color) {

View File

@ -57,7 +57,7 @@ void common_hal_displayio_ondiskbitmap_construct(displayio_ondiskbitmap_t *self,
uint32_t compression = read_word(bmp_header, 15); uint32_t compression = read_word(bmp_header, 15);
uint32_t number_of_colors = read_word(bmp_header, 23); uint32_t number_of_colors = read_word(bmp_header, 23);
bool indexed = ((bits_per_pixel <= 8) && (number_of_colors != 0)); bool indexed = bits_per_pixel <= 8;
self->bitfield_compressed = (compression == 3); self->bitfield_compressed = (compression == 3);
self->bits_per_pixel = bits_per_pixel; self->bits_per_pixel = bits_per_pixel;
self->width = read_word(bmp_header, 9); self->width = read_word(bmp_header, 9);
@ -75,6 +75,9 @@ void common_hal_displayio_ondiskbitmap_construct(displayio_ondiskbitmap_t *self,
self->b_bitmask = 0x1f; self->b_bitmask = 0x1f;
} }
} else if (indexed && self->bits_per_pixel != 1) { } else if (indexed && self->bits_per_pixel != 1) {
if (number_of_colors == 0) {
number_of_colors = 1 << bits_per_pixel;
}
uint16_t palette_size = number_of_colors * sizeof(uint32_t); uint16_t palette_size = number_of_colors * sizeof(uint32_t);
uint16_t palette_offset = 0xe + header_size; uint16_t palette_offset = 0xe + header_size;

Some files were not shown because too many files have changed in this diff Show More