Merge remote-tracking branch 'origin/main' into merge-1.18

This commit is contained in:
Jeff Epler 2022-02-16 11:43:53 -06:00
commit 4c9d14b73f
51 changed files with 493 additions and 145 deletions

View File

@ -42,8 +42,8 @@ jobs:
run: python tools/ci_fetch_deps.py test ${{ github.sha }}
- name: CircuitPython version
run: |
git describe --dirty --tags || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Install dependencies
run: |
sudo apt-get update
@ -77,6 +77,19 @@ jobs:
- name: Native mpy Tests
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py -j1 --mpy-cross-flags='-mcache-lookup-bc' --via-mpy --emit native -d basics float micropython
working-directory: tests
- name: Build native modules
run: |
make -C examples/natmod/features1
make -C examples/natmod/features2
make -C examples/natmod/btree
make -C examples/natmod/framebuf
make -C examples/natmod/uheapq
make -C examples/natmod/urandom
make -C examples/natmod/ure
make -C examples/natmod/uzlib
- name: Test native modules
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-natmodtests.py extmod/{btree*,framebuf*,uheapq*,ure*,uzlib*}.py
working-directory: tests
- name: Build mpy-cross.static-aarch64
run: make -C mpy-cross -j2 -f Makefile.static-aarch64
- uses: actions/upload-artifact@v2
@ -148,8 +161,8 @@ jobs:
run: python tools/ci_fetch_deps.py mpy-cross-mac ${{ github.sha }}
- name: CircuitPython version
run: |
git describe --dirty --tags
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Install dependencies
run: |
brew install gettext
@ -204,8 +217,8 @@ jobs:
run: python tools/ci_fetch_deps.py docs ${{ github.sha }}
- name: CircuitPython version
run: |
git describe --dirty --tags
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Set up Python 3
uses: actions/setup-python@v2
with:
@ -379,7 +392,9 @@ jobs:
- name: Get CP deps
run: python tools/ci_fetch_deps.py ${{ matrix.board }} ${{ github.sha }}
- name: CircuitPython version
run: git describe --dirty --tags
run: |
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- uses: actions/cache@v2
name: Fetch IDF tool cache
id: idf-cache

View File

@ -34,7 +34,9 @@ jobs:
gcc --version
python3 --version
- name: CircuitPython version
run: git describe --dirty --tags
run: |
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: Website
run: python3 build_board_info.py
working-directory: tools

View File

@ -77,8 +77,8 @@ jobs:
run: python tools/ci_fetch_deps.py windows ${{ github.sha }}
- name: CircuitPython version
run: |
git describe --dirty --tags
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
tools/describe || git log --parents HEAD~4..
echo >>$GITHUB_ENV CP_VERSION=$(tools/describe)
- name: build mpy-cross
run: make -j2 -C mpy-cross

View File

