Merge remote-tracking branch 'upstream/master' into stm32-LSE-startup-fix

This commit is contained in:
Lucian Copeland 2020-06-04 16:15:38 -04:00
commit a0977cac7b
366 changed files with 3787 additions and 1699 deletions

24
.github/workflows/pre-commit.yml vendored Normal file
View File

@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: Copyright (c) 2019 Anthony Sottile
#
# SPDX-License-Identifier: MIT
name: pre-commit
on:
pull_request:
push:
branches: [master]
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
- name: set PY
run: echo "::set-env name=PY::$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
- uses: actions/cache@v1
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- uses: pre-commit/action@v1.1.0

13
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,13 @@
# SPDX-FileCopyrightText: 2020 Diego Elio Pettenò
#
# SPDX-License-Identifier: Unlicense
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
exclude: '^(tests/.*\.exp|tests/cmdline/.*|tests/.*/data/.*)'
- id: trailing-whitespace
exclude: '^(tests/.*\.exp|tests/cmdline/.*|tests/.*/data/.*)'

View File

@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2014 Coraline Ada Ehmke
SPDX-FileCopyrightText: 2019 Kattni Rembor for Adafruit Industries
SPDX-License-Identifier: CC-BY-4.0
-->
# Adafruit Community Code of Conduct
## Our Pledge

View File

@ -202,22 +202,37 @@ pseudoxml:
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
# phony target so we always run
.PHONY: all-source
all-source:
locale/circuitpython.pot: all-source
find $(TRANSLATE_SOURCES) -iname "*.c" -print | (LC_ALL=C sort) | xgettext -f- -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale
# Historically, `make translate` updated the .pot file and ran msgmerge.
# However, this was a frequent source of merge conflicts. Weblate can perform
# msgmerge, so make translate merely update the translation template file.
.PHONY: translate
translate: locale/circuitpython.pot
# Note that normally we rely on weblate to perform msgmerge. This reduces the
# chance of a merge conflict between developer changes (that only add and
# remove source strings) and weblate changes (that only add and remove
# translated strings from po files). However, in case this is legitimately
# needed we preserve a rule to do it.
.PHONY: msgmerge
msgmerge:
for po in $(shell ls locale/*.po); do msgmerge -U $$po -s --no-fuzzy-matching --add-location=file locale/circuitpython.pot; done
merge-translate:
git merge HEAD 1>&2 2> /dev/null; test $$? -eq 128
rm locale/*~ || true
git checkout --ours -- locale/*
git checkout --theirs -- locale/*
make translate
check-translate: locale/circuitpython.pot $(wildcard locale/*.po)
$(PYTHON) tools/check_translations.py $^
.PHONY: check-translate
check-translate:
find $(TRANSLATE_SOURCES) -iname "*.c" -print | (LC_ALL=C sort) | xgettext -f- -L C -s --add-location=file --keyword=translate -o circuitpython.pot.tmp -p locale
$(PYTHON) tools/check_translations.py locale/circuitpython.pot.tmp locale/circuitpython.pot; status=$$?; rm -f locale/circuitpython.pot.tmp; exit $$status
stubs:
@mkdir -p circuitpython-stubs

View File

@ -244,4 +244,3 @@ void wiz_recv_ignore(uint8_t sn, uint16_t len)
ptr += len;
setSn_RX_RD(sn,ptr);
}

@ -1 +1 @@
Subproject commit cf61d728e70b9ec57e5711b40540793a89296f5d
Subproject commit 0394801933f6e68a5bc7cdb0da76c7884e8cf70a

View File

@ -8,5 +8,3 @@ int __signbitd(double x)
} y = { x };
return y.i>>63;
}

View File

@ -25,4 +25,3 @@ $(BUILD)/memzip-files.c: $(shell find ${MEMZIP_DIR} -type f)
@$(ECHO) "Creating $@"
$(Q)$(PYTHON) $(MAKE_MEMZIP) --zip-file $(BUILD)/memzip-files.zip --c-file $@ $(MEMZIP_DIR)
```

View File

@ -16,4 +16,3 @@ mp_lexer_t *mp_lexer_new_from_file(const char *filename)
return mp_lexer_new_from_str_len(qstr_from_str(filename), (const char *)data, (mp_uint_t)len, 0);
}

View File

@ -76,4 +76,3 @@ def main():
if __name__ == "__main__":
main()

View File

@ -385,4 +385,3 @@ WCHAR ff_wtoupper ( /* Returns upper converted character */
return chr;
}

View File

@ -15,4 +15,3 @@ You can get the latest version using Git, by pulling from
Patches are welcome. Patches that turn this from tinytest to hugetest
will not be applied. If you want a huge test framework, use CUnit.

View File

