Merge branch 'main' of https://github.com/adafruit/circuitpython into ci_check_vid_pid

This commit is contained in:
sommersoft 2020-06-20 08:41:41 -05:00
commit 023054e67a
444 changed files with 6426 additions and 3309 deletions

View File

@ -16,14 +16,11 @@ jobs:
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
- uses: actions/checkout@v2.2.0
with:
submodules: true
fetch-depth: 0
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
- run: git submodule sync
- run: git submodule foreach git remote -v
- run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
- name: CircuitPython version
run: git describe --dirty --tags
- name: Set up Python 3.8
@ -66,8 +63,16 @@ jobs:
working-directory: tests
- name: Stubs
run: make stubs -j2
- uses: actions/upload-artifact@v2
with:
name: stubs
path: circuitpython-stubs*
- name: Docs
run: sphinx-build -E -W -b html . _build/html
- uses: actions/upload-artifact@v2
with:
name: docs
path: _build/html
- name: Translations
run: make check-translate
- name: New boards check
@ -112,14 +117,11 @@ jobs:
gcc --version
python3 --version
msgfmt --version
- uses: actions/checkout@v2
- uses: actions/checkout@v2.2.0
with:
submodules: true
fetch-depth: 0
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
- run: git submodule sync
- run: git submodule foreach git remote -v
- run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
- name: CircuitPython version
run: git describe --dirty --tags
- name: Build mpy-cross
@ -207,6 +209,7 @@ jobs:
- "monster_m4sk"
- "ndgarage_ndbit6"
- "nfc_copy_cat"
- "nice_nano"
- "nucleo_f746zg"
- "nucleo_f767zi"
- "nucleo_h743zi_2"
@ -287,14 +290,11 @@ jobs:
gcc --version
arm-none-eabi-gcc --version
python3 --version
- uses: actions/checkout@v2
- uses: actions/checkout@v2.2.0
with:
submodules: true
fetch-depth: 0
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
- run: git submodule sync
- run: git submodule foreach git remote -v
- run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
- name: mpy-cross
run: make -C mpy-cross -j2
- name: build
@ -338,14 +338,11 @@ jobs:
gcc --version
riscv64-unknown-elf-gcc --version
python3 --version
- uses: actions/checkout@v2
- uses: actions/checkout@v2.2.0
with:
submodules: true
fetch-depth: 0
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
- run: git submodule sync
- run: git submodule foreach git remote -v
- run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
- name: mpy-cross
run: make -C mpy-cross -j2
- name: build
@ -378,14 +375,11 @@ jobs:
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/checkout@v2
- uses: actions/checkout@v2.2.0
with:
submodules: true
fetch-depth: 0
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
- run: git submodule sync
- run: git submodule foreach git remote -v
- run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
- name: CircuitPython version
run: git describe --dirty --tags
- uses: actions/cache@v1

View File

@ -23,12 +23,11 @@ jobs:
run: |
gcc --version
python3 --version
- uses: actions/checkout@v2
- uses: actions/checkout@v2.2.0
with:
submodules: true
fetch-depth: 0
- run: git fetch --recurse-submodules=no https://github.com/adafruit/circuitpython refs/tags/*:refs/tags/*
- run: git submodule foreach git fetch --recurse-submodules=no origin +refs/tags/*:refs/tags/*
- name: CircuitPython version
run: git describe --dirty --tags
- name: Website

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: [main]
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

1
.gitignore vendored
View File

@ -53,6 +53,7 @@ _build
######################
genrst/
/autoapi/
/shared-bindings/**/*.rst
# ctags and similar
###################

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

50
conf.py
View File

@ -14,11 +14,13 @@
# serve to show the default.
import json
import sys
import logging
import os
import subprocess
import sys
import urllib.parse
import recommonmark
import subprocess
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@ -79,6 +81,9 @@ autoapi_add_toctree_entry = False
autoapi_options = ['members', 'undoc-members', 'private-members', 'show-inheritance', 'special-members', 'show-module-summary']
autoapi_template_dir = 'docs/autoapi/templates'
autoapi_python_use_implicit_namespaces = True
autoapi_root = "shared-bindings"
redirects_file = 'docs/redirects.txt'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
@ -374,5 +379,46 @@ intersphinx_mapping = {"cpython": ('https://docs.python.org/3/', None),
"bus_device": ('https://circuitpython.readthedocs.io/projects/busdevice/en/latest/', None),
"register": ('https://circuitpython.readthedocs.io/projects/register/en/latest/', None)}
# Adapted from sphinxcontrib-redirects
from sphinx.builders import html as builders
TEMPLATE = """<html>
<head><meta http-equiv="refresh" content="0; url=%s"/></head>
</html>
"""
def generate_redirects(app):
path = os.path.join(app.srcdir, app.config.redirects_file)
if not os.path.exists(path):
app.info("Could not find redirects file at '%s'" % path)
return
if not type(app.builder) == builders.StandaloneHTMLBuilder:
logging.warn("The 'sphinxcontib-redirects' plugin is only supported "
"by the 'html' builder. Skipping...")
return
with open(path) as redirects:
for line in redirects.readlines():
from_path, to_path = line.rstrip().split(' ')
logging.debug("Redirecting '%s' to '%s'" % (from_path, to_path))
from_path = os.path.splitext(from_path)[0] + ".html"
to_path_prefix = '..%s' % os.path.sep * (
len(from_path.split(os.path.sep)) - 1)
to_path = to_path_prefix + to_path
redirected_filename = os.path.join(app.builder.outdir, from_path)
redirected_directory = os.path.dirname(redirected_filename)
if not os.path.exists(redirected_directory):
os.makedirs(redirected_directory)
with open(redirected_filename, 'w') as f:
f.write(TEMPLATE % urllib.parse.quote(to_path, '#/'))
def setup(app):
app.add_css_file("customstyle.css")
app.add_config_value('redirects_file', 'redirects', 'env')
app.connect('builder-inited', generate_redirects)

94
docs/redirects.txt Normal file
View File