@ -24,12 +24,15 @@ import subprocess
import sys
import urllib.parse
import time
import pathlib
from collections import defaultdict
from sphinx.transforms import SphinxTransform
from docutils import nodes
from sphinx import addnodes
tools_describe = str(pathlib.Path(__file__).parent / "tools/describe")
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
@ -129,7 +132,7 @@ copyright = f'2014-{current_date.tm_year}, MicroPython & CircuitPython contribut
final_version = ""
git_describe = subprocess.run(
["git", "describe", "--dirty", "--tags"],
[tools_describe],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
encoding="utf-8"

View File

@ -18,7 +18,7 @@ void *memmove(void *dest, const void *src, size_t n) {
}
void *malloc(size_t n) {
void *ptr = m_malloc(n);
void *ptr = m_malloc(n, false);
return ptr;
}
void *realloc(void *ptr, size_t n) {
@ -26,7 +26,7 @@ void *realloc(void *ptr, size_t n) {
return NULL;
}
void *calloc(size_t n, size_t m) {
void *ptr = m_malloc(n * m);
void *ptr = m_malloc(n * m, false);
// memory already cleared by conservative GC
return ptr;
}
@ -51,7 +51,7 @@ int *__errno (void)
ssize_t mp_stream_posix_write(void *stream, const void *buf, size_t len) {
mp_obj_base_t* o = stream;
const mp_stream_p_t *stream_p = o->type->protocol;
const mp_stream_p_t *stream_p = o->type->ext[0].protocol;
mp_uint_t out_sz = stream_p->write(MP_OBJ_FROM_PTR(stream), buf, len, &native_errno);
if (out_sz == MP_STREAM_ERROR) {
return -1;
@ -62,7 +62,7 @@ ssize_t mp_stream_posix_write(void *stream, const void *buf, size_t len) {
ssize_t mp_stream_posix_read(void *stream, void *buf, size_t len) {
mp_obj_base_t* o = stream;
const mp_stream_p_t *stream_p = o->type->protocol;
const mp_stream_p_t *stream_p = o->type->ext[0].protocol;
mp_uint_t out_sz = stream_p->read(MP_OBJ_FROM_PTR(stream), buf, len, &native_errno);
if (out_sz == MP_STREAM_ERROR) {
return -1;
@ -73,7 +73,7 @@ ssize_t mp_stream_posix_read(void *stream, void *buf, size_t len) {
off_t mp_stream_posix_lseek(void *stream, off_t offset, int whence) {
const mp_obj_base_t* o = stream;
const mp_stream_p_t *stream_p = o->type->protocol;
const mp_stream_p_t *stream_p = o->type->ext[0].protocol;
struct mp_stream_seek_t seek_s;
seek_s.offset = offset;
seek_s.whence = whence;
@ -86,7 +86,7 @@ off_t mp_stream_posix_lseek(void *stream, off_t offset, int whence) {
int mp_stream_posix_fsync(void *stream) {
mp_obj_base_t* o = stream;
const mp_stream_p_t *stream_p = o->type->protocol;
const mp_stream_p_t *stream_p = o->type->ext[0].protocol;
mp_uint_t res = stream_p->ioctl(MP_OBJ_FROM_PTR(stream), MP_STREAM_FLUSH, 0, &native_errno);
if (res == MP_STREAM_ERROR) {
return -1;
@ -94,7 +94,7 @@ int mp_stream_posix_fsync(void *stream) {
return res;
}
mp_obj_type_t btree_type;
mp_obj_full_type_t btree_type;
#include "extmod/modbtree.c"
@ -123,12 +123,13 @@ mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *a
MP_DYNRUNTIME_INIT_ENTRY
btree_type.base.type = (void*)&mp_fun_table.type_type;
btree_type.flags = MP_TYPE_FLAG_EXTENDED;
btree_type.name = MP_QSTR_btree;
btree_type.print = btree_print;
btree_type.getiter = btree_getiter;
btree_type.iternext = btree_iternext;
btree_type.binary_op = btree_binary_op;
btree_type.subscr = btree_subscr;
btree_type.ext[0].getiter = btree_getiter;
btree_type.ext[0].iternext = btree_iternext;
btree_type.ext[0].binary_op = btree_binary_op;
btree_type.ext[0].subscr = btree_subscr;
btree_locals_dict_table[0] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_close), MP_OBJ_FROM_PTR(&btree_close_obj) };
btree_locals_dict_table[1] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_flush), MP_OBJ_FROM_PTR(&btree_flush_obj) };
btree_locals_dict_table[2] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_get), MP_OBJ_FROM_PTR(&btree_get_obj) };

View File

@ -8,7 +8,7 @@ void *memset(void *s, int c, size_t n) {
}
#endif
mp_obj_type_t mp_type_framebuf;
mp_obj_full_type_t mp_type_framebuf;
#include "extmod/modframebuf.c"
@ -19,9 +19,10 @@ mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *a
MP_DYNRUNTIME_INIT_ENTRY
mp_type_framebuf.base.type = (void*)&mp_type_type;
mp_type_framebuf.flags = MP_TYPE_FLAG_EXTENDED;
mp_type_framebuf.name = MP_QSTR_FrameBuffer;
mp_type_framebuf.make_new = framebuf_make_new;
mp_type_framebuf.buffer_p.get_buffer = framebuf_get_buffer;
mp_type_framebuf.ext[0].buffer_p.get_buffer = framebuf_get_buffer;
framebuf_locals_dict_table[0] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_fill), MP_OBJ_FROM_PTR(&framebuf_fill_obj) };
framebuf_locals_dict_table[1] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_fill_rect), MP_OBJ_FROM_PTR(&framebuf_fill_rect_obj) };
framebuf_locals_dict_table[2] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_pixel), MP_OBJ_FROM_PTR(&framebuf_pixel_obj) };

View File

@ -8,7 +8,8 @@ void *memset(void *s, int c, size_t n) {
}
#endif
mp_obj_type_t decompio_type;
mp_obj_full_type_t decompio_type;
mp_stream_p_t decompio_stream_p;
#include "extmod/moduzlib.c"
@ -18,10 +19,14 @@ STATIC MP_DEFINE_CONST_DICT(decompio_locals_dict, decompio_locals_dict_table);
mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *args) {
MP_DYNRUNTIME_INIT_ENTRY
decompio_stream_p.name = MP_QSTR_protocol_stream;
decompio_stream_p.read = decompio_read;
decompio_type.base.type = mp_fun_table.type_type;
decompio_type.flags = MP_TYPE_FLAG_EXTENDED;
decompio_type.name = MP_QSTR_DecompIO;
decompio_type.make_new = decompio_make_new;
decompio_type.protocol = &decompio_stream_p;
decompio_type.ext[0].protocol = &decompio_stream_p;
decompio_locals_dict_table[0] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_read), MP_OBJ_FROM_PTR(&mp_stream_read_obj) };
decompio_locals_dict_table[1] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_readinto), MP_OBJ_FROM_PTR(&mp_stream_readinto_obj) };
decompio_locals_dict_table[2] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_readline), MP_OBJ_FROM_PTR(&mp_stream_unbuffered_readline_obj) };

View File