@ -474,4 +474,3 @@ tinytest_set_test_skipped_(void)
if (cur_test_outcome==OK)
cur_test_outcome = SKIP;
}

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -885,7 +885,7 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -975,7 +975,8 @@ msgstr "Pin untuk channel kanan tidak valid"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Pin-pin tidak valid"
@ -1372,7 +1373,8 @@ msgid "Running in safe mode! Not running saved code.\n"
msgstr ""
"Berjalan di mode aman(safe mode)! tidak menjalankan kode yang tersimpan.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA atau SCL membutuhkan pull up"
@ -1667,6 +1669,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "PERINGATAN: Nama file kode anda mempunyai dua ekstensi\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2109,6 +2131,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2241,6 +2271,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2294,6 +2332,10 @@ msgstr "fungsi diharapkan setidaknya %d argumen, hanya mendapatkan %d"
msgid "function got multiple values for argument '%q'"
msgstr "fungsi mendapatkan nilai ganda untuk argumen '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2380,6 +2422,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler harus sebuah fungsi"
@ -2424,6 +2470,10 @@ msgstr ""
msgid "integer required"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3054,6 +3104,10 @@ msgstr ""
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3208,6 +3262,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3220,6 +3278,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3232,6 +3294,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 20:51-0500\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -874,7 +874,7 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -964,7 +964,8 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr ""
@ -1356,7 +1357,8 @@ msgstr ""
msgid "Running in safe mode! Not running saved code.\n"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
@ -1650,6 +1652,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2085,6 +2107,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2217,6 +2247,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2270,6 +2308,10 @@ msgstr ""
msgid "function got multiple values for argument '%q'"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2356,6 +2398,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
@ -2400,6 +2446,10 @@ msgstr ""
msgid "integer required"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3029,6 +3079,10 @@ msgstr ""
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3182,6 +3236,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3194,6 +3252,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3206,6 +3268,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 20:51-0500\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -882,7 +882,7 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -972,7 +972,8 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr ""
@ -1364,7 +1365,8 @@ msgstr ""
msgid "Running in safe mode! Not running saved code.\n"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
@ -1658,6 +1660,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2093,6 +2115,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2225,6 +2255,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2278,6 +2316,10 @@ msgstr ""
msgid "function got multiple values for argument '%q'"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2364,6 +2406,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
@ -2408,6 +2454,10 @@ msgstr ""
msgid "integer required"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3037,6 +3087,10 @@ msgstr ""
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3190,6 +3244,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3202,6 +3260,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3214,6 +3276,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 20:51-0500\n"
"PO-Revision-Date: 2020-05-23 16:13+0000\n"
"Last-Translator: Timon <timon@skerutsch.de>\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-05-29 17:42+0000\n"
"Last-Translator: Thomas Friehoff <thomas.friehoff@googlemail.com>\n"
"Language-Team: German <https://later.unpythonic.net/projects/circuitpython/"
"circuitpython-master/de/>\n"
"Language: de_DE\n"
@ -383,7 +383,7 @@ msgstr "Bit depth muss ein Vielfaches von 8 sein."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
msgstr "Sowohl RX als auch TX sind zu Flusssteuerung erforderlich"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
@ -652,7 +652,7 @@ msgstr "DAC Kanal Intialisierungs Fehler"
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Device Init Error"
msgstr "DAC Device Init Error"
msgstr "DAC Device Initialisierungs-Fehler"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "DAC already in use"
@ -901,7 +901,7 @@ msgstr "Ungültige BMP-Datei"
msgid "Invalid DAC pin supplied"
msgstr "Ungültiger DAC-Pin angegeben"
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr "Ungültige I2C-Pinauswahl"
@ -991,7 +991,8 @@ msgstr "Ungültiger Pin für rechten Kanal"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Ungültige Pins"
@ -1275,7 +1276,7 @@ msgstr "Pin hat keine ADC Funktionalität"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only"
msgstr ""
msgstr "Pin kann nur als Eingang verwendet werden"
#: ports/atmel-samd/common-hal/countio/Counter.c
msgid "Pin must support hardware interrupts"
@ -1396,7 +1397,8 @@ msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA oder SCL brauchen pull up"
@ -1709,6 +1711,26 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
"WARNUNG: Der Dateiname deines Programms hat zwei Dateityperweiterungen\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2163,6 +2185,14 @@ msgstr "Eingabearray konnte nicht aus der Form übertragen werden"
msgid "could not invert Vandermonde matrix"
msgstr "Vandermonde-Matrix konnte nicht invertiert werden"
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr "ddof muss kleiner als die Länge des Datensatzes sein"
@ -2297,6 +2327,14 @@ msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
msgid "filesystem must provide mount method"
msgstr "Das Dateisystem muss eine Mount-Methode bereitstellen"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr "Das erste Argument muss iterierbar sein"
@ -2350,6 +2388,10 @@ msgstr "Funktion erwartet maximal %d Argumente, aber hat %d erhalten"
msgid "function got multiple values for argument '%q'"
msgstr "Funktion hat mehrere Werte für Argument '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr "Die Funktion ist nur für Skalare und Ndarrays implementiert"
@ -2437,6 +2479,10 @@ msgstr "Indizes müssen Integer sein"
msgid "indices must be integers, slices, or Boolean lists"
msgstr "Indizes müssen Integer, Slices oder Boolesche Listen sein"
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler muss eine function sein"
@ -2481,6 +2527,10 @@ msgstr "int() arg 2 muss >= 2 und <= 36 sein"
msgid "integer required"
msgstr "integer erforderlich"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -2965,7 +3015,7 @@ msgstr "die ersuchte Länge ist %d, aber das Objekt hat eine Länge von %d"
#: py/compile.c
msgid "return annotation must be an identifier"
msgstr "return annotation muss ein identifier sein"
msgstr "Rückgabewert-Beschreibung muss ein Identifier sein"
#: py/emitnative.c
msgid "return expected '%q' but got '%q'"
@ -3123,6 +3173,10 @@ msgstr "threshold muss im Intervall 0-65536 liegen"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() nimmt eine 9-Sequenz an"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr "Das Zeitlimit muss 0,0-100,0 Sekunden betragen"
@ -3280,6 +3334,10 @@ msgstr "Wert muss in %d Byte(s) passen"
msgid "value_count must be > 0"
msgstr "value_count muss größer als 0 sein"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr "Fenster muss <= Intervall sein"
@ -3292,6 +3350,10 @@ msgstr "falscher Argumenttyp"
msgid "wrong index type"
msgstr "falscher Indextyp"
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "falsche Anzahl an Argumenten"
@ -3304,6 +3366,10 @@ msgstr "falsche Anzahl zu entpackender Werte"
msgid "wrong operand type"
msgstr "falscher Operandentyp"
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x Wert außerhalb der Grenzen"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 08:56-0500\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -874,7 +874,7 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -964,7 +964,8 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr ""
@ -1356,7 +1357,8 @@ msgstr ""
msgid "Running in safe mode! Not running saved code.\n"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
@ -2085,6 +2087,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2217,6 +2227,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2270,6 +2288,10 @@ msgstr ""
msgid "function got multiple values for argument '%q'"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2356,6 +2378,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
@ -2400,6 +2426,10 @@ msgstr ""
msgid "integer required"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3194,6 +3224,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3206,6 +3240,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 08:56-0500\n"
"PO-Revision-Date: 2020-03-30 22:11+0000\n"
"Last-Translator: Tannewt <devnull@unpythonic.net>\n"
"Language-Team: English <https://later.unpythonic.net/projects/circuitpython/"
@ -883,7 +883,7 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -973,7 +973,8 @@ msgstr "Belay that! Invalid pin for starboard-side channel"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr ""
@ -1365,7 +1366,8 @@ msgstr "Runnin' in safe mode! Auto-reload be off.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Runnin' in safe mode! Nay runnin' saved code.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
@ -2094,6 +2096,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2226,6 +2236,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2279,6 +2297,10 @@ msgstr ""
msgid "function got multiple values for argument '%q'"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2365,6 +2387,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
@ -2409,6 +2435,10 @@ msgstr ""
msgid "integer required"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3203,6 +3233,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3215,6 +3249,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-05-17 20:56+0000\n"
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
"Language-Team: \n"
@ -883,7 +883,7 @@ msgstr "Archivo BMP inválido"
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -973,7 +973,8 @@ msgstr "Pin inválido para canal derecho"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "pines inválidos"
@ -1374,7 +1375,8 @@ msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA o SCL necesitan una pull up"
@ -1669,6 +1671,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "ADVERTENCIA: El nombre de archivo de tu código tiene dos extensiones\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2116,6 +2138,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2250,6 +2280,14 @@ msgstr "el archivo deberia ser una archivo abierto en modo byte"
msgid "filesystem must provide mount method"
msgstr "sistema de archivos debe proporcionar método de montaje"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2303,6 +2341,10 @@ msgstr "la función esperaba minimo %d argumentos, tiene %d"
msgid "function got multiple values for argument '%q'"
msgstr "la función tiene múltiples valores para el argumento '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2389,6 +2431,10 @@ msgstr "indices deben ser enteros"
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "ensamblador en línea debe ser una función"
@ -2433,6 +2479,10 @@ msgstr "int() arg 2 debe ser >= 2 y <= 36"
msgid "integer required"
msgstr "Entero requerido"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3072,6 +3122,10 @@ msgstr "limite debe ser en el rango 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() toma un sequencio 9"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3225,6 +3279,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3237,6 +3295,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "numero erroneo de argumentos"
@ -3249,6 +3311,10 @@ msgstr "numero erroneo de valores a descomprimir"
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n"
@ -890,7 +890,7 @@ msgstr "Mali ang BMP file"
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -980,7 +980,8 @@ msgstr "Mali ang pin para sa kanang channel"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Mali ang pins"
@ -1379,7 +1380,8 @@ msgstr "Tumatakbo sa safe mode! Awtomatikong pag re-reload ay OFF.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "Kailangan ng pull up resistors ang SDA o SCL"
@ -1677,6 +1679,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "BABALA: Ang pangalan ng file ay may dalawang extension\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2125,6 +2147,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2262,6 +2292,14 @@ msgstr "file ay dapat buksan sa byte mode"
msgid "filesystem must provide mount method"
msgstr "ang filesystem dapat mag bigay ng mount method"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2315,6 +2353,10 @@ msgstr "function na inaasahang %d ang argumento, ngunit %d ang nakuha"
msgid "function got multiple values for argument '%q'"
msgstr "ang function ay nakakuha ng maraming values para sa argument '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2402,6 +2444,10 @@ msgstr "ang mga indeks ay dapat na integer"
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler ay dapat na function"
@ -2446,6 +2492,10 @@ msgstr "int() arg 2 ay dapat >=2 at <= 36"
msgid "integer required"
msgstr "kailangan ng int"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3084,6 +3134,10 @@ msgstr "ang threshold ay dapat sa range 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() kumukuha ng 9-sequence"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3238,6 +3292,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3250,6 +3308,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "mali ang bilang ng argumento"
@ -3262,6 +3324,10 @@ msgstr "maling number ng value na i-unpack"
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"PO-Revision-Date: 2020-05-26 19:37+0000\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-06-02 19:50+0000\n"
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
"Language-Team: French <https://later.unpythonic.net/projects/circuitpython/"
"circuitpython-master/fr/>\n"
@ -190,12 +190,12 @@ msgstr "l'objet '%s' n'est pas un itérateur"
#: py/objtype.c py/runtime.c
#, c-format
msgid "'%s' object is not callable"
msgstr "objet '%s' n'est pas appelable"
msgstr "l'objet '%s' n'est pas appelable"
#: py/runtime.c
#, c-format
msgid "'%s' object is not iterable"
msgstr "objet '%s' n'est pas itérable"
msgstr "l'objet '%s' n'est pas itérable"
#: py/obj.c
#, c-format
@ -388,7 +388,7 @@ msgstr "La profondeur de bit doit être un multiple de 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
msgstr "RX et TX requis pour le contrôle de flux"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
@ -905,7 +905,7 @@ msgstr "Fichier BMP invalide"
msgid "Invalid DAC pin supplied"
msgstr "Broche DAC non valide fournie"
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr "Sélection de broches I2C non valide"
@ -995,7 +995,8 @@ msgstr "Broche invalide pour le canal droit"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Broches invalides"
@ -1281,7 +1282,7 @@ msgstr "La broche ne peut être utilisée pour l'ADC"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only"
msgstr ""
msgstr "La broche est entrée uniquement"
#: ports/atmel-samd/common-hal/countio/Counter.c
msgid "Pin must support hardware interrupts"
@ -1400,7 +1401,8 @@ msgstr "Mode sans-échec ! Auto-chargement désactivé.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Mode sans-échec ! Le code sauvegardé n'est pas éxecuté.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
@ -1711,6 +1713,30 @@ msgstr "La lecture de la tension a expiré"
msgid "WARNING: Your code filename has two extensions\n"
msgstr "ATTENTION : le nom de fichier de votre code a deux extensions\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
"WatchDogTimer ne peut pas être désinitialisé une fois que le mode est réglé "
"sur RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr "WatchDogTimer n'est pas en cours d'exécution"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
"WatchDogTimer.mode ne peut pas être changé une fois réglé pour WatchDogMode."
"RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr "WatchDogTimer.timeout doit être supérieur à 0"
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2163,6 +2189,14 @@ msgstr "n'a pas pu diffuser le tableau d'entrée à partir de la forme"
msgid "could not invert Vandermonde matrix"
msgstr "n'a pas pu inverser la matrice Vandermonde"
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr "les données doivent être les objets iterables"
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr "les données doivent être de longueur égale"
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr "ddof doit être inférieur à la longueur de l'ensemble de données"
@ -2299,6 +2333,14 @@ msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
msgid "filesystem must provide mount method"
msgstr "le system de fichier doit fournir une méthode 'mount'"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr "le premier argument doit être un appelable"
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr "le premier argument doit être une fonction"
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr "le premier argument doit être un itérable"
@ -2352,6 +2394,10 @@ msgstr "la fonction attendait au plus %d arguments, reçu %d"
msgid "function got multiple values for argument '%q'"
msgstr "la fonction a reçu plusieurs valeurs pour l'argument '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr "la fonction a le même signe aux extrémités de lintervalle"
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2440,6 +2486,10 @@ msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
"les indices doivent être des entiers, des tranches ou des listes booléennes"
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr "les valeurs initiales doivent être itérables"
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "l'assembleur doit être une fonction"
@ -2484,6 +2534,10 @@ msgstr "l'argument 2 de int() doit être >=2 et <=36"
msgid "integer required"
msgstr "entier requis"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr "interp est défini pour les tableaux 1D de longueur égale"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3125,6 +3179,10 @@ msgstr "le seuil doit être dans la gamme 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() prend une séquence de longueur 9"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "le délai d'expiration a dépassé la valeur maximale prise en charge"
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr "le délai doit être compris entre 0.0 et 100.0 secondes"
@ -3278,6 +3336,10 @@ msgstr "la valeur doit tenir dans %d octet(s)"
msgid "value_count must be > 0"
msgstr "'value_count' doit être > 0"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr "watchdog timeout doit être supérieur à 0"
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr "la fenêtre doit être <= intervalle"
@ -3290,6 +3352,10 @@ msgstr "type d'argument incorrect"
msgid "wrong index type"
msgstr "type d'index incorrect"
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr "type d'entrée incorrect"
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "mauvais nombres d'arguments"
@ -3302,6 +3368,10 @@ msgstr "mauvais nombre de valeurs à dégrouper"
msgid "wrong operand type"
msgstr "type d'opérande incorrect"
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr "type de sortie incorrect"
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "valeur x hors limites"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n"
@ -890,7 +890,7 @@ msgstr "File BMP non valido"
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -982,7 +982,8 @@ msgstr "Pin non valido per il canale destro"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Pin non validi"
@ -1388,7 +1389,8 @@ msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA o SCL necessitano un pull-up"
@ -1686,6 +1688,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "ATTENZIONE: Il nome del sorgente ha due estensioni\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2127,6 +2149,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2263,6 +2293,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr "il filesystem deve fornire un metodo di mount"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2316,6 +2354,10 @@ msgstr "la funzione prevede al massimo %d argmoneti, ma ne ha ricevuti %d"
msgid "function got multiple values for argument '%q'"
msgstr "la funzione ha ricevuto valori multipli per l'argomento '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2403,6 +2445,10 @@ msgstr "gli indici devono essere interi"
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler deve essere una funzione"
@ -2447,6 +2493,10 @@ msgstr "il secondo argomanto di int() deve essere >= 2 e <= 36"
msgid "integer required"
msgstr "intero richiesto"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3091,6 +3141,10 @@ msgstr "la soglia deve essere nell'intervallo 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3245,6 +3299,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3257,6 +3315,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "numero di argomenti errato"
@ -3269,6 +3331,10 @@ msgstr "numero di valori da scompattare non corretto"
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -878,7 +878,7 @@ msgstr ""
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -968,7 +968,8 @@ msgstr "오른쪽 채널 핀이 잘못되었습니다"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "핀이 유효하지 않습니다"
@ -1360,7 +1361,8 @@ msgstr ""
msgid "Running in safe mode! Not running saved code.\n"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
@ -1655,6 +1657,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2090,6 +2112,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2222,6 +2252,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2275,6 +2313,10 @@ msgstr ""
msgid "function got multiple values for argument '%q'"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2361,6 +2403,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
@ -2405,6 +2451,10 @@ msgstr ""
msgid "integer required"
msgstr "정수가 필요합니다"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3034,6 +3084,10 @@ msgstr ""
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3187,6 +3241,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3199,6 +3257,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3211,6 +3273,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 20:51-0500\n"
"PO-Revision-Date: 2020-05-25 13:52+0000\n"
"Last-Translator: Dustin Watts <dustin_watts@yahoo.com>\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-06-02 19:50+0000\n"
"Last-Translator: _fonzlate <vooralfred@gmail.com>\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
@ -380,7 +380,7 @@ msgstr "Bit diepte moet een meervoud van 8 zijn."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
msgstr "RX en TX zijn beide vereist voor stroomregeling"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
@ -894,7 +894,7 @@ msgstr "Ongeldig BMP bestand"
msgid "Invalid DAC pin supplied"
msgstr "Ongeldige DAC pin opgegeven"
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr "Ongeldige I2C pin selectie"
@ -984,7 +984,8 @@ msgstr "Ongeldige pin voor rechter kanaal"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Ongeldige pinnen"
@ -1269,7 +1270,7 @@ msgstr "Pin heeft geen ADC mogelijkheden"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only"
msgstr ""
msgstr "Pin kan alleen voor invoer gebruikt worden"
#: ports/atmel-samd/common-hal/countio/Counter.c
msgid "Pin must support hardware interrupts"
@ -1390,7 +1391,8 @@ msgstr "Draaiende in veilige modus! Auto-herlaad is uit.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Draaiende in veilige modus! Opgeslagen code wordt niet uitgevoerd.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA of SCL hebben een pullup nodig"
@ -1694,6 +1696,30 @@ msgstr "Voltage lees time-out"
msgid "WARNING: Your code filename has two extensions\n"
msgstr "WAARSCHUWING: De bestandsnaam van de code heeft twee extensies\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
"WatchDogTimer kan niet worden gedeïnitialiseerd zodra de modus in ingesteld "
"op RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr "WatchDogTimer is momenteel niet actief"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
"WatchDogTimer.mode kan niet worden gewijzigd zodra de modus is ingesteld op "
"WatchDogMode.RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr "WatchDogTimer.timeout moet groter dan 0 zijn"
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr "Watchdog-timer verstreken."
#: py/builtinhelp.c
#, c-format
msgid ""
@ -1769,7 +1795,7 @@ msgstr "argsort argument moet een ndarray zijn"
#: py/runtime.c
msgid "argument has wrong type"
msgstr "argument heeft het verkeerde type"
msgstr "argument heeft onjuist type"
#: py/argcheck.c shared-bindings/_stage/__init__.c
#: shared-bindings/digitalio/DigitalInOut.c shared-bindings/gamepad/GamePad.c
@ -2136,6 +2162,14 @@ msgstr "kon de invoerarray niet vanuit vorm uitzenden"
msgid "could not invert Vandermonde matrix"
msgstr "kon de Vandermonde matrix niet omkeren"
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr "data moet itereerbaar zijn"
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr "data moet van gelijke lengte zijn"
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr "ddof kleiner dan de lengte van de data set"
@ -2270,6 +2304,14 @@ msgstr "bestand moet een bestand zijn geopend in byte modus"
msgid "filesystem must provide mount method"
msgstr "bestandssysteem moet een mount methode bieden"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr "eerste argument moet een aanroepbare (callable) zijn"
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr "eerste argument moet een functie zijn"
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr "eerst argument moet een iterabel zijn"
@ -2323,6 +2365,10 @@ msgstr "functie verwachtte op zijn meest %d argumenten, maar kreeg %d"
msgid "function got multiple values for argument '%q'"
msgstr "functie kreeg meedere waarden voor argument '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr "functie heeft hetzelfde teken aan beide uiteinden van het interval"
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr "funtie is alleen geïmplementeerd voor scalars en ndarrays"
@ -2410,6 +2456,10 @@ msgstr "indices moeten integers zijn"
msgid "indices must be integers, slices, or Boolean lists"
msgstr "indices moeten integers, segmenten (slices) of Boolean lijsten zijn"
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr "oorspronkelijke waarden moeten itereerbaar zijn"
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler moet een functie zijn"
@ -2454,6 +2504,10 @@ msgstr "int() argument 2 moet >=2 en <= 36 zijn"
msgid "integer required"
msgstr "integer vereist"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr "interp is gedefinieerd for eendimensionale arrays van gelijke lengte"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3089,6 +3143,10 @@ msgstr "drempelwaarde moet in het bereik 0-65536 liggen"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() accepteert een 9-rij"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "time-outduur is groter dan de ondersteunde maximale waarde"
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr "timeout moet tussen 0.0 en 100.0 seconden zijn"
@ -3242,6 +3300,10 @@ msgstr "waarde moet in %d byte(s) passen"
msgid "value_count must be > 0"
msgstr "value_count moet groter dan 0 zijn"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr "watchdog time-out moet groter zijn dan 0"
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr "window moet <= interval zijn"
@ -3254,6 +3316,10 @@ msgstr "onjuist argumenttype"
msgid "wrong index type"
msgstr "onjuist indextype"
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr "onjuist invoertype"
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "onjuist aantal argumenten"
@ -3266,6 +3332,10 @@ msgstr "verkeerd aantal waarden om uit te pakken"
msgid "wrong operand type"
msgstr "verkeerd operandtype"
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr "onjuist uitvoer type"
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x-waarde buiten bereik"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
"Language-Team: pl\n"
@ -879,7 +879,7 @@ msgstr "Zły BMP"
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -969,7 +969,8 @@ msgstr "Zła nóżka dla prawego kanału"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Złe nóżki"
@ -1361,7 +1362,8 @@ msgstr "Uruchomiony tryb bezpieczeństwa! Samo-przeładowanie wyłączone.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA lub SCL wymagają podciągnięcia"
@ -1655,6 +1657,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "UWAGA: Nazwa pliku ma dwa rozszerzenia\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2093,6 +2115,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2226,6 +2256,14 @@ msgstr "file musi być otwarte w trybie bajtowym"
msgid "filesystem must provide mount method"
msgstr "system plików musi mieć metodę mount"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2279,6 +2317,10 @@ msgstr "funkcja bierze najwyżej %d argumentów, jest %d"
msgid "function got multiple values for argument '%q'"
msgstr "funkcja dostała wiele wartości dla argumentu '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2365,6 +2407,10 @@ msgstr "indeksy muszą być całkowite"
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "wtrącony asembler musi być funkcją"
@ -2409,6 +2455,10 @@ msgstr "argument 2 do int() busi być pomiędzy 2 a 36"
msgid "integer required"
msgstr "wymagana liczba całkowita"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3040,6 +3090,10 @@ msgstr "threshold musi być w zakresie 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3193,6 +3247,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr "value_count musi być > 0"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3205,6 +3263,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "zła liczba argumentów"
@ -3217,6 +3279,10 @@ msgstr "zła liczba wartości do rozpakowania"
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x poza zakresem"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -883,7 +883,7 @@ msgstr "Arquivo BMP inválido"
msgid "Invalid DAC pin supplied"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr ""
@ -975,7 +975,8 @@ msgstr "Pino inválido para canal direito"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Pinos inválidos"
@ -1373,7 +1374,8 @@ msgstr "Rodando em modo seguro! Atualização automática está desligada.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Rodando em modo seguro! Não está executando o código salvo.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA ou SCL precisa de um pull up"
@ -1668,6 +1670,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "AVISO: Seu arquivo de código tem duas extensões\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2106,6 +2128,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2239,6 +2269,14 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr "sistema de arquivos deve fornecer método de montagem"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2292,6 +2330,10 @@ msgstr "função esperada na maioria dos %d argumentos, obteve %d"
msgid "function got multiple values for argument '%q'"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2378,6 +2420,10 @@ msgstr ""
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
@ -2422,6 +2468,10 @@ msgstr ""
msgid "integer required"
msgstr "inteiro requerido"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3052,6 +3102,10 @@ msgstr "Limite deve estar no alcance de 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr ""
@ -3206,6 +3260,10 @@ msgstr ""
msgid "value_count must be > 0"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr ""
@ -3218,6 +3276,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@ -3230,6 +3292,10 @@ msgstr ""
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"PO-Revision-Date: 2020-05-20 18:32+0000\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-06-02 21:42+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -33,7 +33,7 @@ msgid ""
"https://github.com/adafruit/circuitpython/issues\n"
msgstr ""
"\n"
"Skapa ett ärende med innehållet i din CIRCUITPY på\n"
"Vänligen skapa ett ärende med innehållet i din CIRCUITPY-enhet på\n"
"https://github.com/adafruit/circuitpython/issues\n"
#: supervisor/shared/safe_mode.c
@ -42,7 +42,7 @@ msgid ""
"To exit, please reset the board without "
msgstr ""
"\n"
"För att avsluta, resetta kortet utan "
"För att avsluta, gör reset på kortet utan "
#: py/obj.c
msgid " File \"%q\""
@ -108,7 +108,7 @@ msgstr "'%q' argument krävs"
#: py/emitinlinethumb.c py/emitinlinextensa.c
#, c-format
msgid "'%s' expects a label"
msgstr "'%s' förväntar sig en etikett"
msgstr "'%s' förväntar sig en label"
#: py/emitinlinethumb.c py/emitinlinextensa.c
#, c-format
@ -380,7 +380,7 @@ msgstr "Bitdjupet måste vara multipel av 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
msgstr "Både RX och TX krävs för handskakning"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
@ -893,7 +893,7 @@ msgstr "Ogiltig BMP-fil"
msgid "Invalid DAC pin supplied"
msgstr "Ogiltig DAC-pinne angiven"
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr "Ogiltigt val av I2C-pinne"
@ -983,7 +983,8 @@ msgstr "Ogiltig pinne för höger kanal"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Ogiltiga pinnar"
@ -1267,7 +1268,7 @@ msgstr "Pinnen har inte ADC-funktionalitet"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pin is input only"
msgstr ""
msgstr "Pinnen är enbart ingång"
#: ports/atmel-samd/common-hal/countio/Counter.c
msgid "Pin must support hardware interrupts"
@ -1387,7 +1388,8 @@ msgstr "Kör i säkert läge! Autoladdning är avstängd.\n"
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Kör i säkert läge! Sparad kod körs inte.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA eller SCL behöver en pullup"
@ -1691,6 +1693,27 @@ msgstr "Avläsning av spänning tog för lång tid"
msgid "WARNING: Your code filename has two extensions\n"
msgstr "VARNING: Ditt filnamn för kod har två tillägg\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr "WatchDogTimer kan inte avinitialiseras när läget är inställt på RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr "WatchDogTimer körs för närvarande inte"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
"WatchDogTimer.mode kan inte ändras när den är inställd på WatchDogMode.RESET"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr "WatchDogTimer.timeout måste vara större än 0"
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr "Watchdog-timern har löpt ut."
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2133,6 +2156,14 @@ msgstr "Kan inte sända indatamatris från form"
msgid "could not invert Vandermonde matrix"
msgstr "kan inte invertera Vandermonde-matris"
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr "data måste vara itererbar"
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr "data måste vara av samma längd"
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr "ddof måste vara mindre än längden på datauppsättningen"
@ -2268,6 +2299,14 @@ msgstr "filen måste vara en fil som öppnats i byte-läge"
msgid "filesystem must provide mount method"
msgstr "filsystemet måste tillhandahålla mount-metod"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr "första argumentet måste vara en callable"
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr "första argumentet måste vara en funktion"
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr "första argumentet måste vara en iterable"
@ -2321,6 +2360,10 @@ msgstr "funktionen förväntar som mest %d argument, fick %d"
msgid "function got multiple values for argument '%q'"
msgstr "funktionen fick flera värden för argumentet '%q'"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr "funktionen har samma teckenvärden vid slutet av intervall"
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr "funktionen är endast implementerad för scalar och ndarray"
@ -2407,6 +2450,10 @@ msgstr "index måste vara heltal"
msgid "indices must be integers, slices, or Boolean lists"
msgstr "index måste vara heltal, slices, eller Boolean-listor"
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr "initialvärden måste vara iterable"
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler måste vara en funktion"
@ -2451,6 +2498,10 @@ msgstr "int() arg 2 måste vara >= 2 och <= 36"
msgid "integer required"
msgstr "heltal krävs"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr "interp är definierad för 1D-matriser med samma längd"
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3086,6 +3137,10 @@ msgstr "tröskelvärdet måste ligga i intervallet 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() kräver en 9-sekvens"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "timeout-längd överskred det maximala värde som stöds"
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr "timeout måste vara 0.0-100.0 sekunder"
@ -3166,7 +3221,7 @@ msgstr "oväntat nyckelordsargument '%q'"
#: py/lexer.c
msgid "unicode name escapes"
msgstr "unicode name escapes"
msgstr "unicode-namn flyr"
#: py/parse.c
msgid "unindent does not match any outer indentation level"
@ -3239,6 +3294,10 @@ msgstr "värdet måste passa i %d byte(s)"
msgid "value_count must be > 0"
msgstr "value_count måste vara > 0"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr "watchdog timeout måste vara större än 0"
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr "window måste vara <= interval"
@ -3251,6 +3310,10 @@ msgstr "fel typ av argument"
msgid "wrong index type"
msgstr "fel indextyp"
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr "fel indatatyp"
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "fel antal argument"
@ -3263,6 +3326,10 @@ msgstr "fel antal värden för att packa upp"
msgid "wrong operand type"
msgstr "fel operandtyp"
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr "fel utdatatyp"
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x-värde utanför intervall"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-27 11:55-0400\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
"Last-Translator: hexthat\n"
"Language-Team: Chinese Hanyu Pinyin\n"
@ -887,7 +887,7 @@ msgstr "Wúxiào de BMP wénjiàn"
msgid "Invalid DAC pin supplied"
msgstr "Tí gōng liǎo wúxiào de DAC yǐn jiǎo"
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
#: ports/stm/common-hal/busio/I2C.c
msgid "Invalid I2C pin selection"
msgstr "Wúxiào de I2C yǐn jiǎo xuǎnzé"
@ -977,7 +977,8 @@ msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
msgid "Invalid pins"
msgstr "Wúxiào de yǐn jiǎo"
@ -1375,7 +1376,8 @@ msgstr "Zài ānquán móshì xià yùnxíng! Zìdòng chóngxīn jiāzài yǐ g
msgid "Running in safe mode! Not running saved code.\n"
msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dàimǎ.\n"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/atmel-samd/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA huò SCL xūyào lādòng"
@ -1678,6 +1680,26 @@ msgstr ""
msgid "WARNING: Your code filename has two extensions\n"
msgstr "Jǐnggào: Nǐ de dàimǎ wénjiàn míng yǒu liǎng gè kuòzhǎn míng\n"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer is not currently running"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
msgstr ""
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "WatchDogTimer.timeout must be greater than 0"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Watchdog timer expired."
msgstr ""
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2121,6 +2143,14 @@ msgstr ""
msgid "could not invert Vandermonde matrix"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be iterable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/numerical.c
msgid "ddof must be smaller than length of data set"
msgstr ""
@ -2254,6 +2284,14 @@ msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
msgid "filesystem must provide mount method"
msgstr "wénjiàn xìtǒng bìxū tígōng guà zài fāngfǎ"
#: extmod/ulab/code/vectorise.c
msgid "first argument must be a callable"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "first argument must be a function"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "first argument must be an iterable"
msgstr ""
@ -2307,6 +2345,10 @@ msgstr "hánshù yùjì zuìduō %d cānshù, huòdé %d"
msgid "function got multiple values for argument '%q'"
msgstr "hánshù huòdé cānshù '%q' de duōchóng zhí"
#: extmod/ulab/code/approx.c
msgid "function has the same sign at the ends of interval"
msgstr ""
#: extmod/ulab/code/compare.c
msgid "function is implemented for scalars and ndarrays only"
msgstr ""
@ -2393,6 +2435,10 @@ msgstr "suǒyǐn bìxū shì zhěngshù"
msgid "indices must be integers, slices, or Boolean lists"
msgstr ""
#: extmod/ulab/code/approx.c
msgid "initial values must be iterable"
msgstr ""
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "nèi lián jíhé bìxū shì yīgè hánshù"
@ -2437,6 +2483,10 @@ msgstr "zhěngshù() cānshù 2 bìxū > = 2 qiě <= 36"
msgid "integer required"
msgstr "xūyào zhěngshù"
#: extmod/ulab/code/approx.c
msgid "interp is defined for 1D arrays of equal length"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
#, c-format
msgid "interval must be in range %s-%s"
@ -3070,6 +3120,10 @@ msgstr "yùzhí bìxū zài fànwéi 0-65536"
msgid "time.struct_time() takes a 9-sequence"
msgstr "time.struct_time() xūyào 9 xùliè"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
#: shared-bindings/busio/UART.c
msgid "timeout must be 0.0-100.0 seconds"
msgstr "Chāo shí shíjiān bìxū wèi 0.0 Dào 100.0 Miǎo"
@ -3223,6 +3277,10 @@ msgstr "Zhí bìxū fúhé %d zì jié"
msgid "value_count must be > 0"
msgstr "zhí jìshù bìxū wèi > 0"
#: shared-bindings/watchdog/WatchDogTimer.c
msgid "watchdog timeout must be greater than 0"
msgstr ""
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
msgstr "Chuāngkǒu bìxū shì <= jiàngé"
@ -3235,6 +3293,10 @@ msgstr ""
msgid "wrong index type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong input type"
msgstr ""
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "cānshù shù cuòwù"
@ -3247,6 +3309,10 @@ msgstr "wúfǎ jiě bāo de zhí shù"
msgid "wrong operand type"
msgstr ""
#: extmod/ulab/code/vectorise.c
msgid "wrong output type"
msgstr ""
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x zhí chāochū biānjiè"