@ -0,0 +1,94 @@
shared-bindings/frequencyio/FrequencyIn.rst shared-bindings/frequencyio/#frequencyio.FrequencyIn
shared-bindings/fontio/BuiltinFont.rst shared-bindings/fontio/#fontio.BuiltinFont
shared-bindings/fontio/Glyph.rst shared-bindings/fontio/#fontio.Glyph
shared-bindings/aesio/AES.rst shared-bindings/aesio/#aesio.AES
shared-bindings/supervisor/Runtime.rst shared-bindings/supervisor/#supervisor.Runtime
shared-bindings/terminalio/Terminal.rst shared-bindings/terminalio/#terminalio.Terminal
shared-bindings/audiopwmio/PWMAudioOut.rst shared-bindings/audiopwmio/#audiopwmio.PWMAudioOut
shared-bindings/gamepadshift/GamePadShift.rst shared-bindings/gamepadshift/#gamepadshift.GamePadShift
shared-bindings/vectorio/Circle.rst shared-bindings/vectorio/#vectorio.Circle
shared-bindings/vectorio/Polygon.rst shared-bindings/vectorio/#vectorio.Polygon
shared-bindings/vectorio/Rectangle.rst shared-bindings/vectorio/#vectorio.Rectangle
shared-bindings/vectorio/VectorShape.rst shared-bindings/vectorio/#vectorio.VectorShape
shared-bindings/displayio/Bitmap.rst shared-bindings/displayio/#displayio.Bitmap
shared-bindings/displayio/ColorConverter.rst shared-bindings/displayio/#displayio.ColorConverter
shared-bindings/displayio/Display.rst shared-bindings/displayio/#displayio.Display
shared-bindings/displayio/EPaperDisplay.rst shared-bindings/displayio/#displayio.EPaperDisplay
shared-bindings/displayio/FourWire.rst shared-bindings/displayio/#displayio.FourWire
shared-bindings/displayio/Group.rst shared-bindings/displayio/#displayio.Group
shared-bindings/displayio/I2CDisplay.rst shared-bindings/displayio/#displayio.I2CDisplay
shared-bindings/displayio/OnDiskBitmap.rst shared-bindings/displayio/#displayio.OnDiskBitmap
shared-bindings/displayio/Palette.rst shared-bindings/displayio/#displayio.Palette
shared-bindings/displayio/ParallelBus.rst shared-bindings/displayio/#displayio.ParallelBus
shared-bindings/displayio/Shape.rst shared-bindings/displayio/#displayio.Shape
shared-bindings/displayio/TileGrid.rst shared-bindings/displayio/#displayio.TileGrid
shared-bindings/_pixelbuf/PixelBuf.rst shared-bindings/_pixelbuf/#_pixelbuf.PixelBuf
shared-bindings/gamepad/GamePad.rst shared-bindings/gamepad/#gamepad.GamePad
shared-bindings/_pew/PewPew.rst shared-bindings/_pew/#_pew.PewPew
shared-bindings/rotaryio/IncrementalEncoder.rst shared-bindings/rotaryio/#rotaryio.IncrementalEncoder
shared-bindings/audiomixer/Mixer.rst shared-bindings/audiomixer/#audiomixer.Mixer
shared-bindings/audiomixer/MixerVoice.rst shared-bindings/audiomixer/#audiomixer.MixerVoice
shared-bindings/pulseio/PWMOut.rst shared-bindings/pulseio/#pulseio.PWMOut
shared-bindings/pulseio/PulseIn.rst shared-bindings/pulseio/#pulseio.PulseIn
shared-bindings/pulseio/PulseOut.rst shared-bindings/pulseio/#pulseio.PulseOut
shared-bindings/time/struct_time.rst shared-bindings/time/#time.struct_time
shared-bindings/i2cslave/I2CSlave.rst shared-bindings/i2cslave/#i2cslave.I2CSlave
shared-bindings/i2cslave/I2CSlaveRequest.rst shared-bindings/i2cslave/#i2cslave.I2CSlaveRequest
shared-bindings/nvm/ByteArray.rst shared-bindings/nvm/#nvm.ByteArray
shared-bindings/busio/I2C.rst shared-bindings/busio/#busio.I2C
shared-bindings/busio/OneWire.rst shared-bindings/busio/#busio.OneWire
shared-bindings/busio/SPI.rst shared-bindings/busio/#busio.SPI
shared-bindings/busio/UART.rst shared-bindings/busio/#busio.UART
shared-bindings/busio/Parity.rst shared-bindings/busio/#busio.Parity
shared-bindings/ulab/array.rst shared-bindings/ulab/#ulab.array
shared-bindings/watchdog/WatchDogMode.rst shared-bindings/watchdog/#watchdog.WatchDogMode
shared-bindings/watchdog/WatchDogTimer.rst shared-bindings/watchdog/#watchdog.WatchDogTimer
shared-bindings/audioio/AudioOut.rst shared-bindings/audioio/#audioio.AudioOut
shared-bindings/ps2io/Ps2.rst shared-bindings/ps2io/#ps2io.Ps2
shared-bindings/touchio/TouchIn.rst shared-bindings/touchio/#touchio.TouchIn
shared-bindings/rgbmatrix/RGBMatrix.rst shared-bindings/rgbmatrix/#rgbmatrix.RGBMatrix
shared-bindings/audiomp3/MP3.rst shared-bindings/audiomp3/#audiomp3.MP3
shared-bindings/usb_midi/PortIn.rst shared-bindings/usb_midi/#usb_midi.PortIn
shared-bindings/usb_midi/PortOut.rst shared-bindings/usb_midi/#usb_midi.PortOut
shared-bindings/usb_hid/Device.rst shared-bindings/usb_hid/#usb_hid.Device
shared-bindings/wiznet/WIZNET5K.rst shared-bindings/wiznet/#wiznet.WIZNET5K
shared-bindings/_bleio/BluetoothError.rst shared-bindings/_bleio/#_bleio.BluetoothError
shared-bindings/_bleio/ConnectionError.rst shared-bindings/_bleio/#_bleio.ConnectionError
shared-bindings/_bleio/RoleError.rst shared-bindings/_bleio/#_bleio.RoleError
shared-bindings/_bleio/SecurityError.rst shared-bindings/_bleio/#_bleio.SecurityError
shared-bindings/_bleio/Adapter.rst shared-bindings/_bleio/#_bleio.Adapter
shared-bindings/_bleio/Address.rst shared-bindings/_bleio/#_bleio.Address
shared-bindings/_bleio/Attribute.rst shared-bindings/_bleio/#_bleio.Attribute
shared-bindings/_bleio/Characteristic.rst shared-bindings/_bleio/#_bleio.Characteristic
shared-bindings/_bleio/CharacteristicBuffer.rst shared-bindings/_bleio/#_bleio.CharacteristicBuffer
shared-bindings/_bleio/Connection.rst shared-bindings/_bleio/#_bleio.Connection
shared-bindings/_bleio/Descriptor.rst shared-bindings/_bleio/#_bleio.Descriptor
shared-bindings/_bleio/PacketBuffer.rst shared-bindings/_bleio/#_bleio.PacketBuffer
shared-bindings/_bleio/ScanEntry.rst shared-bindings/_bleio/#_bleio.ScanEntry
shared-bindings/_bleio/ScanResults.rst shared-bindings/_bleio/#_bleio.ScanResults
shared-bindings/_bleio/Service.rst shared-bindings/_bleio/#_bleio.Service
shared-bindings/_bleio/UUID.rst shared-bindings/_bleio/#_bleio.UUID
shared-bindings/socket/socket.rst shared-bindings/socket/#socket.socket
shared-bindings/microcontroller/Pin.rst shared-bindings/microcontroller/#microcontroller.Pin
shared-bindings/microcontroller/Processor.rst shared-bindings/microcontroller/#microcontroller.Processor
shared-bindings/microcontroller/RunMode.rst shared-bindings/microcontroller/#microcontroller.RunMode
shared-bindings/audiocore/RawSample.rst shared-bindings/audiocore/#audiocore.RawSample
shared-bindings/audiocore/WaveFile.rst shared-bindings/audiocore/#audiocore.WaveFile
shared-bindings/framebufferio/FramebufferDisplay.rst shared-bindings/framebufferio/#framebufferio.FramebufferDisplay
shared-bindings/audiobusio/I2SOut.rst shared-bindings/audiobusio/#audiobusio.I2SOut
shared-bindings/audiobusio/PDMIn.rst shared-bindings/audiobusio/#audiobusio.PDMIn
shared-bindings/countio/Counter.rst shared-bindings/countio/#countio.Counter
shared-bindings/storage/VfsFat.rst shared-bindings/storage/#storage.VfsFat
shared-bindings/digitalio/DigitalInOut.rst shared-bindings/digitalio/#digitalio.DigitalInOut
shared-bindings/digitalio/Direction.rst shared-bindings/digitalio/#digitalio.Direction
shared-bindings/digitalio/DriveMode.rst shared-bindings/digitalio/#digitalio.DriveMode
shared-bindings/digitalio/Pull.rst shared-bindings/digitalio/#digitalio.Pull
shared-bindings/bitbangio/I2C.rst shared-bindings/bitbangio/#bitbangio.I2C
shared-bindings/bitbangio/OneWire.rst shared-bindings/bitbangio/#bitbangio.OneWire
shared-bindings/bitbangio/SPI.rst shared-bindings/bitbangio/#bitbangio.SPI
shared-bindings/rtc/RTC.rst shared-bindings/rtc/#rtc.RTC
shared-bindings/analogio/AnalogIn.rst shared-bindings/analogio/#analogio.AnalogIn
shared-bindings/analogio/AnalogOut.rst shared-bindings/analogio/#analogio.AnalogOut
shared-bindings/_stage/Layer.rst shared-bindings/_stage/#_stage.Layer
shared-bindings/_stage/Text.rst shared-bindings/_stage/#_stage.Text
shared-bindings/samd/Clock.rst shared-bindings/samd/#samd.Clock

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-26 13:09-0700\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"
@ -372,6 +372,10 @@ msgstr "Bit clock dan word harus memiliki kesamaan pada clock unit"
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Kedua pin harus mendukung hardware interrut"
@ -812,7 +816,7 @@ msgstr ""
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -881,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 ""
@ -891,11 +895,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr "Frekuensi PWM tidak valid"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -971,7 +975,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1367,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"
@ -1430,7 +1437,7 @@ msgstr ""
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1662,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 ""
@ -2104,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 ""
@ -2236,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 ""
@ -2289,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 ""
@ -2375,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"
@ -2419,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"
@ -3049,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 ""
@ -3087,8 +3146,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx dan rx keduanya tidak boleh kosong"
@ -3204,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 ""
@ -3216,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 ""
@ -3228,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-26 13:09-0700\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"
@ -368,6 +368,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -801,7 +805,7 @@ msgstr ""
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -870,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 ""
@ -880,11 +884,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -960,7 +964,9 @@ 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/nrf/common-hal/busio/I2C.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 ""
@ -1351,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 ""
@ -1414,7 +1421,7 @@ msgstr ""
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1645,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 ""
@ -2080,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 ""
@ -2212,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 ""
@ -2265,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 ""
@ -2351,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 ""
@ -2395,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"
@ -3024,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 ""
@ -3061,8 +3120,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr ""
@ -3178,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 ""
@ -3190,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 ""
@ -3202,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