@ -47,7 +47,7 @@ void __dbpanic(DB *db) {
STATIC mp_obj_btree_t *btree_new(DB *db, mp_obj_t stream) {
mp_obj_btree_t *o = m_new_obj(mp_obj_btree_t);
o->base.type = &btree_type;
o->base.type = (mp_obj_type_t *)&btree_type;
o->stream = stream;
o->db = db;
o->start_key = mp_const_none;

View File

@ -622,7 +622,7 @@ STATIC const mp_obj_type_t mp_type_framebuf = {
// this factory function is provided for backwards compatibility with old FrameBuffer1 class
STATIC mp_obj_t legacy_framebuffer1(size_t n_args, const mp_obj_t *args) {
mp_obj_framebuf_t *o = m_new_obj(mp_obj_framebuf_t);
o->base.type = &mp_type_framebuf;
o->base.type = (mp_obj_type_t *)&mp_type_framebuf;
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_WRITE);

View File

@ -114,12 +114,12 @@ STATIC const mp_rom_map_elem_t decompio_locals_dict_table[] = {
STATIC MP_DEFINE_CONST_DICT(decompio_locals_dict, decompio_locals_dict_table);
#endif
#if !MICROPY_ENABLE_DYNRUNTIME
STATIC const mp_stream_p_t decompio_stream_p = {
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
.read = decompio_read,
};
#if !MICROPY_ENABLE_DYNRUNTIME
STATIC const mp_obj_type_t decompio_type = {
{ &mp_type_type },
.flags = MP_TYPE_FLAG_EXTENDED,

View File

@ -3667,6 +3667,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3641,6 +3641,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3692,6 +3692,10 @@ msgstr "Mathe-Domain-Fehler"
msgid "matrix is not positive definite"
msgstr "Matrix ist nicht positiv definitiv"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3630,6 +3630,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3667,6 +3667,10 @@ msgstr "math domain error"
msgid "matrix is not positive definite"
msgstr "matrix is not positive definite"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3709,6 +3709,10 @@ msgstr "error de dominio matemático"
msgid "matrix is not positive definite"
msgstr "matrix no es definida positiva"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3669,6 +3669,10 @@ msgstr "may pagkakamali sa math domain"
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3739,6 +3739,10 @@ msgstr "erreur de domaine math"
msgid "matrix is not positive definite"
msgstr "la matrice n'est pas définie positive"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3630,6 +3630,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3687,6 +3687,10 @@ msgstr "errore di dominio matematico"
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3650,6 +3650,10 @@ msgstr "定義域エラー"
msgid "matrix is not positive definite"
msgstr "正定値行列ではありません"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3634,6 +3634,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3670,6 +3670,10 @@ msgstr "fout in het wiskundig domein (math domain error)"
msgid "matrix is not positive definite"
msgstr "matrix is niet positief-definiet"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3642,6 +3642,10 @@ msgstr "błąd domeny"
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-02-11 10:58+0000\n"
"PO-Revision-Date: 2022-02-15 18:42+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@ -3727,6 +3727,10 @@ msgstr "erro de domínio matemático"
msgid "matrix is not positive definite"
msgstr "a matriz não é definitiva positiva"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr "max_connections deve estar entre 0 e 10"
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-12-04 12:51+0000\n"
"PO-Revision-Date: 2022-02-14 18:08+0000\n"
"Last-Translator: Clay <code.clayt@gmail.com>\n"
"Language-Team: none\n"
"Language: ru\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.10-dev\n"
"X-Generator: Weblate 4.11-dev\n"
#: main.c
msgid ""
@ -77,12 +77,10 @@ msgid ""
msgstr "%d адресные пины, %d rgb пины и %d плитки указывают высоту %d а не %d"
#: shared-bindings/microcontroller/Pin.c
#, fuzzy
msgid "%q and %q contain duplicate pins"
msgstr "%q и %q содержат пины-дупликаты"
#: shared-bindings/microcontroller/Pin.c
#, fuzzy
msgid "%q contains duplicate pins"
msgstr "%q содержит пины-дупликаты"
@ -439,7 +437,7 @@ msgstr "Все каналы событий синхронизации уже и
#: shared-bindings/pwmio/PWMOut.c
msgid "All timers for this pin are in use"
msgstr "Все таймеры для этого Пина уже используются"
msgstr "Все таймеры для этого пина уже используются"
#: ports/atmel-samd/common-hal/_pew/PewPew.c
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
@ -702,12 +700,12 @@ msgstr "Сигнал из глубокого сна может подавать
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
msgstr ""
"Сигнал из глубокого сна может подаваться по низкому уровню только на одном "
"выводе, пока остальные сигналят по высокому уровню."
"пане, пока остальные подают сигнал по высокому уровню."
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on two low pins from deep sleep."
msgstr ""
"Сигнал из глубокого сна может подаваться только на двух выводах по низкому "
"Сигнал из глубокого сна может подаваться только на двух пинах по низкому "
"уровню."
#: ports/nrf/common-hal/_bleio/Characteristic.c
@ -748,16 +746,16 @@ msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Cannot output both channels on the same pin"
msgstr "Невозможно вывести оба канала на один вывод"
msgstr "Невозможно вывести оба канала на один пин"
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
msgid "Cannot pull on input-only pin."
msgstr ""
"Невозможно установить подтяжку на выводе, предназначенном только для ввода."
"Невозможно установить подтяжку на пине, предназначенном только для ввода."
#: shared-module/bitbangio/SPI.c
msgid "Cannot read without MISO pin."
msgstr "Считывание невозможно без вывода MISO."
msgstr "Считывание невозможно без пина MISO."
#: shared-bindings/audiobusio/PDMIn.c
msgid "Cannot record to a file"
@ -792,7 +790,7 @@ msgstr "Срез субкласса невозможен"
#: shared-module/bitbangio/SPI.c
msgid "Cannot transfer without MOSI and MISO pins."
msgstr "Передача данных невозможна без выводов MOSI и MISO."
msgstr "Передача данных невозможна без пинов MOSI и MISO."
#: shared-bindings/pwmio/PWMOut.c
msgid "Cannot vary frequency on a timer that is already in use"
@ -801,11 +799,11 @@ msgstr "Невозможно изменить частоту на таймере
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
#: ports/nrf/common-hal/alarm/pin/PinAlarm.c
msgid "Cannot wake on pin edge. Only level."
msgstr "Невозможно проснуться по pin edge. Только по уровню."
msgstr "Невозможно проснуться по спаду/росту на пине. Только по уровню."
#: shared-module/bitbangio/SPI.c
msgid "Cannot write without MOSI pin."
msgstr "Запись невозможна без вывода MOSI."
msgstr "Запись невозможна без пина MOSI."
#: shared-bindings/_bleio/CharacteristicBuffer.c
msgid "CharacteristicBuffer writing not provided"
@ -821,7 +819,7 @@ msgstr "CircuitPython не смог выделить heap."
#: shared-module/bitbangio/SPI.c
msgid "Clock pin init failed."
msgstr "Не удалось инициализировать тактовый вывод."
msgstr "Не удалось инициализировать пин Clock."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
@ -930,7 +928,7 @@ msgstr "ЦАП уже используется"
#: ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c
#: ports/nrf/common-hal/paralleldisplay/ParallelBus.c
msgid "Data 0 pin must be byte aligned"
msgstr "Вывод data 0 должен быть выровнен по байтам"
msgstr "Пин data 0 должен быть байтово выровнен"
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
@ -949,7 +947,8 @@ msgstr "Данные слишком велики для пакета объяв
#: ports/stm/common-hal/alarm/pin/PinAlarm.c
msgid "Deep sleep pins must use a rising edge with pulldown"
msgstr ""
"Выводы глубокого сна должны использовать rising edge с подтяжкой к земле"
"Выводы глубокого сна должны использовать сигнал по возрастанию с подтяжкой к "
"земле"
#: shared-bindings/audiobusio/PDMIn.c
msgid "Destination capacity is smaller than destination_length."
@ -961,7 +960,7 @@ msgstr "Устройство используется"
#: ports/cxd56/common-hal/digitalio/DigitalInOut.c
msgid "DigitalInOut not supported on given pin"
msgstr "DigitalInOut не поддерживается на данном выводе"
msgstr "DigitalInOut не поддерживается на данном пине"
#: shared-bindings/displayio/Display.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -975,7 +974,6 @@ msgid "Display rotation must be in 90 degree increments"
msgstr "Поворот дисплея должен осуществляться с шагом 90 градусов"
#: shared-bindings/digitalio/DigitalInOut.c
#, fuzzy
msgid "Drive mode not used when direction is input."
msgstr "Drive mode не используется, когда направление является входным."
@ -1173,11 +1171,11 @@ msgstr ""
#: ports/stm/common-hal/busio/SPI.c ports/stm/common-hal/canio/CAN.c
#: ports/stm/common-hal/sdioio/SDCard.c
msgid "Hardware busy, try alternative pins"
msgstr "Оборудование занято, попробуйте использовать другие выводы"
msgstr "Оборудование занято, попробуйте использовать другие пины"
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr "Оборудование используется, попробуйте использовать другие выводы"
msgstr "Оборудование используется, попробуйте использовать другие пины"
#: shared-bindings/wifi/Radio.c
msgid "Hostname must be between 1 and 253 characters"
@ -1227,13 +1225,12 @@ msgstr "Неверный размер программы инициализац
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Initial set pin direction conflicts with initial out pin direction"
msgstr ""
"Начальное направление вывода set конфликтует с начальным направлением вывода "
"out"
"Начальное направление пина set конфликтует с начальным направлением пина out"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Initial set pin state conflicts with initial out pin state"
msgstr ""
"Начальное состояние вывода set конфликтует с начальным состоянием вывода out"
"Начальное состояние пина set конфликтует с начальным состоянием пина out"
#: ports/espressif/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
@ -1256,20 +1253,19 @@ msgstr "Ошибка ввода/вывода"
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
"Инструкция %d вводит (shifts in) большее количество бит, чем количество "
"выводов"
"Инструкция %d вводит (shifts in) большее количество бит, чем количество пинов"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
"Инструкция %d выводит (shifts out) большее количество бит, чем количество "
"выводов"
"пинов"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr "Инструкция %d использует дополнительный вывод"
msgstr "Инструкция %d использует дополнительный пин"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
@ -1285,7 +1281,6 @@ msgid "Insufficient encryption"
msgstr "Недостаточное шифрование"
#: ports/espressif/common-hal/wifi/Radio.c
#, fuzzy
msgid "Interface must be started"
msgstr "Интерфейс должен быть запущен"
@ -1315,13 +1310,13 @@ msgstr "Недопустимый %q"
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Invalid %q pin"
msgstr "Недопустимый вывод %q"
msgstr "Недопустимый пин %q"
#: ports/stm/common-hal/busio/I2C.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/UART.c ports/stm/common-hal/canio/CAN.c
#: ports/stm/common-hal/sdioio/SDCard.c
msgid "Invalid %q pin selection"
msgstr "Неверный выбор вывода %q"
msgstr "Неверный выбор пина %q"
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Invalid ADC Unit value"
@ -1347,7 +1342,7 @@ msgstr "Неверный BSSID"
#: ports/espressif/common-hal/analogio/AnalogOut.c
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "Invalid DAC pin supplied"
msgstr "Передан неверный вывод ЦАП"
msgstr "Передан неверный пин ЦАП"
#: shared-bindings/wifi/Radio.c
msgid "Invalid MAC address"
@ -1368,7 +1363,7 @@ msgstr "Недопустимая частота ШИМ"
#: ports/espressif/common-hal/analogio/AnalogIn.c
msgid "Invalid Pin"
msgstr "Неверный вывод"
msgstr "Неверный пин"
#: ports/espressif/bindings/espidf/__init__.c
#: ports/espressif/common-hal/busio/I2C.c
@ -1450,15 +1445,15 @@ msgstr "Неверная фаза"
#: ports/nrf/common-hal/alarm/pin/PinAlarm.c shared-bindings/pwmio/PWMOut.c
#: shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid pin"
msgstr "Недопустимый вывод"
msgstr "Недопустимый пин"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Invalid pin for left channel"
msgstr "Недопустимый вывод для левого канала"
msgstr "Недопустимый пин для левого канала"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Invalid pin for right channel"
msgstr "Недопустимый вывод для правого канала"
msgstr "Недопустимый пин для правого канала"
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/SPI.c
@ -1478,7 +1473,7 @@ msgstr "Недопустимый вывод для правого канала"
#: ports/raspberrypi/common-hal/busio/UART.c shared-bindings/busio/SPI.c
#: shared-bindings/busio/UART.c
msgid "Invalid pins"
msgstr "Недопустимые выводы"
msgstr "Недопустимые пины"
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
#: shared-bindings/displayio/FourWire.c
@ -1552,11 +1547,11 @@ msgstr "MAC адрес был недействительным"
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "Не удалось инициализировать вывод MISO."
msgstr "Не удалось инициализировать пин MISO."
#: shared-module/bitbangio/SPI.c
msgid "MOSI pin init failed."
msgstr "Не удалось инициализировать вывод MOSI."
msgstr "Не удалось инициализировать пин MOSI."
#: shared-bindings/is31fl3741/IS31FL3741.c
msgid "Mapping must be a tuple"
@ -1577,44 +1572,43 @@ msgstr "Задержка включения микрофона должна бы
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
msgid "Missing MISO or MOSI Pin"
msgstr "Отсутствует вывод MISO или MOSI"
msgstr "Отсутствует пин MISO или MOSI"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr "Отсутствует first_in_pin. Инструкция %d читает состояние вывода (-ов)"
msgstr "Отсутствует first_in_pin. Инструкция %d читает состояние пина (-ов)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
"Отсутствует first_out_pin. Инструкция %d вводит (shifts out) на вывод(ы)"
msgstr "Отсутствует first_out_pin. Инструкция %d вводит (shifts out) на пин(ы)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, fuzzy, c-format
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr "Отсутствует first_in_pin. Инструкция %d ожидает на основе вывода"
msgstr "Отсутствует first_in_pin. Инструкция %d ожидает на основе пина"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
"Отсутствует first_out_pin. Инструкция %d выводит (shifts out) на вывод(ы)"
"Отсутствует first_out_pin. Инструкция %d выводит (shifts out) на пин(ы)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, fuzzy, c-format
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr "Отсутствует first_out_pin. Инструкция %d записывает вывод(ы)"
msgstr "Отсутствует first_out_pin. Инструкция %d записывает пин(ы)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Отсутствует first_set_pin. Инструкция %d устанавливает вывод(ы)"
msgstr "Отсутствует first_set_pin. Инструкция %d устанавливает пин(ы)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing jmp_pin. Instruction %d jumps on pin"
msgstr "Отсутствует jmp_pin. Инструкция %d перепрыгивает на вывод"
msgstr "Отсутствует jmp_pin. Инструкция %d перепрыгивает на пин"
#: shared-module/usb_hid/Device.c
#, c-format
@ -1627,12 +1621,12 @@ msgstr "Должен быть субклассом %q."
#: ports/mimxrt10xx/common-hal/busio/SPI.c shared-bindings/busio/SPI.c
msgid "Must provide MISO or MOSI pin"
msgstr "Вывод MISO или MOSI должен быть предоставлен"
msgstr "Пин MISO или MOSI должен быть предоставлен"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid "Must use a multiple of 6 rgb pins, not %d"
msgstr "Количество используемых rgb-контактов должно быть кратно 6, а не %d."
msgstr "Количество используемых rgb-пинов должно быть кратно 6, а не %d"
#: supervisor/shared/safe_mode.c
msgid "NLR jump failed. Likely memory corruption."
@ -1678,26 +1672,26 @@ msgstr ""
#: ports/espressif/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
msgid "No MISO Pin"
msgstr "Нет вывода MISO"
msgstr "Нет пина MISO"
#: ports/espressif/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
msgid "No MOSI Pin"
msgstr "Нет вывода MOSI"
msgstr "Нет пина MOSI"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/espressif/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Нет вывода RX"
msgstr "Нет пина RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/espressif/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Нет вывода TX"
msgstr "Нет пина TX"
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
msgid "No available clocks"
@ -1725,13 +1719,13 @@ msgstr "Отсутствует аппаратный генератор случ
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
msgid "No hardware support on clk pin"
msgstr "Отсутствует аппаратная поддержка вывода clk"
msgstr "Отсутствует аппаратная поддержка пина clk"
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "No hardware support on pin"
msgstr "Отсутствует аппаратная поддержка на выводе"
msgstr "Отсутствует аппаратная поддержка на пине"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No in in program"
@ -1766,14 +1760,13 @@ msgstr "В программе отсутствует вывод"
#: ports/espressif/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#, fuzzy
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
"Подтяжка на выводах SDA или SCL не обнаружена; проверь схему подключения"
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Отсутствует подтяжка к земле на выводе; Рекомендуется 1 Мегаом"
msgstr "Отсутствует подтяжка к земле на пине; Рекомендуется 1 Мегаом"
#: py/moduerrno.c
msgid "No space left on device"
@ -1811,7 +1804,6 @@ msgid "Not playing"
msgstr "Не играет"
#: shared-bindings/_bleio/__init__.c
#, fuzzy
msgid "Not settable"
msgstr "Не устанавливается"
@ -1833,7 +1825,6 @@ msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
#, fuzzy
msgid "Only 8 or 16 bit mono with "
msgstr "Только 8- или 16-битное моно с "
@ -1846,12 +1837,12 @@ msgid "Only IPv4 sockets supported"
msgstr "Поддерживаются только сокеты IPv4"
#: shared-module/displayio/OnDiskBitmap.c
#, fuzzy, c-format
#, c-format
msgid ""
"Only Windows format, uncompressed BMP supported: given header size is %d"
msgstr ""
"Поддерживается только формат Windows, несжатый BMP: заданный размер "
"заголовка - %d."
"заголовка - %d"
#: shared-bindings/_bleio/Adapter.c
msgid "Only connectable advertisements can be directed"
@ -1954,15 +1945,15 @@ msgstr ""
#: ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c
#: ports/stm/common-hal/alarm/pin/PinAlarm.c
msgid "Pin cannot wake from Deep Sleep"
msgstr ""
msgstr "Пин не может вывести из глубокого сна"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
msgstr "Количество пинов должно быть не менее 1"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
msgstr "Слишком большое количество пинов"
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
@ -1972,25 +1963,25 @@ msgstr ""
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr ""
msgstr "Пин не имеет возможности АЦП"
#: ports/stm/common-hal/alarm/pin/PinAlarm.c
#: ports/stm/common-hal/pulseio/PulseIn.c
msgid "Pin interrupt already in use"
msgstr ""
msgstr "Прерывание пина уже используется"
#: shared-bindings/adafruit_bus_device/spi_device/SPIDevice.c
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only"
msgstr ""
msgstr "Пин является только входом"
#: ports/raspberrypi/common-hal/countio/Counter.c
msgid "Pin must be on PWM Channel B"
msgstr ""
msgstr "Пин должен быть на канале ШИМ B"
#: ports/atmel-samd/common-hal/countio/Counter.c
msgid "Pin must support hardware interrupts"
msgstr ""
msgstr "Пин должен поддерживать аппаратные прерывания"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
@ -1999,18 +1990,21 @@ msgid ""
"bytes. If this cannot be avoided, pass allow_inefficient=True to the "
"constructor"
msgstr ""
"Pinout использует %d байт на элемент, что потребляет больше, чем идеальные "
"%d байт. Если этого нельзя избежать, передайте allow_inefficient=True в "
"конструктор"
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
msgstr "Пины должны быть последовательными"
#: ports/raspberrypi/common-hal/rotaryio/IncrementalEncoder.c
msgid "Pins must be sequential GPIO pins"
msgstr ""
msgstr "Пины должны быть последовательными выводами GPIO"
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "Pins must share PWM slice"
msgstr ""
msgstr "Пины должны иметь общий срез ШИМ"
#: py/builtinhelp.c
msgid "Plus any modules on the filesystem\n"
@ -2203,7 +2197,7 @@ msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
msgstr "Число Set пинов должно быть от 1 до 5"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
@ -2239,7 +2233,7 @@ msgstr ""
#: shared-bindings/paralleldisplay/ParallelBus.c
msgid "Specify exactly one of data0 or data_pins"
msgstr ""
msgstr "Укажите точно один из data0 или data_pins"
#: extmod/modure.c
msgid "Splitting with sub-captures"
@ -2263,7 +2257,7 @@ msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
msgstr "Предоставьте хотяб один пин UART"
#: shared-bindings/alarm/time/TimeAlarm.c
msgid "Supply one of monotonic_time or epoch_time"
@ -2291,7 +2285,7 @@ msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
msgstr "Длина rgb_pins должна быть 6, 12, 18, 24 или 30"
#: supervisor/shared/safe_mode.c
msgid ""
@ -2325,6 +2319,8 @@ msgid ""
"This microcontroller only supports data0=, not data_pins=, because it "
"requires contiguous pins."
msgstr ""
"Этот микроконтроллер поддерживает только data0=, а не data_pins=, поскольку "
"для него требуются смежные выводы."
#: shared-bindings/displayio/TileGrid.c
msgid "Tile height must exactly divide bitmap height"
@ -3106,7 +3102,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
#, c-format
msgid "data pin #%d in use"
msgstr ""
msgstr "data-пин #%d уже используется"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
@ -3685,6 +3681,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
@ -3825,7 +3825,7 @@ msgstr ""
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/I2CDisplay.c
#: shared-bindings/paralleldisplay/ParallelBus.c
msgid "no reset pin available"
msgstr ""
msgstr "нет доступного контакта сброса"
#: shared-module/sdcardio/SDCard.c
msgid "no response from SD card"
@ -4202,12 +4202,12 @@ msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid "rgb_pins[%d] duplicates another pin assignment"
msgstr ""
msgstr "rgb_pins[%d] дублирует другое назначение пинов"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid "rgb_pins[%d] is not on the same port as clock"
msgstr ""
msgstr "rgb_pins[%d] не находится на том же порту, что и clock"
#: extmod/ulab/code/numpy/numerical.c
msgid "roll argument must be an ndarray"
@ -4685,7 +4685,6 @@ msgid "zi must be an ndarray"
msgstr ""
#: extmod/ulab/code/scipy/signal/signal.c
#, fuzzy
msgid "zi must be of float type"
msgstr "zi должно быть типа float"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-02-11 10:58+0000\n"
"PO-Revision-Date: 2022-02-15 03:38+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -3690,6 +3690,10 @@ msgstr "matematikdomänfel"
msgid "matrix is not positive definite"
msgstr "matrisen är inte positiv bestämd"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr "max_connections måste vara mellan 0 och 10"
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3648,6 +3648,10 @@ msgstr ""
msgid "matrix is not positive definite"
msgstr ""
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -3701,6 +3701,10 @@ msgstr "shùxué yù cuòwù"
msgid "matrix is not positive definite"
msgstr "jǔzhèn bùshì zhèngdìng de"
#: shared-bindings/wifi/Radio.c
msgid "max_connections must be between 0 and 10"
msgstr ""
#: ports/espressif/common-hal/_bleio/Descriptor.c
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c

View File

@ -307,7 +307,14 @@ $(BUILD)/esp-idf:
$(Q)$(MKDIR) -p $@
TARGET_SDKCONFIG = esp-idf-config/sdkconfig-$(IDF_TARGET).defaults
FLASH_SDKCONFIG = esp-idf-config/sdkconfig-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
UF2_BOOTLOADER ?= $(if $(filter $(IDF_TARGET),esp32s2 esp32s3),1)
ifeq ($(UF2_BOOTLOADER), 1)
FLASH_SDKCONFIG = esp-idf-config/sdkconfig-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
else
FLASH_SDKCONFIG = esp-idf-config/sdkconfig-$(CIRCUITPY_ESP_FLASH_SIZE)-no-uf2.defaults
endif
ifeq ($(DEBUG), 1)
DEBUG_SDKCONFIG = esp-idf-config/sdkconfig-debug.defaults
else
@ -388,10 +395,10 @@ FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE) --flash_freq $(CIRCUITPY_
ESPTOOL_FLAGS ?= --before=default_reset --after=no_reset
ifeq ($(IDF_TARGET),esp32c3)
all: $(BUILD)/firmware.bin
else
ifeq ($(UF2_BOOTLOADER),1)
all: $(BUILD)/firmware.bin $(BUILD)/firmware.uf2
else
all: $(BUILD)/firmware.bin
endif
.PHONY: esp-idf-stamp

View File

@ -32,10 +32,7 @@
#include "common-hal/microcontroller/Pin.h"
void board_init(void) {
// Turn on I2C
common_hal_never_reset_pin(&pin_GPIO7);
gpio_set_direction(7, GPIO_MODE_DEF_OUTPUT);
gpio_set_level(7, false);
reset_board();
}
bool board_requests_safe_mode(void) {

View File

@ -71,12 +71,13 @@ uint8_t display_init_sequence[] = {
void board_init(void) {
// I2C/TFT power pin
// Never reset the I2C/TFT power pin because doing so will reset the display.
// Instead, on reset set the default value and free the pin for user use.
// Relying on the normal pin reset would briefly float/pull the pin that
// could lead to a power brownout.
common_hal_never_reset_pin(&pin_GPIO21);
// Turn on TFT and I2C
gpio_set_direction(21, GPIO_MODE_DEF_OUTPUT);
gpio_set_level(21, true);
reset_board();
busio_spi_obj_t *spi = common_hal_board_create_spi(0);
displayio_fourwire_obj_t *bus = &displays[0].fourwire_bus;
@ -138,8 +139,13 @@ bool board_requests_safe_mode(void) {
}
void reset_board(void) {
// Turn on TFT and I2C
gpio_set_direction(21, GPIO_MODE_DEF_OUTPUT);
gpio_set_level(21, true);
free_pin_number(21);
}
void board_deinit(void) {
// TODO: Should we turn off the display when asleep?
}

View File

@ -0,0 +1,47 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 microDev
* Copyright (c) 2021 skieast/Bruce Segal
*
* 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/microcontroller/Pin.h"
#include "supervisor/board.h"
void board_init(void) {
// Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO20);
common_hal_never_reset_pin(&pin_GPIO21);
#endif
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,47 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 microDev
* Copyright (c) 2021 skieast/Bruce Segal
*
* 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.
*/
// Board setup
#define MICROPY_HW_BOARD_NAME "AITHinker ESP32-C3S_Kit_2M"
#define MICROPY_HW_MCU_NAME "ESP32-C3"
// Status LED
#define MICROPY_HW_LED_STATUS (&pin_GPIO19)
// Default bus pins
#define DEFAULT_UART_BUS_RX (&pin_GPIO20)
#define DEFAULT_UART_BUS_TX (&pin_GPIO21)
// Serial over UART
#define DEBUG_UART_RX DEFAULT_UART_BUS_RX
#define DEBUG_UART_TX DEFAULT_UART_BUS_TX
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO9)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x70010001
CIRCUITPY_CREATION_ID = 0x00100001
IDF_TARGET = esp32c3
INTERNAL_FLASH_FILESYSTEM = 1
CIRCUITPY_ESP_FLASH_MODE=dio
CIRCUITPY_ESP_FLASH_FREQ=80m
CIRCUITPY_ESP_FLASH_SIZE=2MB

View File

@ -0,0 +1,72 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 microDev
* Copyright (c) 2021 skieast/Bruce Segal
*
* 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/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_ADC), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_LED_YELLOW), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_LED_WHITE), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_LED_RED), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_LED_GREEN), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_LED_BLUE), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,5 @@
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="AIThinker-ESP32C3S-2M"
# end of LWIP

View File

@ -133,6 +133,10 @@ void claim_pin(const mcu_pin_obj_t *pin) {
in_use[pin->number / 32] |= (1 << (pin->number % 32));
}
void free_pin_number(gpio_num_t pin_number) {
in_use[pin_number / 32] &= ~(1 << (pin_number % 32));
}
void common_hal_mcu_pin_claim(const mcu_pin_obj_t *pin) {
claim_pin(pin);
}

View File

@ -39,6 +39,8 @@ void common_hal_reset_pin(const mcu_pin_obj_t *pin);
void common_hal_never_reset_pin(const mcu_pin_obj_t *pin);
void claim_pin(const mcu_pin_obj_t *pin);
void claim_pin_number(gpio_num_t pin_number);
// Free the pin without resetting it.
void free_pin_number(gpio_num_t pin_number);
bool pin_number_is_free(gpio_num_t pin_number);
void never_reset_pin_number(gpio_num_t pin_number);

View File

@ -0,0 +1,7 @@
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
# bootloader.bin,, 0x1000, 32K
# partition table,, 0x8000, 4K
nvs, data, nvs, 0x9000, 20K,
app, app, factory, 0x10000, 1408K,
user_fs, data, fat, 0x170000, 576K,
1 # ESP-IDF Partition Table
2 # Name, Type, SubType, Offset, Size, Flags
3 # bootloader.bin,, 0x1000, 32K
4 # partition table,, 0x8000, 4K
5 nvs, data, nvs, 0x9000, 20K,
6 app, app, factory, 0x10000, 1408K,
7 user_fs, data, fat, 0x170000, 576K,

View File

@ -0,0 +1,7 @@
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
# bootloader.bin,, 0x1000, 32K
# partition table,, 0x8000, 4K
nvs, data, nvs, 0x9000, 20K,
app, app, factory, 0x10000, 2048K,
user_fs, data, fat, 0x210000, 1984K,
1 # ESP-IDF Partition Table
2 # Name, Type, SubType, Offset, Size, Flags
3 # bootloader.bin,, 0x1000, 32K
4 # partition table,, 0x8000, 4K
5 nvs, data, nvs, 0x9000, 20K,
6 app, app, factory, 0x10000, 2048K,
7 user_fs, data, fat, 0x210000, 1984K,

View File

@ -0,0 +1,18 @@
#
# Serial flasher config
#
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE="2MB"
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
# end of Serial flasher config
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="esp-idf-config/partitions-2MB-no-uf2.csv"
#
# Partition Table
#
CONFIG_PARTITION_TABLE_FILENAME="esp-idf-config/partitions-2MB-no-uf2.csv"
# end of Partition Table

View File

@ -0,0 +1,18 @@
#
# Serial flasher config
#
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
# end of Serial flasher config
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="esp-idf-config/partitions-4MB-no-uf2.csv"
#
# Partition Table
#
CONFIG_PARTITION_TABLE_FILENAME="esp-idf-config/partitions-4MB-no-uf2.csv"
# end of Partition Table

View File

@ -141,8 +141,7 @@ static inline mp_obj_t mp_obj_cast_to_native_base_dyn(mp_obj_t self_in, mp_const
if (MP_OBJ_FROM_PTR(self_type) == native_type) {
return self_in;
}
const void *parent = mp_type_get_parent_slot(self_type);
if (parent != native_type) {
if (self_type->parent != native_type) {
// The self_in object is not a direct descendant of native_type, so fail the cast.
// This is a very simple version of mp_obj_is_subclass_fast that could be improved.
return MP_OBJ_NULL;

View File

@ -1,29 +1,25 @@
"""
Generate header file with macros defining MicroPython version info.
This script works with Python 2.6, 2.7, 3.3 and 3.4.
This script works with Python 3.7 and newer
"""
from __future__ import print_function
import sys
import os
import pathlib
import datetime
import subprocess
tools_describe = str(pathlib.Path(__file__).parent.parent / "tools/describe")
def get_version_info_from_git():
# Python 2.6 doesn't have check_output, so check for that
try:
subprocess.check_output
subprocess.check_call
except AttributeError:
return None
# Note: git describe doesn't work if no tag is available
try:
git_tag = subprocess.check_output(
["git", "describe", "--tags", "--dirty", "--always", "--match", "[1-9].*"],
[tools_describe],
stderr=subprocess.STDOUT,
universal_newlines=True,
).strip()

View File

@ -21,3 +21,6 @@ black
# for combining the Nordic SoftDevice with CircuitPython
intelhex
# for building & testing natmods
pyelftools

View File

@ -43,6 +43,7 @@ setup(
"root": "..",
"relative_to": __file__,
"local_scheme": local_scheme,
"git_describe_command": "tools/describe",
},
zip_safe=False,
)

View File

@ -87,11 +87,11 @@ STATIC int put_utf8(char *buf, int u) {
}
uint16_t decompress_length(const compressed_string_t *compressed) {
if (compress_max_length_bits <= 8) {
return 1 + (compressed->data >> (8 - compress_max_length_bits));
} else {
return 1 + ((compressed->data * 256 + compressed->tail[0]) >> (16 - compress_max_length_bits));
}
#if (compress_max_length_bits <= 8)
return 1 + (compressed->data >> (8 - compress_max_length_bits));
#else
return 1 + ((compressed->data * 256 + compressed->tail[0]) >> (16 - compress_max_length_bits));
#endif
}
char *decompress(const compressed_string_t *compressed, char *decompressed) {

View File

@ -9,9 +9,6 @@ import subprocess
import sys
import argparse
sys.path.append("../tools")
import pyboard
# Paths for host executables
CPYTHON3 = os.getenv("MICROPY_CPYTHON3", "python3")
MICROPYTHON = os.getenv("MICROPY_MICROPYTHON", "../ports/unix/micropython-coverage")
@ -178,6 +175,10 @@ def main():
target_truth = TargetSubprocess([CPYTHON3])
if args.pyboard:
global pyboard
sys.path.append("../tools")
import pyboard
target = TargetPyboard(pyboard.Pyboard(args.device))
else:
target = TargetSubprocess([MICROPYTHON])

View File

@ -70,6 +70,7 @@ extension_by_board = {
"meowbit_v121": UF2,
# esp32c3
"ai_thinker_esp32-c3s": BIN,
"ai_thinker_esp32-c3s-2m": BIN,
"espressif_esp32c3_devkitm_1_n4": BIN,
"microdev_micro_c3": BIN,
# broadcom

2
tools/describe Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
git describe --first-parent --dirty --tags --always --match "[1-9].*"