View File

@ -15,4 +15,3 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
CIRCUITPY_VECTORIO = 0

View File

@ -12,4 +12,3 @@ EXTERNAL_FLASH_DEVICES = GD25Q16C
LONGINT_IMPL = MPZ
CIRCUITPY_VECTORIO = 1

View File

@ -18,4 +18,3 @@ CIRCUITPY_AUDIOIO = 0
# Too much flash for Korean translations
CIRCUITPY_VECTORIO = 0

View File

@ -23,6 +23,3 @@
// Enable the use of 2 displays
#define CIRCUITPY_DISPLAY_LIMIT (2)

View File

@ -29,4 +29,3 @@
// USB is always used.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1

View File

@ -12,4 +12,3 @@ LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0

View File

@ -37,4 +37,3 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ 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

@ -150,4 +150,3 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
mp_hal_enable_all_interrupts();
}

View File

@ -38,4 +38,3 @@
#define DEFAULT_UART_BUS_TX (&pin_UART2_TXD)
#define MICROPY_PY_REVERSE_SPECIAL_METHODS (1)

View File

@ -1,3 +1,2 @@
/mkspk
/mkspk.exe

View File

@ -29,6 +29,8 @@
#include <sys/boardctl.h>
#include <sys/time.h>
#include <cxd56_rtc.h>
#include "sched/sched.h"
#include "boards/board.h"
@ -45,7 +47,8 @@
safe_mode_t port_init(void) {
boardctl(BOARDIOC_INIT, 0);
board_init();
// Wait until RTC is available
while (g_rtc_enabled == false);
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;
@ -121,14 +124,10 @@ void board_timerhook(void)
}
uint64_t port_get_raw_ticks(uint8_t* subticks) {
struct timeval tv;
gettimeofday(&tv, NULL);
long computed_subticks = tv.tv_usec * 1024 * 32 / 1000000;
if (subticks != NULL) {
*subticks = computed_subticks % 32;
}
uint64_t count = cxd56_rtc_count();
*subticks = count % 32;
return tv.tv_sec * 1024 + computed_subticks / 32;
return count / 32;
}
// Enable 1/1024 second tick.
@ -147,4 +146,3 @@ void port_interrupt_after_ticks(uint32_t ticks) {
void port_sleep_until_interrupt(void) {
// TODO: Implement sleep.
}

View File

@ -35,4 +35,3 @@ bool common_hal_get_serial_connected(void) {
bool common_hal_get_serial_bytes_available(void) {
return (bool) serial_bytes_available();
}

View File

@ -121,4 +121,3 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t lba, uint32
void supervisor_flash_release_cache(void) {
}

View File

@ -88,4 +88,3 @@ void init_usb_hardware(void) {
usb_device_stack,
&usb_device_taskdef);
}

View File

@ -35,4 +35,3 @@ bool common_hal_get_serial_connected(void) {
bool common_hal_get_serial_bytes_available(void) {
return (bool) serial_bytes_available();
}

View File

@ -348,4 +348,3 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t lba, uint32
void supervisor_flash_release_cache(void) {
}

View File

@ -68,7 +68,6 @@ safe_mode_t port_init(void) {
irq_setmask(0);
irq_setie(1);
tick_init();
board_init();
return NO_SAFE_MODE;
}

View File

@ -33,7 +33,6 @@ void board_init(void) {
// SWD Pins
common_hal_never_reset_pin(&pin_GPIO_AD_13); //SWDIO
common_hal_never_reset_pin(&pin_GPIO_AD_12); //SWCLK
common_hal_never_reset_pin(&pin_GPIO_AD_09); //SWO
// FLEX flash
common_hal_never_reset_pin(&pin_GPIO_SD_12);
common_hal_never_reset_pin(&pin_GPIO_SD_11);

View File

@ -7,6 +7,10 @@
#define BOARD_FLASH_SIZE (16 * 1024 * 1024)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO_AD_06)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO_AD_04)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO_AD_03)
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO_02)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO_01)

View File

@ -4,9 +4,7 @@
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO_09) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO_09) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO_10) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO_10) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO_AD_05) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO_AD_06) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO_08) },
@ -20,9 +18,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO_AD_03) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO_AD_06) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO_01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO_01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO_02) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO_02) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO_AD_07) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO_AD_09) },
@ -31,6 +27,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO_AD_01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO_AD_02) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO_09) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO_10) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO_AD_04) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO_AD_03) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO_AD_06) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO_01) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO_02) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_USER_LED), MP_ROM_PTR(&pin_GPIO_11) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_USER_SW), MP_ROM_PTR(&pin_GPIO_SD_05) },