@ -3,25 +3,28 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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"
"Language: \n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.1-dev\n"
#: main.c
msgid ""
"\n"
"Code done running. Waiting for reload.\n"
msgstr ""
"\n"
"Kód byl dokončen. Čekám na opětovné načtení.\n"
#: supervisor/shared/safe_mode.c
msgid ""
@ -29,65 +32,70 @@ msgid ""
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
msgstr ""
"\n"
"Založte prosím problém s obsahem vaší jednotky CIRCUITPY na adrese\n"
"https://github.com/adafruit/circuitpython/issues\n"
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"To exit, please reset the board without "
msgstr ""
"\n"
"Pro ukončení, prosím resetujte desku bez "
#: py/obj.c
msgid " File \"%q\""
msgstr ""
msgstr "  Soubor \"% q\""
#: py/obj.c
msgid " File \"%q\", line %d"
msgstr ""
msgstr "  Soubor \"% q\", řádek% d"
#: main.c
msgid " output:\n"
msgstr ""
msgstr " výstup:\n"
#: py/objstr.c
#, c-format
msgid "%%c requires int or char"
msgstr ""
msgstr "%% c vyžaduje int nebo char"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
msgstr ""
msgstr "%d adresní piny a %d rgb piny označují výšku %d, nikoli %d"
#: shared-bindings/microcontroller/Pin.c
msgid "%q in use"
msgstr ""
msgstr "%q se nyní používá"
#: py/obj.c
msgid "%q index out of range"
msgstr ""
msgstr "%q index je mimo rozsah"
#: py/obj.c
msgid "%q indices must be integers, not %s"
msgstr ""
msgstr "Indexy% q musí být celá čísla, nikoli% s"
#: shared-bindings/vectorio/Polygon.c
msgid "%q list must be a list"
msgstr ""
msgstr "Seznam% q musí být seznam"
#: shared-bindings/_bleio/CharacteristicBuffer.c
#: shared-bindings/_bleio/PacketBuffer.c shared-bindings/displayio/Group.c
#: shared-bindings/displayio/Shape.c shared-bindings/vectorio/Circle.c
#: shared-bindings/vectorio/Rectangle.c
msgid "%q must be >= 1"
msgstr ""
msgstr "% q musí být > = 1"
#: shared-module/vectorio/Polygon.c
msgid "%q must be a tuple of length 2"
msgstr ""
msgstr "% q musí být n-tice délky 2"
#: shared-bindings/fontio/BuiltinFont.c
msgid "%q should be an int"
msgstr ""
msgstr "% q by měl být int"
#: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given"
@ -368,6 +376,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -801,7 +813,7 @@ msgstr ""
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -870,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 ""
@ -880,11 +892,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -960,7 +972,9 @@ 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/nrf/common-hal/busio/I2C.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 ""
@ -1351,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 ""
@ -1414,7 +1429,7 @@ msgstr ""
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1645,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 ""
@ -2080,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 ""
@ -2212,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 ""
@ -2265,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 ""
@ -2351,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 ""
@ -2395,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"
@ -3024,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 ""
@ -3061,8 +3128,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr ""
@ -3178,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 ""
@ -3190,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 ""
@ -3202,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 ""

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-26 13:09-0700\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"
@ -368,6 +368,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -801,7 +805,7 @@ msgstr ""
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -870,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 ""
@ -880,11 +884,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -960,7 +964,9 @@ 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/nrf/common-hal/busio/I2C.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 ""
@ -1351,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 ""
@ -1414,7 +1421,7 @@ msgstr ""
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -2080,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 ""
@ -2212,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 ""
@ -2265,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 ""
@ -2351,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 ""
@ -2395,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"
@ -3061,8 +3096,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr ""
@ -3190,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 ""
@ -3202,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-26 13:09-0700\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/"
@ -377,6 +377,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -810,7 +814,7 @@ msgstr ""
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -879,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 ""
@ -889,11 +893,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -969,7 +973,9 @@ 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/nrf/common-hal/busio/I2C.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 +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 ""
@ -1423,7 +1430,7 @@ msgstr ""
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -2089,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 ""
@ -2221,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 ""
@ -2274,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 ""
@ -2360,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 ""
@ -2404,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"
@ -3070,8 +3105,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr ""
@ -3199,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 ""
@ -3211,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-26 13:09-0700\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"
@ -375,6 +375,10 @@ msgstr "Bit clock y word select deben compartir una unidad de reloj"
msgid "Bit depth must be multiple of 8."
msgstr "Bits depth debe ser múltiplo de 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Ambos pines deben soportar interrupciones por hardware"
@ -808,7 +812,7 @@ msgstr "Group lleno"
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -879,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 ""
@ -889,11 +893,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr "Frecuencia PWM inválida"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -969,7 +973,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1369,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"
@ -1432,7 +1439,7 @@ msgstr "El tamaño de la pila debe ser de al menos 256"
msgid "Stream missing readinto() or write() method."
msgstr "A Stream le falta el método readinto() o write()."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1664,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 ""
@ -2111,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 ""
@ -2245,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 ""
@ -2298,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 ""
@ -2384,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"
@ -2428,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"
@ -3067,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 ""
@ -3104,8 +3163,7 @@ msgstr "tupla/lista tiene una longitud incorrecta"
msgid "tuple/list required on RHS"
msgstr "tuple/lista se require en RHS"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "Ambos tx y rx no pueden ser None"
@ -3221,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 ""
@ -3233,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"
@ -3245,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-26 13:09-0700\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"
@ -374,6 +374,10 @@ msgstr "Ang bit clock at word select dapat makibahagi sa isang clock unit"
msgid "Bit depth must be multiple of 8."
msgstr "Bit depth ay dapat multiple ng 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Ang parehong mga pin ay dapat na sumusuporta sa hardware interrupts"
@ -815,7 +819,7 @@ msgstr "Puno ang group"
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -886,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 ""
@ -896,11 +900,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr "Mali ang PWM frequency"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -976,7 +980,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1374,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"
@ -1437,7 +1444,7 @@ msgstr "Ang laki ng stack ay dapat na hindi bababa sa 256"
msgid "Stream missing readinto() or write() method."
msgstr "Stream kulang ng readinto() o write() method."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1672,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 ""
@ -2120,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 ""
@ -2257,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 ""
@ -2310,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 ""
@ -2397,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"
@ -2441,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"
@ -3079,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 ""
@ -3117,8 +3176,7 @@ msgstr "mali ang haba ng tuple/list"
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx at rx hindi pwedeng parehas na None"
@ -3234,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 ""
@ -3246,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"
@ -3258,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,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
"PO-Revision-Date: 2020-05-26 19:37+0000\n"
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
"PO-Revision-Date: 2020-06-05 17:29+0000\n"
"Last-Translator: aberwag <aberwag@gmail.com>\n"
"Language-Team: French <https://later.unpythonic.net/projects/circuitpython/"
"circuitpython-master/fr/>\n"
"Language: 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
@ -386,6 +386,10 @@ msgstr "'bit clock' et 'word select' doivent partager une horloge"
msgid "Bit depth must be multiple of 8."
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 "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"
msgstr "Les deux entrées doivent supporter les interruptions matérielles"
@ -830,7 +834,7 @@ msgstr "Groupe plein"
msgid "Hardware busy, try alternative pins"
msgstr "Matériel occupé, essayez d'autres broches"
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr "Matériel utilisé, essayez d'autres broches"
@ -901,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"
@ -911,11 +915,11 @@ msgstr "Sélection de broches I2C non valide"
msgid "Invalid PWM frequency"
msgstr "Fréquence de PWM invalide"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr "Sélection de broches SPI non valide"
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr "Sélection de broches UART non valide"
@ -991,7 +995,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1276,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"
@ -1395,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')"
@ -1458,7 +1465,7 @@ msgstr "La pile doit être au moins de 256"
msgid "Stream missing readinto() or write() method."
msgstr "Il manque une méthode readinto() ou write() au flux."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr "Fournissez au moins une broche UART"
@ -1706,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 "Le minuteur Watchdog a expiré."
#: py/builtinhelp.c
#, c-format
msgid ""
@ -2158,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"
@ -2294,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"
@ -2347,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 ""
@ -2435,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"
@ -2479,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"
@ -3120,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"
@ -3157,8 +3220,7 @@ msgstr "tuple/liste a une mauvaise longueur"
msgid "tuple/list required on RHS"
msgstr "tuple ou liste requis en partie droite"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx et rx ne peuvent être 'None' tous les deux"
@ -3274,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"
@ -3286,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"
@ -3298,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-26 13:09-0700\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"
@ -374,6 +374,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr "La profondità di bit deve essere multipla di 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Entrambi i pin devono supportare gli interrupt hardware"
@ -815,7 +819,7 @@ msgstr "Gruppo pieno"
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -886,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 ""
@ -896,11 +900,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr "Frequenza PWM non valida"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -978,7 +982,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1383,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"
@ -1448,7 +1455,7 @@ msgstr "La dimensione dello stack deve essere almeno 256"
msgid "Stream missing readinto() or write() method."
msgstr "Metodi mancanti readinto() o write() allo stream."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1681,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 ""
@ -2122,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 ""
@ -2258,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 ""
@ -2311,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 ""
@ -2398,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"
@ -2442,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"
@ -3086,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 ""
@ -3124,8 +3183,7 @@ msgstr "tupla/lista ha la lunghezza sbagliata"
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx e rx non possono essere entrambi None"
@ -3241,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 ""
@ -3253,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"
@ -3265,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-26 13:09-0700\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"
@ -372,6 +372,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -805,7 +809,7 @@ msgstr ""
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -874,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 ""
@ -884,11 +888,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -964,7 +968,9 @@ 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/nrf/common-hal/busio/I2C.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 "핀이 유효하지 않습니다"
@ -1355,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 ""
@ -1418,7 +1425,7 @@ msgstr ""
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1650,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 ""
@ -2085,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 ""
@ -2217,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 ""
@ -2270,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 ""
@ -2356,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 ""
@ -2400,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"
@ -3029,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 ""
@ -3066,8 +3125,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr ""
@ -3183,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 ""
@ -3195,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 ""
@ -3207,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 ""

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-26 13:09-0700\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"
@ -371,6 +371,10 @@ msgstr "Zegar bitowy i wybór słowa muszą współdzielić jednostkę zegara"
msgid "Bit depth must be multiple of 8."
msgstr "Głębia musi być wielokrotnością 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Obie nóżki muszą wspierać przerwania sprzętowe"
@ -804,7 +808,7 @@ msgstr "Grupa pełna"
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -875,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 ""
@ -885,11 +889,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr "Zła częstotliwość PWM"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -965,7 +969,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1356,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"
@ -1419,7 +1426,7 @@ msgstr "Stos musi mieć co najmniej 256 bajtów"
msgid "Stream missing readinto() or write() method."
msgstr "Strumień nie ma metod readinto() lub write()."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1650,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 ""
@ -2088,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 ""
@ -2221,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 ""
@ -2274,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 ""
@ -2360,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ą"
@ -2404,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"
@ -3035,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 ""
@ -3072,8 +3131,7 @@ msgstr "krotka/lista ma złą długość"
msgid "tuple/list required on RHS"
msgstr "wymagana krotka/lista po prawej stronie"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx i rx nie mogą być oba None"
@ -3189,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 ""
@ -3201,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"
@ -3213,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-26 13:09-0700\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"
@ -371,6 +371,10 @@ msgstr ""
msgid "Bit depth must be multiple of 8."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Ambos os pinos devem suportar interrupções de hardware"
@ -810,7 +814,7 @@ msgstr "Grupo cheio"
msgid "Hardware busy, try alternative pins"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr ""
@ -879,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 ""
@ -889,11 +893,11 @@ msgstr ""
msgid "Invalid PWM frequency"
msgstr "Frequência PWM inválida"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr ""
@ -971,7 +975,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1368,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"
@ -1431,7 +1438,7 @@ msgstr "O tamanho da pilha deve ser pelo menos 256"
msgid "Stream missing readinto() or write() method."
msgstr ""
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr ""
@ -1663,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 ""
@ -2101,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 ""
@ -2234,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 ""
@ -2287,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 ""
@ -2373,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 ""
@ -2417,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"
@ -3047,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 ""
@ -3085,8 +3144,7 @@ msgstr ""
msgid "tuple/list required on RHS"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "TX e RX não podem ser ambos"
@ -3202,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 ""
@ -3214,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 ""
@ -3226,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-26 13:09-0700\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-03 18:59+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
@ -153,7 +153,7 @@ msgstr "'%s' heltal %d ligger inte inom intervallet %d..%d"
#: py/emitinlinethumb.c
#, c-format
msgid "'%s' integer 0x%x does not fit in mask 0x%x"
msgstr "'%s' heltal 0x%x r inte plats i mask 0x%x"
msgstr "'%s' heltal 0x%x ryms inte i mask 0x%x"
#: py/runtime.c
msgid "'%s' object cannot assign attribute '%q'"
@ -166,12 +166,12 @@ msgstr "Objektet '%s' har inte stöd för '%q'"
#: py/obj.c
#, c-format
msgid "'%s' object does not support item assignment"
msgstr "Objektet \"%s\" stöder inte tilldelning av objekt"
msgstr "Objektet '%s' stöder inte tilldelningen"
#: py/obj.c
#, c-format
msgid "'%s' object does not support item deletion"
msgstr "'%s'-objekt stöder inte borttagning av objekt"
msgstr "Objektet '%s' stöder inte borttagning av objekt"
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
@ -190,16 +190,16 @@ msgstr "Objektet '%s' kan inte anropas"
#: py/runtime.c
#, c-format
msgid "'%s' object is not iterable"
msgstr "Objektet '%s' är inte itererbar"
msgstr "Objektet '%s' är inte itererable"
#: py/obj.c
#, c-format
msgid "'%s' object is not subscriptable"
msgstr "Objektet \"%s\" är inte indexbar"
msgstr "Objektet '%s' är inte indexbar"
#: py/objstr.c
msgid "'=' alignment not allowed in string format specifier"
msgstr "'='-justering tillåts inte i strängformatspecificerare"
msgstr "'='-justering tillåts inte i strängformatspecifikation"
#: shared-module/struct/__init__.c
msgid "'S' and 'O' are not supported format types"
@ -211,7 +211,7 @@ msgstr "'align' kräver 1 argument"
#: py/compile.c
msgid "'async for' or 'async with' outside async function"
msgstr "'async for' eller 'async with' utanför asynk-funktion"
msgstr "'async for' eller 'async with' utanför async-funktion"
#: py/compile.c
msgid "'await' outside function"
@ -264,7 +264,7 @@ msgstr "3-arguments pow() stöds inte"
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
msgstr "En kanal för hårdvaruavbrotts används redan"
msgstr "En kanal för hårdvaruavbrott används redan"
#: shared-bindings/_bleio/Address.c
#, c-format
@ -285,7 +285,7 @@ msgstr "All SPI-kringutrustning används"
#: ports/nrf/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Alla UART-tillbehör används"
msgstr "Alla UART-kringutrustning används"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "All event channels in use"
@ -316,7 +316,7 @@ msgstr "Annonserar redan."
#: ports/cxd56/common-hal/analogio/AnalogIn.c
msgid "AnalogIn not supported on given pin"
msgstr "AnalogIn stöds inte på en given pinne"
msgstr "AnalogIn stöds inte på angiven pinne"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
@ -326,16 +326,16 @@ msgstr "AnalogOut-funktionalitet stöds inte"
#: shared-bindings/analogio/AnalogOut.c
msgid "AnalogOut is only 16 bits. Value must be less than 65536."
msgstr "AnalogOut är bara 16 bitar. Värdet måste vara mindre än 65536."
msgstr "AnalogOut hanterar bara 16 bitar. Värdet måste vara mindre än 65536."
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
msgid "AnalogOut not supported on given pin"
msgstr "AnalogOut stöds inte på given pinne"
msgstr "AnalogOut stöds inte på angiven pinne"
#: ports/atmel-samd/common-hal/pulseio/PulseOut.c
#: ports/cxd56/common-hal/pulseio/PulseOut.c
msgid "Another send is already active"
msgstr "En annan sändning är redan aktiv"
msgstr "En annan send är redan aktiv"
#: shared-bindings/pulseio/PulseOut.c
msgid "Array must contain halfwords (type 'H')"
@ -343,7 +343,7 @@ msgstr "Matrisen måste innehålla halfwords (typ \"H\")"
#: shared-bindings/nvm/ByteArray.c
msgid "Array values should be single bytes."
msgstr "Matrisvärden ska vara enstaka byte."
msgstr "Matrisvärden ska bestå av enstaka bytes."
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "At most %d %q may be specified (not %d)"
@ -351,7 +351,7 @@ msgstr "Högst %d %q kan anges (inte %d)"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when MicroPython VM not running."
msgstr "Försökte tilldelning av heap när MicroPython VM inte körs."
msgstr "Försökte tilldela heap när MicroPython VM inte körs."
#: main.c
msgid "Auto-reload is off.\n"
@ -376,7 +376,11 @@ msgstr "Bitklocka och ordval måste dela en klockenhet"
#: shared-bindings/audiobusio/PDMIn.c
msgid "Bit depth must be multiple of 8."
msgstr "Bitdjupet måste vara multipel av 8."
msgstr "Bitdjup måste vara multipel av 8."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
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"
@ -386,16 +390,16 @@ msgstr "Båda pinnarna måste stödja maskinvaruavbrott"
#: shared-bindings/framebufferio/FramebufferDisplay.c
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "Brightness must be 0-1.0"
msgstr "Ljusstyrkan måste vara 0-1,0"
msgstr "Ljusstyrkan måste vara mellan 0 och 1,0"
#: shared-bindings/supervisor/__init__.c
msgid "Brightness must be between 0 and 255"
msgstr "Ljusstyrkan måste vara mellan 0 och 255"
msgstr "Ljusstyrka måste vara mellan 0 och 255"
#: shared-bindings/displayio/Display.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
msgid "Brightness not adjustable"
msgstr "Ljusstyrkan kan inte justeras"
msgstr "Ljusstyrka kan inte justeras"
#: shared-bindings/_bleio/UUID.c
#, c-format
@ -433,7 +437,7 @@ msgstr "Bufferten är för stor och kan inte allokeras"
#: shared-bindings/_bleio/PacketBuffer.c
#, c-format
msgid "Buffer too short by %d bytes"
msgstr "Buffert för kort med %d bytes"
msgstr "Buffert år %d bytes för kort"
#: ports/atmel-samd/common-hal/displayio/ParallelBus.c
#: ports/nrf/common-hal/displayio/ParallelBus.c
@ -455,7 +459,7 @@ msgstr "CBC-block måste vara multiplar om 16 byte"
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Anropa super().__init__() innan du använder det nativa objektet."
msgstr "Anropa super().__init__() innan du använder det ursprungliga objektet."
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "Can't set CCCD on local Characteristic"
@ -501,8 +505,7 @@ msgstr "Kan inte återmontera '/' när USB är aktivt."
#: ports/mimxrt10xx/common-hal/microcontroller/__init__.c
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
"Det går inte att återställa till bootloader eftersom det inte finns någon "
"bootloader."
"Det går inte att återställa till bootloader eftersom bootloader saknas."
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
@ -818,7 +821,7 @@ msgstr "Gruppen är full"
msgid "Hardware busy, try alternative pins"
msgstr "Hårdvaran är upptagen, prova alternativa pinnar"
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr "Hårdvaran används redan, prova alternativa pinnar"
@ -889,7 +892,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"
@ -899,11 +902,11 @@ msgstr "Ogiltigt val av I2C-pinne"
msgid "Invalid PWM frequency"
msgstr "Ogiltig PWM-frekvens"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr "Ogiltigt val av SPI-pinne"
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr "Ogiltigt val av UART-pinne"
@ -979,7 +982,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1262,7 +1267,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"
@ -1382,7 +1387,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"
@ -1445,7 +1451,7 @@ msgstr "Stackstorleken måste vara minst 256"
msgid "Stream missing readinto() or write() method."
msgstr "Stream saknar readinto() eller write() metod."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr "Ange minst en UART-pinne"
@ -1686,6 +1692,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 ""
@ -2128,6 +2155,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"
@ -2263,6 +2298,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"
@ -2316,6 +2359,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"
@ -2402,6 +2449,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"
@ -2446,6 +2497,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"
@ -3081,6 +3136,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"
@ -3118,8 +3177,7 @@ msgstr "tupel/lista har fel längd"
msgid "tuple/list required on RHS"
msgstr "tupel/lista krävs för RHS"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx och rx kan inte båda vara None"
@ -3162,7 +3220,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"
@ -3235,6 +3293,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"
@ -3247,6 +3309,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"
@ -3259,6 +3325,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-26 13:09-0700\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"
@ -377,6 +377,10 @@ msgstr "Bǐtè shízhōng hé dānzì xuǎnzé bìxū gòngxiǎng shízhōng dā
msgid "Bit depth must be multiple of 8."
msgstr "Bǐtè shēndù bìxū shì 8 bèi yǐshàng."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Liǎng gè yǐn jiǎo dōu bìxū zhīchí yìngjiàn zhōngduàn"
@ -812,7 +816,7 @@ msgstr "Fēnzǔ yǐ mǎn"
msgid "Hardware busy, try alternative pins"
msgstr "Yìngjiàn máng, qǐng chángshì qítā zhēnjiǎo"
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Hardware in use, try alternative pins"
msgstr "Shǐyòng de yìngjiàn, qǐng chángshì qítā yǐn jiǎo"
@ -883,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é"
@ -893,11 +897,11 @@ msgstr "Wúxiào de I2C yǐn jiǎo xuǎnzé"
msgid "Invalid PWM frequency"
msgstr "Wúxiào de PWM pínlǜ"
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/stm/common-hal/busio/SPI.c
#: ports/stm/common-hal/busio/SPI.c
msgid "Invalid SPI pin selection"
msgstr "Wúxiào de SPI yǐn jiǎo xuǎnzé"
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "Invalid UART pin selection"
msgstr "Wúxiào de UART yǐn jiǎo xuǎnzé"
@ -973,7 +977,9 @@ 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/nrf/common-hal/busio/I2C.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"
@ -1370,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"
@ -1433,7 +1440,7 @@ msgstr "Duīzhàn dàxiǎo bìxū zhìshǎo 256"
msgid "Stream missing readinto() or write() method."
msgstr "Liú quēshǎo readinto() huò write() fāngfǎ."
#: ports/stm/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "Supply at least one UART pin"
msgstr "Dìngyì zhìshǎo yīgè UART yǐn jiǎo"
@ -1673,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 ""
@ -2116,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 ""
@ -2249,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 ""
@ -2302,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 ""
@ -2388,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ù"
@ -2432,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"
@ -3065,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"
@ -3102,8 +3161,7 @@ msgstr "yuán zǔ/lièbiǎo chángdù cuòwù"
msgid "tuple/list required on RHS"
msgstr "RHS yāoqiú de yuán zǔ/lièbiǎo"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: shared-bindings/busio/UART.c
msgid "tx and rx cannot both be None"
msgstr "tx hé rx bùnéng dōu shì wú"
@ -3219,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é"
@ -3231,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ù"
@ -3243,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è"

2
main.c
View File

@ -185,7 +185,7 @@ bool maybe_run_list(const char ** filenames, pyexec_result_t* exec_result) {
}
mp_hal_stdout_tx_str(filename);
const compressed_string_t* compressed = translate(" output:\n");
char decompressed[compressed->length];
char decompressed[decompress_length(compressed)];
decompress(compressed, decompressed);
mp_hal_stdout_tx_str(decompressed);
pyexec_file(filename, exec_result);

View File

@ -134,7 +134,7 @@ else
endif
endif
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib -fshort-enums $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
ifeq ($(CHIP_FAMILY), samd21)
CFLAGS += \
@ -157,7 +157,7 @@ endif
LDFLAGS = $(CFLAGS) -nostartfiles -fshort-enums -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LDFLAGS = $(CFLAGS) -nostartfiles -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LIBS := -lgcc -lc
# Use toolchain libm if we're not using our own.

View File

@ -21,4 +21,4 @@ Port Specific modules
---------------------
.. toctree::
../../autoapi/samd/index
../../shared-bindings/samd/index

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

@ -110,7 +110,7 @@ endif
CFLAGS += $(INC) -Werror -Wall -mlongcalls -std=gnu11 -Wl,--gc-sections $(BASE_CFLAGS) $(C_DEFS) $(CFLAGS_MOD) $(COPT)
LDFLAGS = $(CFLAGS) -fshort-enums -Wl,-nostdlib -Wl,-Map=$@.map -Wl,-cref
LDFLAGS = $(CFLAGS) -Wl,-nostdlib -Wl,-Map=$@.map -Wl,-cref
LDFLAGS += -L$(BUILD)/esp-idf/esp-idf/esp32s2 \
-Tesp32s2_out.ld \
-L$(BUILD)/esp-idf/esp-idf/esp32s2/ld \

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();
}