View File

@ -33,7 +33,6 @@ void board_init(void) {
// SWD Pins
common_hal_never_reset_pin(&pin_GPIO_AD_B0_00);//SWDIO
common_hal_never_reset_pin(&pin_GPIO_AD_B0_01);//SWCLK
common_hal_never_reset_pin(&pin_GPIO_AD_B0_04);//SWO
// FLEX flash
common_hal_never_reset_pin(&pin_GPIO_SD_B1_06);

View File

@ -33,7 +33,6 @@ void board_init(void) {
// SWD Pins
common_hal_never_reset_pin(&pin_GPIO_AD_B0_06);//SWDIO
common_hal_never_reset_pin(&pin_GPIO_AD_B0_07);//SWCLK
common_hal_never_reset_pin(&pin_GPIO_AD_B0_10);//SWO
// FLEX flash
common_hal_never_reset_pin(&pin_GPIO_SD_B1_00);

View File

@ -27,15 +27,32 @@
#include <stdio.h>
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/busio/I2C.h"
#include "py/mperrno.h"
#include "py/runtime.h"
#include "periph.h"
#include "fsl_lpi2c.h"
#include "fsl_gpio.h"
#define I2C_CLOCK_FREQ (CLOCK_GetFreq(kCLOCK_Usb1PllClk) / 8 / (1+CLOCK_GetDiv(kCLOCK_Lpi2cDiv)))
#define IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5 5U
//arrays use 0 based numbering: I2C1 is stored at index 0
#define MAX_I2C 4
STATIC bool reserved_i2c[MAX_I2C];
STATIC bool never_reset_i2c[MAX_I2C];
void i2c_reset(void) {
for(uint i = 0; i < MP_ARRAY_SIZE(mcu_i2c_banks); i++) {
if (!never_reset_i2c[i]) {
reserved_i2c[i] = false;
LPI2C_MasterDeinit(mcu_i2c_banks[i]);
}
}
}
static void config_periph_pin(const mcu_periph_obj_t *periph) {
IOMUXC_SetPinMux(
@ -56,11 +73,49 @@ static void config_periph_pin(const mcu_periph_obj_t *periph) {
| IOMUXC_SW_PAD_CTL_PAD_SRE(0));
}
static void i2c_check_pin_config(const mcu_pin_obj_t *pin, uint32_t pull)
{
IOMUXC_SetPinConfig(0, 0, 0, 0, pin->cfg_reg,
IOMUXC_SW_PAD_CTL_PAD_HYS(1)
| IOMUXC_SW_PAD_CTL_PAD_PUS(0) // Pulldown
| IOMUXC_SW_PAD_CTL_PAD_PUE(pull) // 0=nopull (keeper), 1=pull
| IOMUXC_SW_PAD_CTL_PAD_PKE(1)
| IOMUXC_SW_PAD_CTL_PAD_ODE(0)
| IOMUXC_SW_PAD_CTL_PAD_SPEED(2)
| IOMUXC_SW_PAD_CTL_PAD_DSE(1)
| IOMUXC_SW_PAD_CTL_PAD_SRE(0));
}
void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
const mcu_pin_obj_t *scl, const mcu_pin_obj_t *sda, uint32_t frequency, uint32_t timeout) {
const uint32_t sda_count = sizeof(mcu_i2c_sda_list) / sizeof(mcu_periph_obj_t);
const uint32_t scl_count = sizeof(mcu_i2c_scl_list) / sizeof(mcu_periph_obj_t);
#if CIRCUITPY_REQUIRE_I2C_PULLUPS
// Test that the pins are in a high state. (Hopefully indicating they are pulled up.)
IOMUXC_SetPinMux(sda->mux_reg, IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5, 0, 0, 0, 0);
IOMUXC_SetPinMux(scl->mux_reg, IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5, 0, 0, 0, 0);
i2c_check_pin_config(sda, 1);
i2c_check_pin_config(scl, 1);
const gpio_pin_config_t check_config = { kGPIO_DigitalInput, 0, kGPIO_NoIntmode };
GPIO_PinInit(sda->gpio, sda->number, &check_config);
GPIO_PinInit(scl->gpio, scl->number, &check_config);
common_hal_mcu_delay_us(10);
i2c_check_pin_config(sda, 0);
i2c_check_pin_config(scl, 0);
// We must pull up within 3us to achieve 400khz.
common_hal_mcu_delay_us(3);
if( !GPIO_PinRead(sda->gpio, sda->number) || !GPIO_PinRead(scl->gpio, scl->number)) {
common_hal_reset_pin(sda);
common_hal_reset_pin(scl);
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
}
#endif
const uint32_t sda_count = MP_ARRAY_SIZE(mcu_i2c_sda_list);
const uint32_t scl_count = MP_ARRAY_SIZE(mcu_i2c_scl_list);
for (uint32_t i = 0; i < sda_count; ++i) {
if (mcu_i2c_sda_list[i].pin != sda)
@ -73,21 +128,21 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
if (mcu_i2c_scl_list[j].bank_idx != mcu_i2c_sda_list[i].bank_idx)
continue;
self->sda_pin = &mcu_i2c_sda_list[i];
self->scl_pin = &mcu_i2c_scl_list[j];
self->sda = &mcu_i2c_sda_list[i];
self->scl = &mcu_i2c_scl_list[j];
break;
}
}
if(self->sda_pin == NULL || self->scl_pin == NULL) {
mp_raise_ValueError(translate("Invalid I2C pin selection"));
if(self->sda == NULL || self->scl == NULL) {
mp_raise_ValueError(translate("Invalid pins"));
} else {
self->i2c = mcu_i2c_banks[self->sda_pin->bank_idx - 1];
self->i2c = mcu_i2c_banks[self->sda->bank_idx - 1];
}
config_periph_pin(self->sda_pin);
config_periph_pin(self->scl_pin);
config_periph_pin(self->sda);
config_periph_pin(self->scl);
lpi2c_master_config_t config = { 0 };
LPI2C_MasterGetDefaultConfig(&config);
@ -96,34 +151,35 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
LPI2C_MasterInit(self->i2c, &config, I2C_CLOCK_FREQ);
#if CIRCUITPY_REQUIRE_I2C_PULLUPS
// if (!gpio_get_pin_level(sda->number) || !gpio_get_pin_level(scl->number)) {
// reset_pin_number(sda->number);
// reset_pin_number(scl->number);
// mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
// }
#endif
claim_pin(self->sda->pin);
claim_pin(self->scl->pin);
}
claim_pin(self->sda_pin->pin);
claim_pin(self->scl_pin->pin);
void common_hal_busio_i2c_never_reset(busio_i2c_obj_t *self) {
never_reset_i2c[self->sda->bank_idx - 1] = true;
common_hal_never_reset_pin(self->sda->pin);
common_hal_never_reset_pin(self->scl->pin);
}
bool common_hal_busio_i2c_deinited(busio_i2c_obj_t *self) {
return self->sda_pin == NULL;
return self->sda == NULL;
}
void common_hal_busio_i2c_deinit(busio_i2c_obj_t *self) {
if (common_hal_busio_i2c_deinited(self)) {
return;
}
reserved_i2c[self->sda->bank_idx - 1] = false;
never_reset_i2c[self->sda->bank_idx - 1] = false;
LPI2C_MasterDeinit(self->i2c);
// reset_pin_number(self->sda_pin);
// reset_pin_number(self->scl_pin);
common_hal_reset_pin(self->sda->pin);
common_hal_reset_pin(self->scl->pin);
self->sda_pin = NULL;
self->scl_pin = NULL;
self->sda = NULL;
self->scl = NULL;
}
bool common_hal_busio_i2c_probe(busio_i2c_obj_t *self, uint8_t addr) {
@ -183,10 +239,3 @@ uint8_t common_hal_busio_i2c_read(busio_i2c_obj_t *self, uint16_t addr,
return MP_EIO;
}
void common_hal_busio_i2c_never_reset(busio_i2c_obj_t *self) {
// never_reset_sercom(self->i2c_desc.device.hw);
//
// never_reset_pin_number(self->scl_pin);
// never_reset_pin_number(self->sda_pin);
}

View File

@ -37,8 +37,8 @@ typedef struct {
mp_obj_base_t base;
LPI2C_Type *i2c;
bool has_lock;
const mcu_periph_obj_t *scl_pin;
const mcu_periph_obj_t *sda_pin;
const mcu_periph_obj_t *scl;
const mcu_periph_obj_t *sda;
} busio_i2c_obj_t;
#endif // MICROPY_INCLUDED_MIMXRT10XX_COMMON_HAL_BUSIO_I2C_H

View File

@ -25,6 +25,8 @@
* THE SOFTWARE.
*/
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/busio/SPI.h"
#include "py/mperrno.h"
#include "py/runtime.h"
@ -34,6 +36,8 @@
#include <stdio.h>
#define LPSPI_MASTER_CLK_FREQ (CLOCK_GetFreq(kCLOCK_Usb1PllPfd0Clk) / (CLOCK_GetDiv(kCLOCK_LpspiDiv) + 1))
//arrays use 0 based numbering: SPI1 is stored at index 0
#define MAX_SPI 4
STATIC bool reserved_spi[MAX_SPI];
@ -58,11 +62,12 @@ STATIC void config_periph_pin(const mcu_periph_obj_t *periph) {
| IOMUXC_SW_PAD_CTL_PAD_SRE(0));
}
#define LPSPI_MASTER_CLK_FREQ (CLOCK_GetFreq(kCLOCK_Usb1PllPfd0Clk) / (CLOCK_GetDiv(kCLOCK_LpspiDiv) + 1))
void spi_reset(void) {
for (int i = 0; i < MAX_SPI; i++) {
for (uint i = 0; i < MP_ARRAY_SIZE(mcu_spi_banks); i++) {
if (!never_reset_spi[i]) {
reserved_spi[i] = false;
LPSPI_Deinit(mcu_spi_banks[i]);
}
}
}
@ -192,7 +197,14 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
}
void common_hal_busio_spi_never_reset(busio_spi_obj_t *self) {
// TODO
never_reset_spi[self->clock->bank_idx - 1] = true;
common_hal_never_reset_pin(self->clock->pin);
if (self->mosi != NULL) {
common_hal_never_reset_pin(self->mosi->pin);
}
if (self->miso != NULL) {
common_hal_never_reset_pin(self->miso->pin);
}
}
bool common_hal_busio_spi_deinited(busio_spi_obj_t *self) {
@ -203,8 +215,20 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
if (common_hal_busio_spi_deinited(self)) {
return;
}
LPSPI_Deinit(self->spi);
reserved_spi[self->clock->bank_idx - 1] = false;
never_reset_spi[self->clock->bank_idx - 1] = false;
common_hal_reset_pin(self->clock->pin);
if (self->mosi != NULL) {
common_hal_reset_pin(self->mosi->pin);
}
if (self->miso != NULL) {
common_hal_reset_pin(self->miso->pin);
}
self->clock = NULL;
self->mosi = NULL;
self->miso = NULL;
}
bool common_hal_busio_spi_configure(busio_spi_obj_t *self,

View File

@ -25,6 +25,7 @@
* THE SOFTWARE.
*/
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/busio/UART.h"
@ -73,6 +74,13 @@ void LPUART_UserCallback(LPUART_Type *base, lpuart_handle_t *handle, status_t st
}
}
void uart_reset(void) {
for(uint i = 0; i < MP_ARRAY_SIZE(mcu_uart_banks); i++) {
reserved_uart[i] = false;
LPUART_Deinit(mcu_uart_banks[i]);
}
}
void common_hal_busio_uart_construct(busio_uart_obj_t *self,
const mcu_pin_obj_t * tx, const mcu_pin_obj_t * rx,
const mcu_pin_obj_t * rts, const mcu_pin_obj_t * cts,
@ -278,13 +286,21 @@ void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
if (common_hal_busio_uart_deinited(self)) {
return;
}
if (self->rx) {
reserved_uart[self->rx->bank_idx - 1] = false;
} else {
reserved_uart[self->tx->bank_idx - 1] = false;
}
LPUART_Deinit(self->uart);
gc_free(self->ringbuf);
// reset_pin_number(self->rx);
// reset_pin_number(self->tx);
if (self->rx) {
common_hal_reset_pin(self->rx->pin);
}
if (self->tx) {
common_hal_reset_pin(self->tx->pin);
}
self->rx = NULL;
self->tx = NULL;

View File

@ -5,6 +5,7 @@
*
* Copyright (c) 2016 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2019 Artur Pacholec
* Copyright (c) 2020 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View File

@ -29,7 +29,7 @@
#include "py/mphal.h"
#include "mimxrt10xx/periph.h"
LPI2C_Type *mcu_i2c_banks[] = { LPI2C1, LPI2C2 };
LPI2C_Type *mcu_i2c_banks[2] = { LPI2C1, LPI2C2 };
const mcu_periph_obj_t mcu_i2c_sda_list[8] = {
PERIPH_PIN(1, 0, kIOMUXC_LPI2C1_SDA_SELECT_INPUT, 0, &pin_GPIO_AD_13),
@ -55,7 +55,7 @@ const mcu_periph_obj_t mcu_i2c_scl_list[8] = {
PERIPH_PIN(2, 3, kIOMUXC_LPI2C2_SCL_SELECT_INPUT, 3, &pin_GPIO_10),
};
LPSPI_Type *mcu_spi_banks[] = { LPSPI1, LPSPI2 };
LPSPI_Type *mcu_spi_banks[2] = { LPSPI1, LPSPI2 };
const mcu_periph_obj_t mcu_spi_sck_list[4] = {
PERIPH_PIN(1, 0, kIOMUXC_LPSPI1_SCK_SELECT_INPUT, 0, &pin_GPIO_AD_06),
@ -81,7 +81,7 @@ const mcu_periph_obj_t mcu_spi_miso_list[4] = {
PERIPH_PIN(2, 1, kIOMUXC_LPSPI2_SDI_SELECT_INPUT, 1, &pin_GPIO_SD_09),
};
LPUART_Type *mcu_uart_banks[] = { LPUART1, LPUART2, LPUART3, LPUART4 };
LPUART_Type *mcu_uart_banks[4] = { LPUART1, LPUART2, LPUART3, LPUART4 };
const mcu_periph_obj_t mcu_uart_rx_list[9] = {
PERIPH_PIN(1, 2, kIOMUXC_LPUART1_RXD_SELECT_INPUT, 0, &pin_GPIO_SD_11),

View File

@ -27,13 +27,19 @@
#ifndef MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1011_PERIPH_H
#define MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1011_PERIPH_H
LPI2C_Type *mcu_i2c_banks[2];
extern const mcu_periph_obj_t mcu_i2c_sda_list[8];
extern const mcu_periph_obj_t mcu_i2c_scl_list[8];
LPSPI_Type *mcu_spi_banks[2];
extern const mcu_periph_obj_t mcu_spi_sck_list[4];
extern const mcu_periph_obj_t mcu_spi_mosi_list[4];
extern const mcu_periph_obj_t mcu_spi_miso_list[4];
LPUART_Type *mcu_uart_banks[4];
extern const mcu_periph_obj_t mcu_uart_rx_list[9];
extern const mcu_periph_obj_t mcu_uart_tx_list[9];
extern const mcu_periph_obj_t mcu_uart_rts_list[4];

View File

@ -30,7 +30,7 @@
#include "py/mphal.h"
#include "mimxrt10xx/periph.h"
LPI2C_Type *mcu_i2c_banks[] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
LPI2C_Type *mcu_i2c_banks[4] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
const mcu_periph_obj_t mcu_i2c_sda_list[8] = {
PERIPH_PIN(1, 6, kIOMUXC_LPI2C1_SDA_SELECT_INPUT, 0, &pin_GPIO_EMC_03),
@ -60,7 +60,7 @@ const mcu_periph_obj_t mcu_i2c_scl_list[8] = {
PERIPH_PIN(4, 3, kIOMUXC_LPI2C4_SCL_SELECT_INPUT, 1, &pin_GPIO_SD_B1_02),
};
LPSPI_Type *mcu_spi_banks[] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
LPSPI_Type *mcu_spi_banks[4] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
const mcu_periph_obj_t mcu_spi_sck_list[8] = {
PERIPH_PIN(1, 4, kIOMUXC_LPSPI1_SCK_SELECT_INPUT, 0, &pin_GPIO_SD_B0_02),
@ -104,7 +104,7 @@ const mcu_periph_obj_t mcu_spi_miso_list[8] = {
PERIPH_PIN(4, 4, kIOMUXC_LPSPI2_SDI_SELECT_INPUT, 1, &pin_GPIO_EMC_35),
};
LPUART_Type *mcu_uart_banks[] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
LPUART_Type *mcu_uart_banks[8] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
const mcu_periph_obj_t mcu_uart_rx_list[16] = {
PERIPH_PIN(1, 2, 0, 0, &pin_GPIO_AD_B0_07),

View File

@ -28,13 +28,19 @@
#ifndef MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1021_PERIPH_H
#define MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1021_PERIPH_H
LPI2C_Type *mcu_i2c_banks[4];
extern const mcu_periph_obj_t mcu_i2c_sda_list[8];
extern const mcu_periph_obj_t mcu_i2c_scl_list[8];
LPSPI_Type *mcu_spi_banks[4];
extern const mcu_periph_obj_t mcu_spi_sck_list[8];
extern const mcu_periph_obj_t mcu_spi_mosi_list[8];
extern const mcu_periph_obj_t mcu_spi_miso_list[8];
LPUART_Type *mcu_uart_banks[8];
extern const mcu_periph_obj_t mcu_uart_rx_list[16];
extern const mcu_periph_obj_t mcu_uart_tx_list[16];
extern const mcu_periph_obj_t mcu_uart_rts_list[10];

View File

@ -29,7 +29,7 @@
#include "py/mphal.h"
#include "mimxrt10xx/periph.h"
LPI2C_Type *mcu_i2c_banks[] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
LPI2C_Type *mcu_i2c_banks[4] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
const mcu_periph_obj_t mcu_i2c_sda_list[9] = {
PERIPH_PIN(1, 2, kIOMUXC_LPI2C1_SDA_SELECT_INPUT, 0, &pin_GPIO_SD_B1_05),
@ -61,7 +61,7 @@ const mcu_periph_obj_t mcu_i2c_scl_list[9] = {
PERIPH_PIN(4, 0, kIOMUXC_LPI2C4_SCL_SELECT_INPUT, 1, &pin_GPIO_AD_B0_12),
};
LPSPI_Type *mcu_spi_banks[] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
LPSPI_Type *mcu_spi_banks[4] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
const mcu_periph_obj_t mcu_spi_sck_list[8] = {
PERIPH_PIN(1, 3, kIOMUXC_LPSPI1_SCK_SELECT_INPUT, 0, &pin_GPIO_EMC_27),
@ -105,7 +105,7 @@ const mcu_periph_obj_t mcu_spi_miso_list[8] = {
PERIPH_PIN(4, 1, kIOMUXC_LPSPI4_SDI_SELECT_INPUT, 1, &pin_GPIO_B1_05),
};
LPUART_Type *mcu_uart_banks[] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
LPUART_Type *mcu_uart_banks[8] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
const mcu_periph_obj_t mcu_uart_rx_list[18] = {
PERIPH_PIN(1, 2, 0, 0, &pin_GPIO_AD_B0_13),

View File

@ -27,13 +27,19 @@
#ifndef MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1011_PERIPH_H
#define MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1011_PERIPH_H
LPI2C_Type *mcu_i2c_banks[4];
extern const mcu_periph_obj_t mcu_i2c_sda_list[9];
extern const mcu_periph_obj_t mcu_i2c_scl_list[9];
LPSPI_Type *mcu_spi_banks[4];
extern const mcu_periph_obj_t mcu_spi_sck_list[8];
extern const mcu_periph_obj_t mcu_spi_mosi_list[8];
extern const mcu_periph_obj_t mcu_spi_miso_list[8];
LPUART_Type *mcu_uart_banks[8];
extern const mcu_periph_obj_t mcu_uart_rx_list[18];
extern const mcu_periph_obj_t mcu_uart_tx_list[18];
extern const mcu_periph_obj_t mcu_uart_rts_list[9];

View File

@ -254,4 +254,3 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t lba, uint32
void supervisor_flash_release_cache(void) {
}

View File

@ -257,8 +257,8 @@ safe_mode_t port_init(void) {
// enabled. It won't occur very often so it'll be low overhead.
NVIC_EnableIRQ(SNVS_HP_WRAPPER_IRQn);
// Reset everything into a known state before board_init.
reset_port();
// Note that `reset_port` CANNOT GO HERE, unlike other ports, because `board_init` hasn't been
// run yet, which uses `never_reset` to protect critical pins from being reset by `reset_port`.
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;

View File

@ -90,4 +90,3 @@ void serial_write_substring(const char *text, uint32_t len) {
LPUART_WriteBlocking(uart_instance, (uint8_t*)text, len);
}

View File

@ -136,6 +136,7 @@ SRC_NRFX = $(addprefix nrfx/,\
drivers/src/nrfx_gpiote.c \
drivers/src/nrfx_rtc.c \
drivers/src/nrfx_nvmc.c \
drivers/src/nrfx_wdt.c \
)
ifdef EXTERNAL_FLASH_DEVICES

View File

@ -3894,4 +3894,3 @@
* @}
* @}
*/

View File

@ -3927,4 +3927,3 @@
* @}
* @}
*/

View File

@ -70,20 +70,6 @@ SECTIONS
_etext = .; /* define a global symbol at end of code */
} >FLASH_FIRMWARE
/*
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} >FLASH_FIRMWARE
.ARM :
{
__exidx_start = .;
*(.ARM.exidx*)
__exidx_end = .;
} >FLASH_FIRMWARE
*/
/* used by the startup to initialize data */
_sidata = .;
@ -147,6 +133,14 @@ SECTIONS
. = ALIGN(4);
} >RAM
/* Remove exception unwinding information, since Circuit Python
does not support this GCC feature. */
/DISCARD/ :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
*(.ARM.exidx*)
}
/* Remove information from the standard libraries */
/*
/DISCARD/ :

View File

@ -62,6 +62,3 @@
#define DEFAULT_UART_BUS_RX (&pin_P0_28)
#define DEFAULT_UART_BUS_TX (&pin_P0_02)

View File

@ -15,4 +15,3 @@ EXTERNAL_FLASH_DEVICES = "W25Q16JV_IQ"
# We use a CFLAGS define here because there are include order issues
# if we try to include "mpconfigport.h" into nrfx_config.h .
CFLAGS += -DCIRCUITPY_NRF_NUM_I2C=2

View File

@ -8,9 +8,13 @@ MCU_CHIP = nrf52833
INTERNAL_FLASH_FILESYSTEM = 1
CIRCUITPY_AUDIOMP3 = 0
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_BUSIO = 1
CIRCUITPY_COUNTIO = 0
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FRAMEBUFFERIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CSLAVE = 0
CIRCUITPY_NEOPIXEL_WRITE = 0
CIRCUITPY_NVM = 0
CIRCUITPY_PIXELBUF = 0
@ -20,6 +24,8 @@ CIRCUITPY_RTC = 1
CIRCUITPY_TOUCHIO = 0
CIRCUITPY_ULAB = 0
SUPEROPT_GC = 0
# These defines must be overridden before mpconfigboard.h is included, which is
# why they are passed on the command line.
CFLAGS += -DSPIM3_BUFFER_SIZE=0 -DSOFTDEVICE_RAM_SIZE='(32*1024)'

View File

@ -40,7 +40,7 @@
#endif
#define CIRCUITPY_INTERNAL_NVM_SIZE 0
#define CIRCUITPY_INTERNAL_FLASH_FILESYSTEM_SIZE (80*1024)
#define CIRCUITPY_INTERNAL_FLASH_FILESYSTEM_SIZE (76*1024)
#define BOOTLOADER_SIZE (0x4000) // 12 kiB
#define CIRCUITPY_BLE_CONFIG_SIZE (12*1024)

View File

@ -24,6 +24,7 @@ CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 1
CIRCUITPY_TOUCHIO = 0
CIRCUITPY_ULAB = 0
CIRCUITPY_WATCHDOG = 1
# Enable micropython.native
#CIRCUITPY_ENABLE_MPY_NATIVE = 1

View File

@ -31,6 +31,7 @@
#include "common-hal/audiobusio/I2SOut.h"
#include "shared-bindings/audiobusio/I2SOut.h"
#include "shared-module/audiocore/__init__.h"
#include "supervisor/shared/tick.h"
#include "py/obj.h"
#include "py/runtime.h"
@ -211,6 +212,8 @@ void common_hal_audiobusio_i2sout_construct(audiobusio_i2sout_obj_t* self,
NRF_I2S->CONFIG.ALIGN = I2S_CONFIG_ALIGN_ALIGN_Left;
NRF_I2S->CONFIG.FORMAT = left_justified ? I2S_CONFIG_FORMAT_FORMAT_Aligned
: I2S_CONFIG_FORMAT_FORMAT_I2S;
supervisor_enable_tick();
}
bool common_hal_audiobusio_i2sout_deinited(audiobusio_i2sout_obj_t* self) {
@ -230,6 +233,7 @@ void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t* self) {
reset_pin_number(self->data_pin_number);
self->data_pin_number = 0xff;
instance = NULL;
supervisor_disable_tick();
}
void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
@ -340,5 +344,8 @@ void i2s_reset(void) {
NRF_I2S->PSEL.LRCK = 0xFFFFFFFF;
NRF_I2S->PSEL.SDOUT = 0xFFFFFFFF;
NRF_I2S->PSEL.SDIN = 0xFFFFFFFF;
if (instance) {
supervisor_disable_tick();
}
instance = NULL;
}

View File

@ -36,6 +36,7 @@
#include "shared-bindings/audiopwmio/PWMAudioOut.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/translate.h"
// TODO: This should be the same size as PWMOut.c:pwms[], but there's no trivial way to accomplish that
@ -67,6 +68,7 @@ STATIC void activate_audiopwmout_obj(audiopwmio_pwmaudioout_obj_t *self) {
for (size_t i=0; i < MP_ARRAY_SIZE(active_audio); i++) {
if (!active_audio[i]) {
active_audio[i] = self;
supervisor_enable_tick();
break;
}
}
@ -77,12 +79,16 @@ STATIC void deactivate_audiopwmout_obj(audiopwmio_pwmaudioout_obj_t *self) {
for (size_t i=0; i < MP_ARRAY_SIZE(active_audio); i++) {
if (active_audio[i] == self) {
active_audio[i] = NULL;
supervisor_disable_tick();
}
}
}
void audiopwmout_reset() {
for (size_t i=0; i < MP_ARRAY_SIZE(active_audio); i++) {
if (active_audio[i]) {
supervisor_disable_tick();
}
active_audio[i] = NULL;
}
}

View File

@ -94,7 +94,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
void common_hal_mcu_reset(void) {
filesystem_flush();
NVIC_SystemReset();
reset_cpu();
}
// The singleton microcontroller.Processor object, bound to microcontroller.cpu
@ -106,7 +106,6 @@ const mcu_processor_obj_t common_hal_mcu_processor_obj = {
};
#if CIRCUITPY_INTERNAL_NVM_SIZE > 0
// The singleton nvm.ByteArray object.
const nvm_bytearray_obj_t common_hal_mcu_nvm_obj = {
.base = {
@ -117,6 +116,17 @@ const nvm_bytearray_obj_t common_hal_mcu_nvm_obj = {
};
#endif
#if CIRCUITPY_WATCHDOG
// The singleton watchdog.WatchDogTimer object.
watchdog_watchdogtimer_obj_t common_hal_mcu_watchdogtimer_obj = {
.base = {
.type = &watchdog_watchdogtimer_type,
},
.timeout = 0.0f,
.mode = WATCHDOGMODE_NONE,
};
#endif
STATIC const mp_rom_map_elem_t mcu_pin_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_P0_00), MP_ROM_PTR(&pin_P0_00) },
{ MP_ROM_QSTR(MP_QSTR_P0_01), MP_ROM_PTR(&pin_P0_01) },

View File

@ -79,4 +79,3 @@ int common_hal_rtc_get_calibration(void) {
void common_hal_rtc_set_calibration(int calibration) {
mp_raise_NotImplementedError(translate("RTC calibration is not supported on this board"));
}

View File

@ -35,4 +35,3 @@ bool common_hal_get_serial_connected(void) {
bool common_hal_get_serial_bytes_available(void) {
return (bool) serial_bytes_available();
}

View File

@ -0,0 +1,189 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Nick Moore 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 <math.h>
#include <string.h>
#include "py/obj.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "common-hal/watchdog/WatchDogTimer.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/watchdog/__init__.h"
#include "shared-bindings/watchdog/WatchDogTimer.h"
#include "supervisor/port.h"
#include "nrf/timers.h"
#include "nrf_wdt.h"
#include "nrfx_wdt.h"
#include "nrfx_timer.h"
STATIC uint8_t timer_refcount = 0;
STATIC nrfx_timer_t *timer = NULL;
STATIC nrfx_wdt_t wdt = NRFX_WDT_INSTANCE(0);
STATIC nrfx_wdt_channel_id wdt_channel_id;
STATIC void watchdogtimer_timer_event_handler(nrf_timer_event_t event_type, void *p_context) {
watchdog_watchdogtimer_obj_t *self = MP_OBJ_TO_PTR(p_context);
if (event_type != NRF_TIMER_EVENT_COMPARE0) {
// Spurious event.
return;
}
// If the timer hits without being cleared, pause the timer and raise an exception.
nrfx_timer_pause(timer);
self->mode = WATCHDOGMODE_NONE;
mp_obj_exception_clear_traceback(MP_OBJ_FROM_PTR(&mp_watchdog_timeout_exception));
MP_STATE_VM(mp_pending_exception) = &mp_watchdog_timeout_exception;
#if MICROPY_ENABLE_SCHEDULER
if (MP_STATE_VM(sched_state) == MP_SCHED_IDLE) {
MP_STATE_VM(sched_state) = MP_SCHED_PENDING;
}
#endif
}
static void timer_free(void) {
timer_refcount--;
if (timer_refcount == 0) {
nrf_peripherals_free_timer(timer);
timer = NULL;
}
}
// This function is called if the timer expires. The system will reboot
// in 1/16384 of a second. Issue a reboot ourselves so we can do any
// cleanup necessary.
STATIC void watchdogtimer_watchdog_event_handler(void) {
reset_cpu();
}
void common_hal_watchdog_feed(watchdog_watchdogtimer_obj_t *self) {
if (self->mode == WATCHDOGMODE_RESET) {
nrfx_wdt_feed(&wdt);
} else if (self->mode == WATCHDOGMODE_RAISE) {
nrfx_timer_clear(timer);
}
}
void common_hal_watchdog_deinit(watchdog_watchdogtimer_obj_t *self) {
if (timer) {
timer_free();
}
self->mode = WATCHDOGMODE_NONE;
}
void watchdog_reset(void) {
common_hal_watchdog_deinit(&common_hal_mcu_watchdogtimer_obj);
}
mp_float_t common_hal_watchdog_get_timeout(watchdog_watchdogtimer_obj_t *self) {
return self->timeout;
}
void common_hal_watchdog_set_timeout(watchdog_watchdogtimer_obj_t *self, mp_float_t timeout) {
if (self->mode == WATCHDOGMODE_RAISE) {
// If the WatchDogTimer is already running in "RAISE" mode, reset the timer
// with the new value.
uint64_t ticks = timeout * 31250ULL;
if (ticks > UINT32_MAX) {
mp_raise_ValueError(translate("timeout duration exceeded the maximum supported value"));
}
nrfx_timer_clear(timer);
nrfx_timer_compare(timer, NRF_TIMER_CC_CHANNEL0, ticks, true);
}
self->timeout = timeout;
}
watchdog_watchdogmode_t common_hal_watchdog_get_mode(watchdog_watchdogtimer_obj_t *self) {
return self->mode;
}
void common_hal_watchdog_set_mode(watchdog_watchdogtimer_obj_t *self, watchdog_watchdogmode_t new_mode) {
watchdog_watchdogmode_t current_mode = self->mode;
if (new_mode == WATCHDOGMODE_RAISE) {
if (timer_refcount == 0) {
timer = nrf_peripherals_allocate_timer_or_throw();
}
timer_refcount++;
nrfx_timer_config_t timer_config = {
.frequency = NRF_TIMER_FREQ_31250Hz,
.mode = NRF_TIMER_MODE_TIMER,
.bit_width = NRF_TIMER_BIT_WIDTH_32,
.interrupt_priority = NRFX_TIMER_DEFAULT_CONFIG_IRQ_PRIORITY,
.p_context = self,
};
nrfx_timer_init(timer, &timer_config, &watchdogtimer_timer_event_handler);
uint64_t ticks = nrfx_timer_ms_to_ticks(timer, self->timeout * 1000);
if (ticks > UINT32_MAX) {
mp_raise_ValueError(translate("timeout duration exceeded the maximum supported value"));
}
// true enables interrupt.
nrfx_timer_clear(timer);
nrfx_timer_compare(timer, NRF_TIMER_CC_CHANNEL0, ticks, true);
nrfx_timer_resume(timer);
} else if (new_mode == WATCHDOGMODE_RESET) {
uint64_t ticks = self->timeout * 1000.0f;
if (ticks > UINT32_MAX) {
mp_raise_ValueError(translate("timeout duration exceeded the maximum supported value"));
}
nrfx_wdt_config_t config = {
.reload_value = ticks, // in units of ms
.behaviour = NRF_WDT_BEHAVIOUR_RUN_SLEEP,
NRFX_WDT_IRQ_CONFIG
};
nrfx_err_t err_code;
err_code = nrfx_wdt_init(&wdt, &config, watchdogtimer_watchdog_event_handler);
if (err_code != NRFX_SUCCESS) {
mp_raise_OSError(1);
}
err_code = nrfx_wdt_channel_alloc(&wdt, &wdt_channel_id);
if (err_code != NRFX_SUCCESS) {
mp_raise_OSError(1);
}
nrfx_wdt_enable(&wdt);
nrfx_wdt_feed(&wdt);
}
// If we just switched away from RAISE, disable the timmer.
if (current_mode == WATCHDOGMODE_RAISE && new_mode != WATCHDOGMODE_RAISE) {
timer_free();
}
self->mode = new_mode;
}

View File

@ -0,0 +1,44 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Noralf Trønnes
*
* 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_NRF_COMMON_HAL_WATCHDOG_WATCHDOGTIMER_H
#define MICROPY_INCLUDED_NRF_COMMON_HAL_WATCHDOG_WATCHDOGTIMER_H
#include "py/obj.h"
#include "shared-bindings/watchdog/WatchDogMode.h"
#include "shared-bindings/watchdog/WatchDogTimer.h"
struct _watchdog_watchdogtimer_obj_t {
mp_obj_base_t base;
mp_float_t timeout;
watchdog_watchdogmode_t mode;
};
// This needs to be called in order to disable the watchdog if it's set to
// "RAISE". If set to "RESET", then the watchdog cannot be reset.
void watchdog_reset(void);
#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_WATCHDOG_WATCHDOGTIMER_H

View File

@ -0,0 +1,25 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Nick Moore 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.
*/

View File

@ -0,0 +1,30 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Noralf Trønnes
*
* 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_NRF_COMMON_HAL_WATCHDOG___INIT___H
#define MICROPY_INCLUDED_NRF_COMMON_HAL_WATCHDOG___INIT___H
#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_WATCHDOG___INIT___H

View File

@ -89,4 +89,3 @@ periph = Peripheral()
periph.addService(serv_env_sense)
periph.setConnectionHandler(event_handler)
periph.advertise(device_name="micr_temp", services=[serv_env_sense])

View File

@ -37,6 +37,7 @@ CIRCUITPY_RGBMATRIX ?= 1
CIRCUITPY_FRAMEBUFFERIO ?= 1
CIRCUITPY_COUNTIO = 0
CIRCUITPY_WATCHDOG ?= 1
# nRF52840-specific
@ -45,6 +46,9 @@ MCU_SERIES = m4
MCU_VARIANT = nrf52
MCU_SUB_VARIANT = nrf52840
# Fits on nrf52840 but space is tight on nrf52833.
CIRCUITPY_AESIO ?= 1
SD ?= s140
SOFTDEV_VERSION ?= 6.1.0

View File

@ -122,4 +122,11 @@
// NVM controller
#define NRFX_NVMC_ENABLED 1
// Watchdog timer
#define NRFX_WDT_ENABLED 1
#define NRFX_WDT0_ENABLED 1
// This IRQ indicates the system will reboot shortly, so give
// it a high priority.
#define NRFX_WDT_DEFAULT_CONFIG_IRQ_PRIORITY 2
#endif // NRFX_CONFIG_H__

View File

@ -180,17 +180,17 @@ static inline bool _NRFX_IRQ_IS_PENDING(IRQn_Type irq_number)
return (NVIC_GetPendingIRQ(irq_number) == 1);
}
//#include <nordic_common.h>
//#include <app_util_platform.h>
void common_hal_mcu_disable_interrupts(void);
void common_hal_mcu_enable_interrupts(void);
/**
* @brief Macro for entering into a critical section.
*/
#define NRFX_CRITICAL_SECTION_ENTER() CRITICAL_REGION_ENTER()
#define NRFX_CRITICAL_SECTION_ENTER() common_hal_mcu_disable_interrupts()
/**
* @brief Macro for exiting from a critical section.
*/
#define NRFX_CRITICAL_SECTION_EXIT() CRITICAL_REGION_EXIT()
#define NRFX_CRITICAL_SECTION_EXIT() common_hal_mcu_enable_interrupts()
//------------------------------------------------------------------------------

View File

@ -50,6 +50,7 @@
#include "common-hal/pulseio/PulseIn.h"
#include "common-hal/rtc/RTC.h"
#include "common-hal/neopixel_write/__init__.h"
#include "common-hal/watchdog/WatchDogTimer.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/rtc/__init__.h"
@ -77,13 +78,19 @@ const nrfx_rtc_config_t rtc_config = {
.interrupt_priority = 6
};
static volatile uint64_t overflowed_ticks = 0;
#define OVERFLOW_CHECK_PREFIX 0x2cad564f
#define OVERFLOW_CHECK_SUFFIX 0x11343ef7
static volatile struct {
uint32_t prefix;
uint64_t overflowed_ticks;
uint32_t suffix;
} overflow_tracker __attribute__((section(".uninitialized")));
void rtc_handler(nrfx_rtc_int_type_t int_type) {
if (int_type == NRFX_RTC_INT_OVERFLOW) {
// Our RTC is 24 bits and we're clocking it at 32.768khz which is 32 (2 ** 5) subticks per
// tick.
overflowed_ticks += (1L<< (24 - 5));
overflow_tracker.overflowed_ticks += (1L<< (24 - 5));
} else if (int_type == NRFX_RTC_INT_TICK && nrfx_rtc_counter_get(&rtc_instance) % 32 == 0) {
// Do things common to all ports when the tick occurs
supervisor_tick();
@ -100,6 +107,17 @@ void tick_init(void) {
nrfx_rtc_init(&rtc_instance, &rtc_config, rtc_handler);
nrfx_rtc_enable(&rtc_instance);
nrfx_rtc_overflow_enable(&rtc_instance, true);
// If the check prefix and suffix aren't correct, then the structure
// in memory isn't correct and the clock will be wildly wrong. Initialize
// the prefix and suffix so that we know the value is correct, and reset
// the time to 0.
if (overflow_tracker.prefix != OVERFLOW_CHECK_PREFIX ||
overflow_tracker.suffix != OVERFLOW_CHECK_SUFFIX) {
overflow_tracker.prefix = OVERFLOW_CHECK_PREFIX;
overflow_tracker.suffix = OVERFLOW_CHECK_SUFFIX;
overflow_tracker.overflowed_ticks = 0;
}
}
safe_mode_t port_init(void) {
@ -131,6 +149,21 @@ safe_mode_t port_init(void) {
analogin_init();
#endif
// If the board was reset by the WatchDogTimer, we may
// need to boot into safe mode. Reset the RESETREAS bit
// for the WatchDogTimer so we don't encounter this the
// next time we reboot.
if (NRF_POWER->RESETREAS & POWER_RESETREAS_DOG_Msk) {
NRF_POWER->RESETREAS = POWER_RESETREAS_DOG_Msk;
uint32_t usb_reg = NRF_POWER->USBREGSTATUS;
// If USB is connected, then the user might be editing `code.py`,
// in which case we should reboot into Safe Mode.
if (usb_reg & POWER_USBREGSTATUS_VBUSDETECT_Msk) {
return WATCHDOG_RESET;
}
}
return NO_SAFE_MODE;
}
@ -174,6 +207,10 @@ void reset_port(void) {
bleio_reset();
#endif
#if CIRCUITPY_WATCHDOG
watchdog_reset();
#endif
reset_all_pins();
}
@ -185,6 +222,10 @@ void reset_to_bootloader(void) {
}
void reset_cpu(void) {
// We're getting ready to reset, so save the counter off.
// This counter will get reset to zero during the reboot.
uint32_t ticks = nrfx_rtc_counter_get(&rtc_instance);
overflow_tracker.overflowed_ticks += ticks / 32;
NVIC_SystemReset();
}
@ -228,7 +269,7 @@ uint64_t port_get_raw_ticks(uint8_t* subticks) {
if (subticks != NULL) {
*subticks = (rtc % 32);
}
return overflowed_ticks + rtc / 32;
return overflow_tracker.overflowed_ticks + rtc / 32;
}
// Enable 1/1024 second tick.

View File

@ -23,4 +23,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -24,4 +24,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -24,4 +24,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -25,4 +25,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -25,4 +25,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -24,4 +24,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -24,4 +24,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -49,4 +49,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -24,4 +24,3 @@ _estack = ORIGIN(RAM) + LENGTH(RAM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -36,4 +36,3 @@ _estack = ORIGIN(DTCM) + LENGTH(DTCM);
/* RAM extents for the garbage collector */
_ram_start = ORIGIN(RAM);
_ram_end = ORIGIN(RAM) + LENGTH(RAM);

View File

@ -96,4 +96,3 @@ SECTIONS
.ARM.attributes 0 : { *(.ARM.attributes) }
}

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