@ -1 +1 @@
Subproject commit 0daf6e0e41f95d22d193d08941a00df9525bc405
Subproject commit 7aae7f034bab68d2dd6aaa763924c91eb697d87e

View File

@ -32,6 +32,7 @@
#define MICROPY_NLR_THUMB (0)
#define MICROPY_PY_UJSON (0)
#define MICROPY_USE_INTERNAL_PRINTF (0)
#include "py/circuitpy_mpconfig.h"

View File

@ -37,6 +37,24 @@ void mp_hal_delay_us(mp_uint_t delay) {
mp_hal_delay_ms(delay / 1000);
}
mp_uint_t cpu_get_regs_and_sp(mp_uint_t *regs) {
// This is provided by the esp-idf/components/xtensa/esp32s2/libhal.a binary
// blob.
extern void xthal_window_spill(void);
mp_uint_t cpu_get_regs_and_sp(mp_uint_t *regs, uint8_t reg_count) {
// xtensa has more registers than an instruction can address. The 16 that
// can be addressed are called the "window". When a function is called or
// returns the window rotates. This allows for more efficient function calls
// because ram doesn't need to be used. It's only used if the window wraps
// around onto itself. At that point values are "spilled" to empty spots in
// the stack that were set aside. When the window rotates back around (on
// function return), the values are restored into the register from ram.
// So, in order to read the values in the stack scan we must make sure all
// of the register values we care about have been spilled to RAM. Luckily,
// there is a HAL call to do it. There is a bit of a race condition here
// because the register value could change after it's been restored but that
// is unlikely to happen with a heap pointer while we do a GC.
xthal_window_spill();
return (mp_uint_t) __builtin_frame_address(0);
}

View File

@ -259,7 +259,7 @@ CONFIG_ESP32S2_RTC_CLK_CAL_CYCLES=576
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
CONFIG_ESP_CONSOLE_UART_DEFAULT=y

View File

@ -100,18 +100,20 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t lba, uint32
_cache_lba = sector_offset;
}
for (uint8_t b = block_offset; b < blocks_per_sector; b++) {
// Stop copying after the last block.
if (block >= num_blocks) {
break;
}
memcpy(_cache + b * FILESYSTEM_BLOCK_SIZE,
src + block * FILESYSTEM_BLOCK_SIZE,
FILESYSTEM_BLOCK_SIZE);
block++;
}
result = esp_partition_erase_range(_partition, sector_offset, SECTOR_SIZE);
ESP_EARLY_LOGW(TAG, "erase %d", result);
result = esp_partition_write(_partition,
sector_offset,
_cache,
SECTOR_SIZE);
ESP_EARLY_LOGW(TAG, "write %d", result);
}
return 0; // success
@ -119,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

@ -118,7 +118,8 @@ uint32_t port_get_saved_word(void) {
uint64_t port_get_raw_ticks(uint8_t* subticks) {
struct timeval tv_now;
gettimeofday(&tv_now, NULL);
uint64_t all_subticks = (uint64_t)tv_now.tv_usec / 32768;
// convert usec back to ticks
uint64_t all_subticks = (uint64_t)(tv_now.tv_usec * 2) / 71;
if (subticks != NULL) {
*subticks = all_subticks % 32;
}
@ -152,6 +153,9 @@ void port_sleep_until_interrupt(void) {
// FreeRTOS delay here maybe.
// Light sleep shuts down BLE and wifi.
// esp_light_sleep_start()
if (sleep_time_duration == 0) {
return;
}
vTaskDelayUntil(&sleep_time_set, sleep_time_duration);
}

View File

@ -29,6 +29,11 @@
#include "lib/utils/interrupt_char.h"
#include "lib/mp-readline/readline.h"
#include "esp-idf/components/soc/soc/esp32s2/include/soc/usb_periph.h"
#include "esp-idf/components/driver/include/driver/periph_ctrl.h"
#include "esp-idf/components/driver/include/driver/gpio.h"
#include "esp-idf/components/esp_rom/include/esp32s2/rom/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
@ -64,17 +69,22 @@ void usb_device_task(void* param)
}
void init_usb_hardware(void) {
periph_module_reset(PERIPH_USB_MODULE);
periph_module_enable(PERIPH_USB_MODULE);
usb_hal_context_t hal = {
.use_external_phy = false // use built-in PHY
};
usb_hal_init(&hal);
// Initialize the pin drive strength.
gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
(void) xTaskCreateStatic(usb_device_task,
"usbd",
USBD_STACK_SIZE,
NULL,
configMAX_PRIORITIES-1,
5,
usb_device_stack,
&usb_device_taskdef);
}

View File

@ -0,0 +1,23 @@
"""Simple script that translates "Backtrace:" lines from the ESP output to files
and line numbers.
Run with: python3 tools/decode_backtrace.py <board>
Enter the backtrace line at the "? " prompt. CTRL-C to exit the script.
"""
import subprocess
import sys
board = sys.argv[1]
print(board)
while True:
addresses = input("? ")
if addresses.startswith("Backtrace:"):
addresses = addresses[len("Backtrace:"):]
addresses = addresses.strip().split()
addresses = [address.split(":")[0] for address in addresses]
print('got', addresses)
subprocess.run(["xtensa-esp32s2-elf-addr2line",
"-e", "build-{}/firmware.elf".format(board)] + addresses)

View File

@ -83,14 +83,14 @@ else
### CFLAGS += -flto
endif
CFLAGS += $(INC) -Werror -Wall -std=gnu11 -nostdlib $(BASE_CFLAGS) $(C_DEFS) $(CFLAGS_MOD) $(COPT)
CFLAGS += $(INC) -Werror -Wall -std=gnu11 -nostdlib -fshort-enums $(BASE_CFLAGS) $(C_DEFS) $(CFLAGS_MOD) $(COPT)
# TODO: check this
CFLAGS += -D__START=main -DFOMU
LD_FILE := boards/$(BOARD)/$(BOARD)-spi.ld
LDFLAGS = $(CFLAGS) -fshort-enums -Wl,-nostdlib -Wl,-T,$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs -Wl,-melf32lriscv
LDFLAGS = $(CFLAGS) -Wl,-nostdlib -Wl,-T,$(LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs -Wl,-melf32lriscv
LIBS := -lgcc -lc

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

@ -90,7 +90,7 @@ else
#CFLAGS += -flto -flto-partition=none
endif
CFLAGS += $(INC) -ggdb -Wall -Wno-cast-align -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
CFLAGS += $(INC) -ggdb -Wall -Wno-cast-align -std=gnu11 -nostdlib -fshort-enums $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
# TODO: add these when -Werror is applied
# Disable some warnings, as do most ports. NXP SDK causes undef, tinyusb causes cast-align
@ -112,7 +112,7 @@ LD_FILES = $(wildcard boards/$(BOARD)/*.ld) $(addprefix linking/, flash/$(FLASH)
LD_SCRIPT_FLAG := -Wl,-T,
LDFLAGS = $(CFLAGS) -nostartfiles -fshort-enums -Wl,-nostdlib $(addprefix $(LD_SCRIPT_FLAG), $(LD_FILES)) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LDFLAGS = $(CFLAGS) -nostartfiles -Wl,-nostdlib $(addprefix $(LD_SCRIPT_FLAG), $(LD_FILES)) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LIBS := -lgcc -lc -lnosys -lm
# Use toolchain libm if we're not using our own.

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

@ -30,11 +30,6 @@
#include "shared-bindings/microcontroller/Pin.h"
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_06);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_07);
@ -43,9 +38,18 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO_SD_B1_10);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_11);
// USB Pins
common_hal_never_reset_pin(&pin_GPIO_AD_B0_01);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_03);
// FLEX flash 2
common_hal_never_reset_pin(&pin_GPIO_AD_B0_04);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_06);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_07);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_08);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_09);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_10);
common_hal_never_reset_pin(&pin_GPIO_EMC_01);
common_hal_never_reset_pin(&pin_GPIO_B0_13);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_11);
// Data strobe needs protection despite being grounded
common_hal_never_reset_pin(&pin_GPIO_SD_B1_05);
}
bool board_requests_safe_mode(void) {

View File

@ -27,8 +27,29 @@
#include "boards/board.h"
#include "mpconfigboard.h"
#include "shared-bindings/microcontroller/Pin.h"
void board_init(void) {
// FLEX flash
common_hal_never_reset_pin(&pin_GPIO_SD_B1_06);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_07);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_08);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_09);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_10);
common_hal_never_reset_pin(&pin_GPIO_SD_B1_11);
// FLEX flash 2
common_hal_never_reset_pin(&pin_GPIO_AD_B0_04);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_06);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_07);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_08);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_09);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_10);
common_hal_never_reset_pin(&pin_GPIO_EMC_01);
common_hal_never_reset_pin(&pin_GPIO_B0_13);
common_hal_never_reset_pin(&pin_GPIO_AD_B0_11);
// Data strobe needs protection despite being grounded
common_hal_never_reset_pin(&pin_GPIO_SD_B1_05);
}
bool board_requests_safe_mode(void) {

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]);
}
}
}
@ -91,10 +96,10 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
|| (mcu_spi_sck_list[i].bank_idx != mcu_spi_miso_list[k].bank_idx)) {
continue;
}
//keep looking if the SPI is taken, edge case
// if SPI is taken, break (pins never have >1 periph)
if (reserved_spi[mcu_spi_sck_list[i].bank_idx - 1]) {
spi_taken = true;
continue;
break;
}
//store pins if not
self->clock = &mcu_spi_sck_list[i];
@ -102,11 +107,11 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
self->miso = &mcu_spi_miso_list[k];
break;
}
if (self->clock != NULL) {
if (self->clock != NULL || spi_taken) {
break; // Multi-level break to pick lowest peripheral
}
}
if (self->clock != NULL) {
if (self->clock != NULL || spi_taken) {
break;
}
// if just MISO, reduce search
@ -118,14 +123,13 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
}
if (reserved_spi[mcu_spi_sck_list[i].bank_idx - 1]) {
spi_taken = true;
continue;
break;
}
self->clock = &mcu_spi_sck_list[i];
self->mosi = NULL;
self->miso = &mcu_spi_miso_list[j];
break;
}
if (self->clock != NULL) {
if (self->clock != NULL || spi_taken) {
break;
}
// if just MOSI, reduce search
@ -137,14 +141,13 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
}
if (reserved_spi[mcu_spi_sck_list[i].bank_idx - 1]) {
spi_taken = true;
continue;
break;
}
self->clock = &mcu_spi_sck_list[i];
self->mosi = &mcu_spi_mosi_list[j];
self->miso = NULL;
break;
}
if (self->clock != NULL) {
if (self->clock != NULL || spi_taken) {
break;
}
} else {
@ -159,7 +162,7 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
if (spi_taken) {
mp_raise_ValueError(translate("Hardware busy, try alternative pins"));
} else {
mp_raise_ValueError(translate("Invalid SPI pin selection"));
mp_raise_ValueError(translate("Invalid pins"));
}
}
@ -194,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) {
@ -205,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"
@ -39,7 +40,9 @@
#include "fsl_lpuart.h"
// TODO
//arrays use 0 based numbering: UART1 is stored at index 0
#define MAX_UART 8
STATIC bool reserved_uart[MAX_UART];
#define UART_CLOCK_FREQ (CLOCK_GetPllFreq(kCLOCK_PllUsb1) / 6U) / (CLOCK_GetDiv(kCLOCK_UartDiv) + 1U)
@ -71,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,
@ -79,41 +89,77 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
mp_float_t timeout, uint16_t receiver_buffer_size, byte* receiver_buffer,
bool sigint_enabled) {
// TODO: Allow none rx or tx
bool have_tx = tx != NULL;
bool have_rx = rx != NULL;
if (!have_tx && !have_rx) {
mp_raise_ValueError(translate("tx and rx cannot both be None"));
}
self->baudrate = baudrate;
self->character_bits = bits;
self->timeout_ms = timeout * 1000;
const uint32_t rx_count = sizeof(mcu_uart_rx_list) / sizeof(mcu_periph_obj_t);
const uint32_t tx_count = sizeof(mcu_uart_tx_list) / sizeof(mcu_periph_obj_t);
// We are transmitting one direction if one pin is NULL and the other isn't.
bool is_onedirection = (rx != NULL) != (tx != NULL);
bool uart_taken = false;
const uint32_t rx_count = MP_ARRAY_SIZE(mcu_uart_rx_list);
const uint32_t tx_count = MP_ARRAY_SIZE(mcu_uart_tx_list);
// RX loop handles rx only, or both rx and tx
if (rx != NULL) {
for (uint32_t i = 0; i < rx_count; ++i) {
if (mcu_uart_rx_list[i].pin != rx)
if (mcu_uart_rx_list[i].pin != rx) {
continue;
}
// If TX is on, keep looking, else stop
if (tx != NULL) {
for (uint32_t j = 0; j < tx_count; ++j) {
if (mcu_uart_tx_list[j].pin != tx)
if (mcu_uart_tx_list[j].pin != tx ||
mcu_uart_tx_list[j].bank_idx != mcu_uart_rx_list[i].bank_idx) {
continue;
if (mcu_uart_tx_list[j].bank_idx != mcu_uart_rx_list[i].bank_idx)
continue;
self->rx_pin = &mcu_uart_rx_list[i];
self->tx_pin = &mcu_uart_tx_list[j];
}
// If UART is taken, break (pins never have >1 periph)
if (reserved_uart[mcu_uart_rx_list[i].bank_idx - 1]) {
uart_taken = true;
break;
}
self->rx = &mcu_uart_rx_list[i];
self->tx = &mcu_uart_tx_list[j];
break;
}
if (self->tx != NULL || uart_taken) {
break;
}
} else {
if (reserved_uart[mcu_uart_rx_list[i].bank_idx - 1]) {
uart_taken = true;
break;
}
self->rx = &mcu_uart_rx_list[i];
}
}
} else if (tx != NULL) {
// TX only case
for (uint32_t i = 0; i < tx_count; ++i) {
if (mcu_uart_tx_list[i].pin != tx) {
continue;
}
if (reserved_uart[mcu_uart_tx_list[i].bank_idx - 1]) {
uart_taken = true;
break;
}
self->tx = &mcu_uart_tx_list[i];
break;
}
} else {
mp_raise_ValueError(translate("Supply at least one UART pin"));
}
if(self->rx_pin == NULL || self->tx_pin == NULL) {
mp_raise_RuntimeError(translate("Invalid UART pin selection"));
if (uart_taken) {
mp_raise_ValueError(translate("Hardware in use, try alternative pins"));
}
if(self->rx == NULL && self->tx == NULL) {
mp_raise_ValueError(translate("Invalid pins"));
}
if (is_onedirection && ((rts != NULL) || (cts != NULL))) {
mp_raise_ValueError(translate("Both RX and TX required for flow control"));
}
// Filter for sane settings for RS485
@ -131,57 +177,71 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
}
// Now check for RTS/CTS (or overloaded RS485 direction) pin(s)
const uint32_t rts_count = sizeof(mcu_uart_rts_list) / sizeof(mcu_periph_obj_t);
const uint32_t cts_count = sizeof(mcu_uart_cts_list) / sizeof(mcu_periph_obj_t);
const uint32_t rts_count = MP_ARRAY_SIZE(mcu_uart_rts_list);
const uint32_t cts_count = MP_ARRAY_SIZE(mcu_uart_cts_list);
if (rts != NULL) {
for (uint32_t i=0; i < rts_count; ++i) {
if (mcu_uart_rts_list[i].bank_idx == self->rx_pin->bank_idx) {
if (mcu_uart_rts_list[i].bank_idx == self->rx->bank_idx) {
if (mcu_uart_rts_list[i].pin == rts) {
self->rts_pin = &mcu_uart_rts_list[i];
self->rts = &mcu_uart_rts_list[i];
break;
}
}
}
if (self->rts_pin == NULL)
if (self->rts == NULL){
mp_raise_ValueError(translate("Selected RTS pin not valid"));
}
}
if (cts != NULL) {
for (uint32_t i=0; i < cts_count; ++i) {
if (mcu_uart_cts_list[i].bank_idx == self->rx_pin->bank_idx) {
if (mcu_uart_cts_list[i].bank_idx == self->rx->bank_idx) {
if (mcu_uart_cts_list[i].pin == cts) {
self->cts_pin = &mcu_uart_cts_list[i];
self->cts = &mcu_uart_cts_list[i];
break;
}
}
}
if (self->cts_pin == NULL)
if (self->cts == NULL){
mp_raise_ValueError(translate("Selected CTS pin not valid"));
}
}
self->uart = mcu_uart_banks[self->tx_pin->bank_idx - 1];
if (self->rx) {
self->uart = mcu_uart_banks[self->rx->bank_idx - 1];
} else {
self->uart = mcu_uart_banks[self->tx->bank_idx - 1];
}
config_periph_pin(self->rx_pin);
config_periph_pin(self->tx_pin);
if (self->rts_pin)
config_periph_pin(self->rts_pin);
if (self->cts_pin)
config_periph_pin(self->cts_pin);
if (self->rx) {
config_periph_pin(self->rx);
}
if (self->tx) {
config_periph_pin(self->tx);
}
if (self->rts) {
config_periph_pin(self->rts);
}
if (self->cts) {
config_periph_pin(self->cts);
}
lpuart_config_t config = { 0 };
LPUART_GetDefaultConfig(&config);
config.dataBitsCount = self->character_bits == 8 ? kLPUART_EightDataBits : kLPUART_SevenDataBits;
config.baudRate_Bps = self->baudrate;
config.enableTx = self->tx_pin != NULL;
config.enableRx = self->rx_pin != NULL;
config.enableRxRTS = self->rts_pin != NULL;
config.enableTxCTS = self->cts_pin != NULL;
if (self->rts_pin != NULL)
claim_pin(self->rts_pin->pin);
if (self->cts_pin != NULL)
claim_pin(self->cts_pin->pin);
config.enableTx = self->tx != NULL;
config.enableRx = self->rx != NULL;
config.enableRxRTS = self->rts != NULL;
config.enableTxCTS = self->cts != NULL;
if (self->rts != NULL) {
claim_pin(self->rts->pin);
}
if (self->cts != NULL) {
claim_pin(self->cts->pin);
}
LPUART_Init(self->uart, &config, UART_CLOCK_FREQ);
@ -190,15 +250,17 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
uint32_t modir = (self->uart->MODIR) & ~(LPUART_MODIR_TXRTSPOL_MASK | LPUART_MODIR_TXRTSE_MASK);
if (rs485_dir != NULL) {
modir |= LPUART_MODIR_TXRTSE_MASK;
if (rs485_invert)
if (rs485_invert) {
modir |= LPUART_MODIR_TXRTSPOL_MASK;
}
}
self->uart->MODIR = modir;
if (self->tx_pin != NULL)
claim_pin(self->tx_pin->pin);
if (self->tx != NULL) {
claim_pin(self->tx->pin);
}
if (self->rx_pin != NULL) {
if (self->rx != NULL) {
// The LPUART ring buffer wastes one byte to distinguish between full and empty.
self->ringbuf = gc_alloc(receiver_buffer_size + 1, false, true /*long-lived*/);
@ -212,33 +274,41 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
// the capacity is one less than the size.
LPUART_TransferStartRingBuffer(self->uart, &self->handle, self->ringbuf, receiver_buffer_size + 1);
claim_pin(self->rx_pin->pin);
claim_pin(self->rx->pin);
}
}
bool common_hal_busio_uart_deinited(busio_uart_obj_t *self) {
return self->rx_pin == NULL && self->tx_pin == NULL;
return self->rx == NULL && self->tx == NULL;
}
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_pin);
// reset_pin_number(self->tx_pin);
if (self->rx) {
common_hal_reset_pin(self->rx->pin);
}
if (self->tx) {
common_hal_reset_pin(self->tx->pin);
}
self->rx_pin = NULL;
self->tx_pin = NULL;
self->rx = NULL;
self->tx = NULL;
}
// Read characters.
size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t len, int *errcode) {
if (self->rx_pin == NULL) {
if (self->rx == NULL) {
mp_raise_ValueError(translate("No RX pin"));
}
@ -284,7 +354,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
// Write characters.
size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data, size_t len, int *errcode) {
if (self->tx_pin == NULL) {
if (self->tx == NULL) {
mp_raise_ValueError(translate("No TX pin"));
}
@ -320,7 +390,7 @@ void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self) {
}
bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
if (self->tx_pin == NULL) {
if (self->tx == NULL) {
return false;
}

View File

@ -45,10 +45,10 @@ typedef struct {
uint32_t baudrate;
uint8_t character_bits;
uint32_t timeout_ms;
const mcu_periph_obj_t *rx_pin;
const mcu_periph_obj_t *tx_pin;
const mcu_periph_obj_t *cts_pin;
const mcu_periph_obj_t *rts_pin;
const mcu_periph_obj_t *rx;
const mcu_periph_obj_t *tx;
const mcu_periph_obj_t *cts;
const mcu_periph_obj_t *rts;
} busio_uart_obj_t;
#endif // MICROPY_INCLUDED_MIMXRT10XX_COMMON_HAL_BUSIO_UART_H

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

@ -141,15 +141,15 @@ const mcu_pin_obj_t pin_GPIO_SD_B0_02 = PIN(GPIO3, 14, GPIO_SD_B0_02, NO_ADC, 0,
const mcu_pin_obj_t pin_GPIO_SD_B0_03 = PIN(GPIO3, 15, GPIO_SD_B0_03, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B0_04 = PIN(GPIO3, 16, GPIO_SD_B0_04, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B0_05 = PIN(GPIO3, 17, GPIO_SD_B0_05, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_00 = PIN(GPIO3, 0, GPIO_B1_00, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_01 = PIN(GPIO3, 1, GPIO_B1_01, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_02 = PIN(GPIO3, 2, GPIO_B1_02, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_03 = PIN(GPIO3, 3, GPIO_B1_03, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_04 = PIN(GPIO3, 4, GPIO_B1_04, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_05 = PIN(GPIO3, 5, GPIO_B1_05, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_06 = PIN(GPIO3, 6, GPIO_B1_06, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_07 = PIN(GPIO3, 7, GPIO_B1_07, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_08 = PIN(GPIO3, 8, GPIO_B1_08, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_09 = PIN(GPIO3, 9, GPIO_B1_09, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_10 = PIN(GPIO3, 10, GPIO_B1_10, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_11 = PIN(GPIO3, 11, GPIO_B1_11, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_00 = PIN(GPIO3, 0, GPIO_SD_B1_00, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_01 = PIN(GPIO3, 1, GPIO_SD_B1_01, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_02 = PIN(GPIO3, 2, GPIO_SD_B1_02, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_03 = PIN(GPIO3, 3, GPIO_SD_B1_03, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_04 = PIN(GPIO3, 4, GPIO_SD_B1_04, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_05 = PIN(GPIO3, 5, GPIO_SD_B1_05, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_06 = PIN(GPIO3, 6, GPIO_SD_B1_06, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_07 = PIN(GPIO3, 7, GPIO_SD_B1_07, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_08 = PIN(GPIO3, 8, GPIO_SD_B1_08, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_09 = PIN(GPIO3, 9, GPIO_SD_B1_09, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_10 = PIN(GPIO3, 10, GPIO_SD_B1_10, NO_ADC, 0, 0x00000005, 0x000010B0);
const mcu_pin_obj_t pin_GPIO_SD_B1_11 = PIN(GPIO3, 11, GPIO_SD_B1_11, NO_ADC, 0, 0x00000005, 0x000010B0);

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

@ -93,7 +93,7 @@ else
endif
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib -fshort-enums $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
# Undo some warnings.
# nrfx uses undefined preprocessor variables quite casually, so we can't do warning checks for these.
@ -114,7 +114,7 @@ CFLAGS += \
# TODO: check this
CFLAGS += -D__START=main
LDFLAGS = $(CFLAGS) -nostartfiles -fshort-enums -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LDFLAGS = $(CFLAGS) -nostartfiles -Wl,-nostdlib -Wl,-T,$(GENERATED_LD_FILE) -Wl,-Map=$@.map -Wl,-cref -Wl,-gc-sections -specs=nano.specs
LIBS := -lgcc -lc
LDFLAGS += -mthumb -mcpu=cortex-m4
@ -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

@ -1,5 +1,5 @@
USB_VID = 0x239A
USB_PID = 0x0016
USB_PID = 0x80B2
USB_PRODUCT = "HiiBot BlueFi"
USB_MANUFACTURER = "HiiBot"
@ -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

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

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2016 Glenn Ruben Bakke
* Copyright (c) 2018 Dan Halbert for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "nrfx/hal/nrf_gpio.h"
#define MICROPY_HW_BOARD_NAME "nice!nano"
#define MICROPY_HW_MCU_NAME "nRF52840"
#define MICROPY_HW_LED_STATUS (&pin_P0_15)
#define BOARD_HAS_CRYSTAL 1
#define DEFAULT_I2C_BUS_SCL (&pin_P0_20)
#define DEFAULT_I2C_BUS_SDA (&pin_P0_17)
#define DEFAULT_SPI_BUS_SCK (&pin_P1_13)
#define DEFAULT_SPI_BUS_MOSI (&pin_P0_10)
#define DEFAULT_SPI_BUS_MISO (&pin_P1_11)
#define DEFAULT_UART_BUS_RX (&pin_P0_08)
#define DEFAULT_UART_BUS_TX (&pin_P0_06)

View File

@ -0,0 +1,8 @@
USB_VID = 0x239A
USB_PID = 0x80B4
USB_PRODUCT = "nice!nano"
USB_MANUFACTURER = "Nice Keyboards"
MCU_CHIP = nrf52840
INTERNAL_FLASH_FILESYSTEM = 1

View File

@ -0,0 +1,60 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_P0_02), MP_ROM_PTR(&pin_P0_02) },
{ MP_ROM_QSTR(MP_QSTR_P0_04), MP_ROM_PTR(&pin_P0_04) },
{ MP_ROM_QSTR(MP_QSTR_P0_06), MP_ROM_PTR(&pin_P0_06) },
{ MP_ROM_QSTR(MP_QSTR_P0_08), MP_ROM_PTR(&pin_P0_08) },
{ MP_ROM_QSTR(MP_QSTR_P0_09), MP_ROM_PTR(&pin_P0_09) },
{ MP_ROM_QSTR(MP_QSTR_P0_10), MP_ROM_PTR(&pin_P0_10) },
{ MP_ROM_QSTR(MP_QSTR_P0_11), MP_ROM_PTR(&pin_P0_11) },
{ MP_ROM_QSTR(MP_QSTR_P0_12), MP_ROM_PTR(&pin_P0_12) },
{ MP_ROM_QSTR(MP_QSTR_P0_13), MP_ROM_PTR(&pin_P0_13) },
{ MP_ROM_QSTR(MP_QSTR_P0_15), MP_ROM_PTR(&pin_P0_15) },
{ MP_ROM_QSTR(MP_QSTR_P0_17), MP_ROM_PTR(&pin_P0_17) },
{ MP_ROM_QSTR(MP_QSTR_P0_20), MP_ROM_PTR(&pin_P0_20) },
{ MP_ROM_QSTR(MP_QSTR_P0_22), MP_ROM_PTR(&pin_P0_22) },
{ MP_ROM_QSTR(MP_QSTR_P0_24), MP_ROM_PTR(&pin_P0_24) },
{ MP_ROM_QSTR(MP_QSTR_P0_26), MP_ROM_PTR(&pin_P0_26) },
{ MP_ROM_QSTR(MP_QSTR_P0_29), MP_ROM_PTR(&pin_P0_29) },
{ MP_ROM_QSTR(MP_QSTR_P0_31), MP_ROM_PTR(&pin_P0_31) },
{ MP_ROM_QSTR(MP_QSTR_P1_00), MP_ROM_PTR(&pin_P1_00) },
{ MP_ROM_QSTR(MP_QSTR_P1_01), MP_ROM_PTR(&pin_P1_01) },
{ MP_ROM_QSTR(MP_QSTR_P1_02), MP_ROM_PTR(&pin_P1_02) },
{ MP_ROM_QSTR(MP_QSTR_P1_04), MP_ROM_PTR(&pin_P1_04) },
{ MP_ROM_QSTR(MP_QSTR_P1_06), MP_ROM_PTR(&pin_P1_06) },
{ MP_ROM_QSTR(MP_QSTR_P1_07), MP_ROM_PTR(&pin_P1_07) },
{ MP_ROM_QSTR(MP_QSTR_P1_11), MP_ROM_PTR(&pin_P1_11) },
{ MP_ROM_QSTR(MP_QSTR_P1_13), MP_ROM_PTR(&pin_P1_13) },
{ MP_ROM_QSTR(MP_QSTR_P1_15), MP_ROM_PTR(&pin_P1_15) },
{ MP_ROM_QSTR(MP_QSTR_AIN0), MP_ROM_PTR(&pin_P0_02) },
{ MP_ROM_QSTR(MP_QSTR_AIN2), MP_ROM_PTR(&pin_P0_04) },
{ MP_ROM_QSTR(MP_QSTR_AIN5), MP_ROM_PTR(&pin_P0_29) },
{ MP_ROM_QSTR(MP_QSTR_AIN7), MP_ROM_PTR(&pin_P0_31) },
{ MP_ROM_QSTR(MP_QSTR_NFC1), MP_ROM_PTR(&pin_P0_09) },
{ MP_ROM_QSTR(MP_QSTR_NFC2), MP_ROM_PTR(&pin_P0_10) },
{ MP_ROM_QSTR(MP_QSTR_BAT_VOLT), MP_ROM_PTR(&pin_P0_04) }, // Read battery voltage
{ MP_ROM_QSTR(MP_QSTR_VCC_OFF), MP_ROM_PTR(&pin_P0_13) }, // Turn off external VCC by MOSFET
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_P0_15) }, // Controls blue LED, high is on
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_P0_08) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_P0_06) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_P0_20) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_P0_17) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_P1_13) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_P0_10) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_P1_11) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -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;
}

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