Merge remote-tracking branch 'adafruit/main' into banglejs2
This commit is contained in:
commit
f832386cda
18
.github/actions/deps/external/action.yml
vendored
18
.github/actions/deps/external/action.yml
vendored
@ -45,7 +45,7 @@ runs:
|
|||||||
|
|
||||||
# arm
|
# arm
|
||||||
- name: Get arm toolchain
|
- name: Get arm toolchain
|
||||||
if: inputs.platform == 'aarch' || inputs.platform == 'arm' || inputs.platform == 'nrf'
|
if: inputs.platform == 'aarch' || inputs.platform == 'arm'
|
||||||
uses: carlosperate/arm-none-eabi-gcc-action@v1
|
uses: carlosperate/arm-none-eabi-gcc-action@v1
|
||||||
with:
|
with:
|
||||||
release: '10-2020-q4'
|
release: '10-2020-q4'
|
||||||
@ -73,22 +73,6 @@ runs:
|
|||||||
echo >> $GITHUB_PATH "$PATH"
|
echo >> $GITHUB_PATH "$PATH"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
# nrf
|
|
||||||
- name: Get nrfutil 7+
|
|
||||||
if: inputs.platform == 'nrf'
|
|
||||||
run: |
|
|
||||||
wget https://developer.nordicsemi.com/.pc-tools/nrfutil/x64-linux/nrfutil
|
|
||||||
chmod +x nrfutil
|
|
||||||
./nrfutil install nrf5sdk-tools
|
|
||||||
mkdir -p $HOME/.local/bin
|
|
||||||
mv nrfutil $HOME/.local/bin
|
|
||||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
|
||||||
shell: bash
|
|
||||||
- name: Print nrfutil version
|
|
||||||
if: inputs.platform == 'nrf'
|
|
||||||
run: nrfutil -V
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
# riscv
|
# riscv
|
||||||
- name: Get riscv toolchain
|
- name: Get riscv toolchain
|
||||||
if: inputs.platform == 'riscv'
|
if: inputs.platform == 'riscv'
|
||||||
|
28
.github/actions/deps/ports/action.yml
vendored
Normal file
28
.github/actions/deps/ports/action.yml
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
name: Fetch port deps
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
board:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
port:
|
||||||
|
value: ${{ steps.board-to-port.outputs.port }}
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Board to port
|
||||||
|
id: board-to-port
|
||||||
|
run: |
|
||||||
|
PORT=$(find ports/*/boards/ -type d -name ${{ inputs.board }} | sed 's/^ports\///g;s/\/boards.*//g')
|
||||||
|
if [ -z $PORT ]; then (exit 1); else echo >> $GITHUB_OUTPUT "port=$PORT"; fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Set up espressif port
|
||||||
|
if: steps.board-to-port.outputs.port == 'espressif'
|
||||||
|
uses: ./.github/actions/deps/ports/espressif
|
||||||
|
|
||||||
|
- name: Set up nrf port
|
||||||
|
if: steps.board-to-port.outputs.port == 'nrf'
|
||||||
|
uses: ./.github/actions/deps/ports/nrf
|
17
.github/actions/deps/ports/nrf/action.yml
vendored
Normal file
17
.github/actions/deps/ports/nrf/action.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
name: Fetch nrf port deps
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Get nrfutil 7+
|
||||||
|
run: |
|
||||||
|
wget https://developer.nordicsemi.com/.pc-tools/nrfutil/x64-linux/nrfutil
|
||||||
|
chmod +x nrfutil
|
||||||
|
./nrfutil install nrf5sdk-tools
|
||||||
|
mkdir -p $HOME/.local/bin
|
||||||
|
mv nrfutil $HOME/.local/bin
|
||||||
|
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
|
shell: bash
|
||||||
|
- name: Print nrfutil version
|
||||||
|
run: nrfutil -V
|
||||||
|
shell: bash
|
19
.github/workflows/build-boards-custom.yml
vendored
19
.github/workflows/build-boards-custom.yml
vendored
@ -51,20 +51,15 @@ jobs:
|
|||||||
if: inputs.debug || inputs.flags != ''
|
if: inputs.debug || inputs.flags != ''
|
||||||
run: |
|
run: |
|
||||||
> custom-build && git add custom-build
|
> custom-build && git add custom-build
|
||||||
- name: Get port
|
|
||||||
id: get-port
|
|
||||||
run: |
|
|
||||||
PORT=$(find ports/*/boards/ -type d -name ${{ inputs.board }} | sed 's/^ports\///g;s/\/boards.*//g')
|
|
||||||
if [ -z $PORT ]; then (exit 1); else echo >> $GITHUB_OUTPUT "port=$PORT"; fi
|
|
||||||
- name: Port to platform
|
|
||||||
run: echo >> $GITHUB_ENV "PLATFORM=${{ env[format('PLATFORM_{0}', steps.get-port.outputs.port)] }}"
|
|
||||||
- name: Set up python
|
- name: Set up python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
- name: Set up port
|
- name: Set up port
|
||||||
if: env.PLATFORM == 'esp'
|
id: set-up-port
|
||||||
uses: ./.github/actions/deps/ports/espressif
|
uses: ./.github/actions/deps/ports
|
||||||
|
with:
|
||||||
|
board: ${{ inputs.board }}
|
||||||
- name: Set up submodules
|
- name: Set up submodules
|
||||||
id: set-up-submodules
|
id: set-up-submodules
|
||||||
uses: ./.github/actions/deps/submodules
|
uses: ./.github/actions/deps/submodules
|
||||||
@ -75,7 +70,7 @@ jobs:
|
|||||||
uses: ./.github/actions/deps/external
|
uses: ./.github/actions/deps/external
|
||||||
with:
|
with:
|
||||||
action: cache
|
action: cache
|
||||||
platform: ${{ env.PLATFORM }}
|
platform: ${{ env[format('PLATFORM_{0}', steps.set-up-port.outputs.port)] }}
|
||||||
- name: Set up mpy-cross
|
- name: Set up mpy-cross
|
||||||
if: steps.set-up-submodules.outputs.frozen == 'True'
|
if: steps.set-up-submodules.outputs.frozen == 'True'
|
||||||
uses: ./.github/actions/mpy_cross
|
uses: ./.github/actions/mpy_cross
|
||||||
@ -96,9 +91,9 @@ jobs:
|
|||||||
mkfs.fat --version || true
|
mkfs.fat --version || true
|
||||||
- name: Build board
|
- name: Build board
|
||||||
run: make -j2 ${{ inputs.flags }} BOARD=${{ inputs.board }} DEBUG=${{ inputs.debug && '1' || '0' }} TRANSLATION=${{ inputs.language }}
|
run: make -j2 ${{ inputs.flags }} BOARD=${{ inputs.board }} DEBUG=${{ inputs.debug && '1' || '0' }} TRANSLATION=${{ inputs.language }}
|
||||||
working-directory: ports/${{ steps.get-port.outputs.port }}
|
working-directory: ports/${{ steps.set-up-port.outputs.port }}
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.board }}-${{ inputs.language }}-${{ inputs.version }}${{ inputs.flags != '' && '-custom' || '' }}${{ inputs.debug && '-debug' || '' }}
|
name: ${{ inputs.board }}-${{ inputs.language }}-${{ inputs.version }}${{ inputs.flags != '' && '-custom' || '' }}${{ inputs.debug && '-debug' || '' }}
|
||||||
path: ports/${{ steps.get-port.outputs.port }}/build-${{ inputs.board }}/firmware.*
|
path: ports/${{ steps.set-up-port.outputs.port }}/build-${{ inputs.board }}/firmware.*
|
||||||
|
5
.github/workflows/build-boards.yml
vendored
5
.github/workflows/build-boards.yml
vendored
@ -38,8 +38,9 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
- name: Set up port
|
- name: Set up port
|
||||||
if: inputs.platform == 'esp'
|
uses: ./.github/actions/deps/ports
|
||||||
uses: ./.github/actions/deps/ports/espressif
|
with:
|
||||||
|
board: ${{ matrix.board }}
|
||||||
- name: Set up submodules
|
- name: Set up submodules
|
||||||
id: set-up-submodules
|
id: set-up-submodules
|
||||||
uses: ./.github/actions/deps/submodules
|
uses: ./.github/actions/deps/submodules
|
||||||
|
125
.github/workflows/build.yml
vendored
125
.github/workflows/build.yml
vendored
@ -22,12 +22,12 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
build-doc: ${{ steps.set-matrix.outputs.build-doc }}
|
build-doc: ${{ steps.set-matrix.outputs.build-doc }}
|
||||||
build-boards: ${{ steps.set-matrix.outputs.build-boards }}
|
build-boards: ${{ steps.set-matrix.outputs.build-boards }}
|
||||||
|
build-windows: ${{ steps.set-matrix.outputs.build-windows }}
|
||||||
boards-aarch: ${{ steps.set-matrix.outputs.boards-aarch }}
|
boards-aarch: ${{ steps.set-matrix.outputs.boards-aarch }}
|
||||||
boards-arm: ${{ steps.set-matrix.outputs.boards-arm }}
|
boards-arm: ${{ steps.set-matrix.outputs.boards-arm }}
|
||||||
|
boards-atmel: ${{ steps.set-matrix.outputs.boards-atmel }}
|
||||||
boards-esp: ${{ steps.set-matrix.outputs.boards-esp }}
|
boards-esp: ${{ steps.set-matrix.outputs.boards-esp }}
|
||||||
boards-nrf: ${{ steps.set-matrix.outputs.boards-nrf }}
|
|
||||||
boards-riscv: ${{ steps.set-matrix.outputs.boards-riscv }}
|
boards-riscv: ${{ steps.set-matrix.outputs.boards-riscv }}
|
||||||
boards-rpi: ${{ steps.set-matrix.outputs.boards-rpi }}
|
|
||||||
cp-version: ${{ steps.set-up-submodules.outputs.version }}
|
cp-version: ${{ steps.set-up-submodules.outputs.version }}
|
||||||
steps:
|
steps:
|
||||||
- name: Dump GitHub context
|
- name: Dump GitHub context
|
||||||
@ -55,24 +55,23 @@ jobs:
|
|||||||
uses: ./.github/actions/deps/external
|
uses: ./.github/actions/deps/external
|
||||||
with:
|
with:
|
||||||
action: cache
|
action: cache
|
||||||
# Disabled: Needs to be updated
|
|
||||||
# - name: Get last commit with checks
|
|
||||||
# id: get-last-commit-with-checks
|
|
||||||
# if: github.event_name == 'pull_request'
|
|
||||||
# working-directory: tools
|
|
||||||
# run: python3 -u ci_changes_per_commit.py
|
|
||||||
# env:
|
|
||||||
# REPO: ${{ github.repository }}
|
|
||||||
# PULL: ${{ github.event.number }}
|
|
||||||
# GITHUB_TOKEN: ${{ github.token }}
|
|
||||||
# EXCLUDE_COMMIT: ${{ github.event.after }}
|
|
||||||
- name: Set up mpy-cross
|
- name: Set up mpy-cross
|
||||||
uses: ./.github/actions/mpy_cross
|
uses: ./.github/actions/mpy_cross
|
||||||
with:
|
with:
|
||||||
download: false
|
download: false
|
||||||
|
- name: Get last commit with checks
|
||||||
|
id: get-last-commit-with-checks
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
working-directory: tools
|
||||||
|
run: python3 -u ci_changes_per_commit.py
|
||||||
|
env:
|
||||||
|
REPO: ${{ github.repository }}
|
||||||
|
PULL: ${{ github.event.number }}
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
EXCLUDE_COMMIT: ${{ github.event.pull_request.head.sha }}
|
||||||
- name: Set head sha
|
- name: Set head sha
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
run: echo "HEAD_SHA=$(git show -s --format=%s $GITHUB_SHA | grep -o -P "(?<=Merge ).*(?= into)")" >> $GITHUB_ENV
|
run: echo "HEAD_SHA=${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV
|
||||||
- name: Set base sha
|
- name: Set base sha
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
run: |
|
run: |
|
||||||
@ -220,6 +219,74 @@ jobs:
|
|||||||
[ -z "$TWINE_USERNAME" ] || echo "Uploading dev release to PyPi"
|
[ -z "$TWINE_USERNAME" ] || echo "Uploading dev release to PyPi"
|
||||||
[ -z "$TWINE_USERNAME" ] || twine upload circuitpython-stubs/dist/*
|
[ -z "$TWINE_USERNAME" ] || twine upload circuitpython-stubs/dist/*
|
||||||
|
|
||||||
|
build-windows:
|
||||||
|
runs-on: windows-2022
|
||||||
|
needs: scheduler
|
||||||
|
if: ${{ needs.scheduler.outputs.build-windows == 'True' }}
|
||||||
|
env:
|
||||||
|
CP_VERSION: ${{ needs.scheduler.outputs.cp-version }}
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
# We define a custom shell script here, although `msys2.cmd` does neither exist nor is it available in the PATH yet
|
||||||
|
shell: msys2 {0}
|
||||||
|
steps:
|
||||||
|
# We want to change the configuration of the git command that actions/checkout will be using
|
||||||
|
# (since it is not possible to set autocrlf through the action yet, see actions/checkout#226).
|
||||||
|
- run: git config --global core.autocrlf input
|
||||||
|
shell: bash
|
||||||
|
- name: Check python coding (cmd)
|
||||||
|
run: python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
||||||
|
shell: cmd
|
||||||
|
# We use a JS Action, which calls the system terminal or other custom terminals directly, if required
|
||||||
|
- uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
install: base-devel git wget unzip gcc python-pip
|
||||||
|
# The goal of this was to test how things worked when the default file encoding (locale.getpreferedencoding())
|
||||||
|
# was not UTF-8. However, msys2 python does use utf-8 as the preferred file encoding, and using actions/setup-python
|
||||||
|
# python3.8 gave a broken build, so we're not really testing what we wanted to test.
|
||||||
|
# However, commandline length limits are being tested so that does some good.
|
||||||
|
- name: Check python coding (msys2)
|
||||||
|
run: |
|
||||||
|
locale -v
|
||||||
|
which python; python --version
|
||||||
|
python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
||||||
|
which python3; python3 --version
|
||||||
|
python3 -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
wget --no-verbose -O gcc-arm.zip https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-win32.zip
|
||||||
|
unzip -q -d /tmp gcc-arm.zip
|
||||||
|
tar -C /tmp/gcc-arm-none-* -cf - . | tar -C /usr/local -xf -
|
||||||
|
pip install wheel
|
||||||
|
# requirements_dev.txt doesn't install on windows. (with msys2 python)
|
||||||
|
# instead, pick a subset for what we want to do
|
||||||
|
pip install cascadetoml jinja2 typer click intelhex
|
||||||
|
# check that installed packages work....?
|
||||||
|
which python; python --version; python -c "import cascadetoml"
|
||||||
|
which python3; python3 --version; python3 -c "import cascadetoml"
|
||||||
|
- name: Set up repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: false
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Set up submodules
|
||||||
|
uses: ./.github/actions/deps/submodules
|
||||||
|
- name: build mpy-cross
|
||||||
|
run: make -j2 -C mpy-cross
|
||||||
|
- name: build rp2040
|
||||||
|
run: make -j2 -C ports/raspberrypi BOARD=adafruit_feather_rp2040 TRANSLATION=de_DE
|
||||||
|
- name: build samd21
|
||||||
|
run: make -j2 -C ports/atmel-samd BOARD=feather_m0_express TRANSLATION=zh_Latn_pinyin
|
||||||
|
- name: build samd51
|
||||||
|
run: make -j2 -C ports/atmel-samd BOARD=feather_m4_express TRANSLATION=es
|
||||||
|
- name: build nrf
|
||||||
|
run: make -j2 -C ports/nrf BOARD=feather_nrf52840_express TRANSLATION=fr
|
||||||
|
- name: build stm
|
||||||
|
run: make -j2 -C ports/stm BOARD=feather_stm32f405_express TRANSLATION=pt_BR
|
||||||
|
# I gave up trying to do esp builds on windows when I saw
|
||||||
|
# ERROR: Platform MINGW64_NT-10.0-17763-x86_64 appears to be unsupported
|
||||||
|
# https://github.com/espressif/esp-idf/issues/7062
|
||||||
|
|
||||||
aarch:
|
aarch:
|
||||||
needs: [scheduler, mpy-cross, tests]
|
needs: [scheduler, mpy-cross, tests]
|
||||||
if: ${{ needs.scheduler.outputs.boards-aarch != '[]' }}
|
if: ${{ needs.scheduler.outputs.boards-aarch != '[]' }}
|
||||||
@ -240,6 +307,16 @@ jobs:
|
|||||||
boards: ${{ needs.scheduler.outputs.boards-arm }}
|
boards: ${{ needs.scheduler.outputs.boards-arm }}
|
||||||
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
||||||
|
|
||||||
|
atmel:
|
||||||
|
needs: [scheduler, mpy-cross, tests]
|
||||||
|
if: ${{ needs.scheduler.outputs.boards-atmel != '[]' }}
|
||||||
|
uses: ./.github/workflows/build-boards.yml
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
platform: arm
|
||||||
|
boards: ${{ needs.scheduler.outputs.boards-atmel }}
|
||||||
|
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
||||||
|
|
||||||
esp:
|
esp:
|
||||||
needs: [scheduler, mpy-cross, tests]
|
needs: [scheduler, mpy-cross, tests]
|
||||||
if: ${{ needs.scheduler.outputs.boards-esp != '[]' }}
|
if: ${{ needs.scheduler.outputs.boards-esp != '[]' }}
|
||||||
@ -250,16 +327,6 @@ jobs:
|
|||||||
boards: ${{ needs.scheduler.outputs.boards-esp }}
|
boards: ${{ needs.scheduler.outputs.boards-esp }}
|
||||||
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
||||||
|
|
||||||
nrf:
|
|
||||||
needs: [scheduler, mpy-cross, tests]
|
|
||||||
if: ${{ needs.scheduler.outputs.boards-nrf != '[]' }}
|
|
||||||
uses: ./.github/workflows/build-boards.yml
|
|
||||||
secrets: inherit
|
|
||||||
with:
|
|
||||||
platform: nrf
|
|
||||||
boards: ${{ needs.scheduler.outputs.boards-nrf }}
|
|
||||||
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
|
||||||
|
|
||||||
riscv:
|
riscv:
|
||||||
needs: [scheduler, mpy-cross, tests]
|
needs: [scheduler, mpy-cross, tests]
|
||||||
if: ${{ needs.scheduler.outputs.boards-riscv != '[]' }}
|
if: ${{ needs.scheduler.outputs.boards-riscv != '[]' }}
|
||||||
@ -269,13 +336,3 @@ jobs:
|
|||||||
platform: riscv
|
platform: riscv
|
||||||
boards: ${{ needs.scheduler.outputs.boards-riscv }}
|
boards: ${{ needs.scheduler.outputs.boards-riscv }}
|
||||||
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
||||||
|
|
||||||
rpi:
|
|
||||||
needs: [scheduler, mpy-cross, tests]
|
|
||||||
if: ${{ needs.scheduler.outputs.boards-rpi != '[]' }}
|
|
||||||
uses: ./.github/workflows/build-boards.yml
|
|
||||||
secrets: inherit
|
|
||||||
with:
|
|
||||||
platform: arm
|
|
||||||
boards: ${{ needs.scheduler.outputs.boards-rpi }}
|
|
||||||
cp-version: ${{ needs.scheduler.outputs.cp-version }}
|
|
||||||
|
111
.github/workflows/ports_windows.yml
vendored
111
.github/workflows/ports_windows.yml
vendored
@ -1,111 +0,0 @@
|
|||||||
name: windows port
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- '.github/workflows/ports_windows.yml'
|
|
||||||
- 'extmod/**'
|
|
||||||
- 'lib/**'
|
|
||||||
- 'mpy-cross/**'
|
|
||||||
- 'ports/unix/**'
|
|
||||||
- 'ports/windows/**'
|
|
||||||
- 'py/**'
|
|
||||||
- 'requirements*.txt'
|
|
||||||
- 'tools/**'
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
windows:
|
|
||||||
runs-on: windows-2022
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
# We define a custom shell script here, although `msys2.cmd` does neither exist nor is it available in the PATH yet
|
|
||||||
shell: msys2 {0}
|
|
||||||
steps:
|
|
||||||
|
|
||||||
# We want to change the configuration of the git command that actions/checkout will be using (since it is not possible to set autocrlf through the action yet, see actions/checkout#226).
|
|
||||||
- run: git config --global core.autocrlf input
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Check python coding (cmd)
|
|
||||||
run: python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
|
||||||
shell: cmd
|
|
||||||
|
|
||||||
# We use a JS Action, which calls the system terminal or other custom terminals directly, if required
|
|
||||||
- uses: msys2/setup-msys2@v2
|
|
||||||
with:
|
|
||||||
update: true
|
|
||||||
install: base-devel git wget unzip gcc python-pip
|
|
||||||
|
|
||||||
# The goal of this was to test how things worked when the default file
|
|
||||||
# encoding (locale.getpreferedencoding()) was not UTF-8. However, msys2
|
|
||||||
# python does use utf-8 as the preferred file encoding, and using
|
|
||||||
# actions/setup-python python3.8 gave a broken build, so we're not really
|
|
||||||
# testing what we wanted to test.
|
|
||||||
#
|
|
||||||
# however, commandline length limits are being tested so that does some
|
|
||||||
# good.
|
|
||||||
- name: Check python coding (msys2)
|
|
||||||
run: |
|
|
||||||
locale -v
|
|
||||||
which python; python --version
|
|
||||||
python -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
|
||||||
which python3; python3 --version
|
|
||||||
python3 -c "import sys, locale; print(sys.getdefaultencoding(), locale.getpreferredencoding(False))"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
wget --no-verbose -O gcc-arm.zip https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-win32.zip
|
|
||||||
unzip -q -d /tmp gcc-arm.zip
|
|
||||||
tar -C /tmp/gcc-arm-none-* -cf - . | tar -C /usr/local -xf -
|
|
||||||
pip install wheel
|
|
||||||
# requirements_dev.txt doesn't install on windows. (with msys2 python)
|
|
||||||
# instead, pick a subset for what we want to do
|
|
||||||
pip install cascadetoml jinja2 typer click intelhex
|
|
||||||
# check that installed packages work....?
|
|
||||||
which python; python --version; python -c "import cascadetoml"
|
|
||||||
which python3; python3 --version; python3 -c "import cascadetoml"
|
|
||||||
|
|
||||||
- name: Set up repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
submodules: false
|
|
||||||
fetch-depth: 1
|
|
||||||
|
|
||||||
- name: Set up submodules
|
|
||||||
uses: ./.github/actions/deps/submodules
|
|
||||||
with:
|
|
||||||
version: true
|
|
||||||
|
|
||||||
- name: build mpy-cross
|
|
||||||
run: make -j2 -C mpy-cross
|
|
||||||
|
|
||||||
- name: build rp2040
|
|
||||||
run: make -j2 -C ports/raspberrypi BOARD=adafruit_feather_rp2040 TRANSLATION=de_DE
|
|
||||||
|
|
||||||
- name: build samd21
|
|
||||||
run: make -j2 -C ports/atmel-samd BOARD=feather_m0_express TRANSLATION=zh_Latn_pinyin
|
|
||||||
|
|
||||||
- name: build samd51
|
|
||||||
run: make -j2 -C ports/atmel-samd BOARD=feather_m4_express TRANSLATION=es
|
|
||||||
|
|
||||||
- name: build nrf
|
|
||||||
run: make -j2 -C ports/nrf BOARD=feather_nrf52840_express TRANSLATION=fr
|
|
||||||
|
|
||||||
- name: build stm
|
|
||||||
run: make -j2 -C ports/stm BOARD=feather_stm32f405_express TRANSLATION=pt_BR
|
|
||||||
|
|
||||||
# I gave up trying to do esp32 builds on windows when I saw
|
|
||||||
# ERROR: Platform MINGW64_NT-10.0-17763-x86_64 appears to be unsupported
|
|
||||||
# https://github.com/espressif/esp-idf/issues/7062
|
|
||||||
#
|
|
||||||
# - name: prepare esp
|
|
||||||
# run: ports/espressif/esp-idf/install.bat
|
|
||||||
# shell: cmd
|
|
||||||
#
|
|
||||||
# - name: build esp
|
|
||||||
# run: . ports/espressif/esp-idf/export.sh && make -j2 -C ports/espressif BOARD=adafruit_metro_esp32s2
|
|
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -187,10 +187,6 @@
|
|||||||
[submodule "frozen/Adafruit_CircuitPython_APDS9960"]
|
[submodule "frozen/Adafruit_CircuitPython_APDS9960"]
|
||||||
path = frozen/Adafruit_CircuitPython_APDS9960
|
path = frozen/Adafruit_CircuitPython_APDS9960
|
||||||
url = https://github.com/adafruit/Adafruit_CircuitPython_APDS9960
|
url = https://github.com/adafruit/Adafruit_CircuitPython_APDS9960
|
||||||
[submodule "ports/broadcom/peripherals"]
|
|
||||||
path = ports/broadcom/peripherals
|
|
||||||
url = https://github.com/adafruit/broadcom-peripherals.git
|
|
||||||
branch = main-build
|
|
||||||
[submodule "rpi-firmware"]
|
[submodule "rpi-firmware"]
|
||||||
path = ports/broadcom/firmware
|
path = ports/broadcom/firmware
|
||||||
url = https://github.com/raspberrypi/rpi-firmware.git
|
url = https://github.com/raspberrypi/rpi-firmware.git
|
||||||
@ -328,3 +324,7 @@
|
|||||||
[submodule "frozen/Adafruit_CircuitPython_SSD1680"]
|
[submodule "frozen/Adafruit_CircuitPython_SSD1680"]
|
||||||
path = frozen/Adafruit_CircuitPython_SSD1680
|
path = frozen/Adafruit_CircuitPython_SSD1680
|
||||||
url = https://github.com/adafruit/Adafruit_CircuitPython_SSD1680
|
url = https://github.com/adafruit/Adafruit_CircuitPython_SSD1680
|
||||||
|
[submodule "ports/broadcom/peripherals"]
|
||||||
|
path = ports/broadcom/peripherals
|
||||||
|
url = https://github.com/adafruit/broadcom-peripherals.git
|
||||||
|
branch = main-build
|
||||||
|
12
locale/ID.po
12
locale/ID.po
@ -30,6 +30,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2419,6 +2427,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -28,6 +28,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2389,6 +2397,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
12
locale/cs.po
12
locale/cs.po
@ -32,6 +32,14 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Kód byl zastaven kvůli automatickému načtení. K načtení dojde brzy.\n"
|
"Kód byl zastaven kvůli automatickému načtení. K načtení dojde brzy.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2406,6 +2414,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,6 +31,14 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Code wurde durch automatisches Neuladen gestoppt. Wird bald neu geladen.\n"
|
"Code wurde durch automatisches Neuladen gestoppt. Wird bald neu geladen.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2455,6 +2463,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
12
locale/el.po
12
locale/el.po
@ -35,6 +35,14 @@ msgstr ""
|
|||||||
"Ο κώδικας σταμάτησε λόγω της αυτόματης επαναφόρτωσης. Η επαναφόρτωση θα "
|
"Ο κώδικας σταμάτησε λόγω της αυτόματης επαναφόρτωσης. Η επαναφόρτωση θα "
|
||||||
"γίνει σύντομα.\n"
|
"γίνει σύντομα.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2414,6 +2422,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -34,6 +34,14 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2414,6 +2422,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
110
locale/es.po
110
locale/es.po
@ -8,8 +8,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
|
"PO-Revision-Date: 2023-02-23 17:53+0000\n"
|
||||||
"Last-Translator: Jose David M <jquintana202020@gmail.com>\n"
|
"Last-Translator: Luis Ruiz San Segundo <luisan00@hotmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -34,6 +34,19 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Código detenido por la auto-recarga. Recargando pronto.\n"
|
"Código detenido por la auto-recarga. Recargando pronto.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"CIRCUITPY_PYSTACK_SIZE no válido\n"
|
||||||
|
"\n"
|
||||||
|
"\n"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -50,7 +63,7 @@ msgid ""
|
|||||||
"Press reset to exit safe mode.\n"
|
"Press reset to exit safe mode.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Presione reset para salir de safe mode.\n"
|
"Presione reset para salir del modo seguro.\n"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -58,7 +71,7 @@ msgid ""
|
|||||||
"You are in safe mode because:\n"
|
"You are in safe mode because:\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Estas in safe mode porque:\n"
|
"Estas en modo seguro porque:\n"
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid " File \"%q\""
|
msgid " File \"%q\""
|
||||||
@ -145,7 +158,7 @@ msgstr "%q está siendo utilizado"
|
|||||||
|
|
||||||
#: py/objstr.c py/objstrunicode.c
|
#: py/objstr.c py/objstrunicode.c
|
||||||
msgid "%q index out of range"
|
msgid "%q index out of range"
|
||||||
msgstr "%q indice fuera de rango"
|
msgstr "%q índice fuera de rango"
|
||||||
|
|
||||||
#: shared-module/bitbangio/SPI.c
|
#: shared-module/bitbangio/SPI.c
|
||||||
msgid "%q init failed"
|
msgid "%q init failed"
|
||||||
@ -161,19 +174,19 @@ msgstr "%q es solamente de lectura en esta tarjeta"
|
|||||||
|
|
||||||
#: py/argcheck.c shared-bindings/usb_hid/Device.c
|
#: py/argcheck.c shared-bindings/usb_hid/Device.c
|
||||||
msgid "%q length must be %d"
|
msgid "%q length must be %d"
|
||||||
msgstr "%q tamaño debe ser %d"
|
msgstr "%q longitud debe ser %d"
|
||||||
|
|
||||||
#: py/argcheck.c
|
#: py/argcheck.c
|
||||||
msgid "%q length must be %d-%d"
|
msgid "%q length must be %d-%d"
|
||||||
msgstr "%q tamaño debe ser %d-%d"
|
msgstr "%q longitud debe ser %d-%d"
|
||||||
|
|
||||||
#: py/argcheck.c
|
#: py/argcheck.c
|
||||||
msgid "%q length must be <= %d"
|
msgid "%q length must be <= %d"
|
||||||
msgstr "%q tamaño debe ser <= %d"
|
msgstr "%q longitud debe ser <= %d"
|
||||||
|
|
||||||
#: py/argcheck.c
|
#: py/argcheck.c
|
||||||
msgid "%q length must be >= %d"
|
msgid "%q length must be >= %d"
|
||||||
msgstr "%q tamaño debe ser >= %d"
|
msgstr "%q longitud debe ser >= %d"
|
||||||
|
|
||||||
#: py/argcheck.c
|
#: py/argcheck.c
|
||||||
msgid "%q must be %d"
|
msgid "%q must be %d"
|
||||||
@ -197,7 +210,7 @@ msgstr "%q debe ser >= %d"
|
|||||||
|
|
||||||
#: shared-bindings/analogbufio/BufferedIn.c
|
#: shared-bindings/analogbufio/BufferedIn.c
|
||||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||||
msgstr "%q debe ser un byte-matriz o matriz de tipo 'H' o 'B'"
|
msgstr "%q debe ser un bytearray o array de tipo 'H' o 'B'"
|
||||||
|
|
||||||
#: shared-bindings/audiocore/RawSample.c
|
#: shared-bindings/audiocore/RawSample.c
|
||||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||||
@ -243,7 +256,7 @@ msgstr "%q() toma %d argumentos posicionales pero %d fueron dados"
|
|||||||
|
|
||||||
#: shared-bindings/usb_hid/Device.c
|
#: shared-bindings/usb_hid/Device.c
|
||||||
msgid "%q, %q, and %q must all be the same length"
|
msgid "%q, %q, and %q must all be the same length"
|
||||||
msgstr "%q, %q, y %q deben tener el mismo largo"
|
msgstr "%q, %q, y %q deben tener la misma longitud"
|
||||||
|
|
||||||
#: py/objint.c shared-bindings/storage/__init__.c
|
#: py/objint.c shared-bindings/storage/__init__.c
|
||||||
msgid "%q=%q"
|
msgid "%q=%q"
|
||||||
@ -349,7 +362,7 @@ msgstr "'=' alineación no permitida en el especificador string format"
|
|||||||
|
|
||||||
#: shared-module/struct/__init__.c
|
#: shared-module/struct/__init__.c
|
||||||
msgid "'S' and 'O' are not supported format types"
|
msgid "'S' and 'O' are not supported format types"
|
||||||
msgstr "'S' y 'O' no son compatibles con los tipos de formato"
|
msgstr "'S' y 'O' no son tipos de formato soportados"
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'align' requires 1 argument"
|
msgid "'align' requires 1 argument"
|
||||||
@ -423,7 +436,7 @@ msgstr "tipos de 64 bit"
|
|||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||||
msgid "A hardware interrupt channel is already in use"
|
msgid "A hardware interrupt channel is already in use"
|
||||||
msgstr "El canal EXTINT ya está siendo utilizado"
|
msgstr "Un canal de interrupción por hardware ya está en uso"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/analogio/AnalogIn.c
|
#: ports/espressif/common-hal/analogio/AnalogIn.c
|
||||||
msgid "ADC2 is being used by WiFi"
|
msgid "ADC2 is being used by WiFi"
|
||||||
@ -432,7 +445,7 @@ msgstr "ADC2 está siendo usado por WiFi"
|
|||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Address must be %d bytes long"
|
msgid "Address must be %d bytes long"
|
||||||
msgstr "La dirección debe tener %d bytes de largo"
|
msgstr "La dirección debe tener %d bytes de longitud"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/memorymap/AddressRange.c
|
#: ports/espressif/common-hal/memorymap/AddressRange.c
|
||||||
msgid "Address range not allowed"
|
msgid "Address range not allowed"
|
||||||
@ -446,7 +459,7 @@ msgstr "Todos los periféricos CAN están en uso"
|
|||||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||||
#: ports/nrf/common-hal/busio/I2C.c
|
#: ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "All I2C peripherals are in use"
|
msgid "All I2C peripherals are in use"
|
||||||
msgstr "Todos los periféricos I2C están siendo usados"
|
msgstr "Todos los periféricos I2C están en uso"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/countio/Counter.c
|
#: ports/espressif/common-hal/countio/Counter.c
|
||||||
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c
|
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c
|
||||||
@ -462,36 +475,36 @@ msgstr "Todos los FIFOs de RX en uso"
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
#: ports/espressif/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
|
||||||
msgid "All SPI peripherals are in use"
|
msgid "All SPI peripherals are in use"
|
||||||
msgstr "Todos los periféricos SPI están siendo usados"
|
msgstr "Todos los periféricos SPI están en uso"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "All UART peripherals are in use"
|
msgid "All UART peripherals are in use"
|
||||||
msgstr "Todos los periféricos UART están siendo usados"
|
msgstr "Todos los periféricos UART están en uso"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/countio/Counter.c
|
#: ports/nrf/common-hal/countio/Counter.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c
|
||||||
#: ports/nrf/common-hal/rotaryio/IncrementalEncoder.c
|
#: ports/nrf/common-hal/rotaryio/IncrementalEncoder.c
|
||||||
#: shared-bindings/pwmio/PWMOut.c
|
#: shared-bindings/pwmio/PWMOut.c
|
||||||
msgid "All channels in use"
|
msgid "All channels in use"
|
||||||
msgstr "Todos los canales esta en uso"
|
msgstr "Todos los canales están en uso"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
msgid "All event channels in use"
|
msgid "All event channels in use"
|
||||||
msgstr "Todos los canales de eventos estan siendo usados"
|
msgstr "Todos los canales de eventos están en uso"
|
||||||
|
|
||||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||||
msgid "All state machines in use"
|
msgid "All state machines in use"
|
||||||
msgstr "Todas las máquinas de estado en uso"
|
msgstr "Todas las máquinas de estado están en uso"
|
||||||
|
|
||||||
#: ports/atmel-samd/audio_dma.c
|
#: ports/atmel-samd/audio_dma.c
|
||||||
msgid "All sync event channels in use"
|
msgid "All sync event channels in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Todos los canales de eventos de sincronización (sync event channels) están "
|
"Todos los canales de eventos de sincronización (sync event channels) están "
|
||||||
"siendo utilizados"
|
"en uso"
|
||||||
|
|
||||||
#: shared-bindings/pwmio/PWMOut.c
|
#: shared-bindings/pwmio/PWMOut.c
|
||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Todos los timers para este pin están siendo utilizados"
|
msgstr "Todos los timers para este pin están en uso"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
@ -560,7 +573,7 @@ msgstr "Tratando de localizar %d bloques"
|
|||||||
|
|
||||||
#: ports/raspberrypi/audio_dma.c
|
#: ports/raspberrypi/audio_dma.c
|
||||||
msgid "Audio conversion not implemented"
|
msgid "Audio conversion not implemented"
|
||||||
msgstr "Conversión de audio no esta implementada"
|
msgstr "Conversión de audio no está implementada"
|
||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "AuthMode.OPEN is not used with password"
|
msgid "AuthMode.OPEN is not used with password"
|
||||||
@ -579,12 +592,12 @@ msgid ""
|
|||||||
"Auto-reload is on. Simply save files over USB to run them or enter REPL to "
|
"Auto-reload is on. Simply save files over USB to run them or enter REPL to "
|
||||||
"disable.\n"
|
"disable.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Auto-reload habilitado. Simplemente guarda los archivos via USB para "
|
"Auto-reload habilitado. Simplemente guarda los archivos vía USB para "
|
||||||
"ejecutarlos o entra al REPL para desabilitarlos.\n"
|
"ejecutarlos o entra al REPL para deshabilitarlo.\n"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/canio/CAN.c
|
#: ports/espressif/common-hal/canio/CAN.c
|
||||||
msgid "Baudrate not supported by peripheral"
|
msgid "Baudrate not supported by peripheral"
|
||||||
msgstr "El periférico no maneja el Baudrate"
|
msgstr "Baudrate no soportado por el periférico"
|
||||||
|
|
||||||
#: shared-module/displayio/Display.c
|
#: shared-module/displayio/Display.c
|
||||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||||
@ -605,7 +618,7 @@ msgstr "Bits depth debe ser múltiplo de 8."
|
|||||||
|
|
||||||
#: shared-bindings/bitmaptools/__init__.c
|
#: shared-bindings/bitmaptools/__init__.c
|
||||||
msgid "Bitmap size and bits per value must match"
|
msgid "Bitmap size and bits per value must match"
|
||||||
msgstr "El tamaño del mapa de bits y los bits por valor deben cotejar"
|
msgstr "El tamaño del mapa de bits y los bits por valor deben coincidir"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Boot device must be first (interface #0)."
|
msgid "Boot device must be first (interface #0)."
|
||||||
@ -634,44 +647,43 @@ msgstr "El brillo no se puede ajustar"
|
|||||||
#: shared-bindings/_bleio/UUID.c
|
#: shared-bindings/_bleio/UUID.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Buffer + offset too small %d %d %d"
|
msgid "Buffer + offset too small %d %d %d"
|
||||||
msgstr "Búfer + compensado muy pequeños %d %d %d"
|
msgstr "Buffer + offset muy pequeños %d %d %d"
|
||||||
|
|
||||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||||
msgid "Buffer elements must be 4 bytes long or less"
|
msgid "Buffer elements must be 4 bytes long or less"
|
||||||
msgstr ""
|
msgstr "Los elementos del buffer deben tener una longitud de 4 bytes o menos"
|
||||||
"Los elementos del búfer deben de ser de una longitud de 4 bytes o menos"
|
|
||||||
|
|
||||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||||
msgid "Buffer is not a bytearray."
|
msgid "Buffer is not a bytearray."
|
||||||
msgstr "Búfer no es un bytearray."
|
msgstr "Buffer no es un bytearray."
|
||||||
|
|
||||||
#: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c
|
#: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c
|
||||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||||
msgid "Buffer is too small"
|
msgid "Buffer is too small"
|
||||||
msgstr "Búfer es muy pequeño"
|
msgstr "Buffer es muy pequeño"
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Buffer length %d too big. It must be less than %d"
|
msgid "Buffer length %d too big. It must be less than %d"
|
||||||
msgstr "Longitud del búfer %d es demasiado grande. Tiene que ser menor a %d"
|
msgstr "La longitud del buffer %d es demasiado grande. Tiene que ser menor a %d"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
|
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
|
||||||
#: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c
|
#: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c
|
||||||
msgid "Buffer length must be a multiple of 512"
|
msgid "Buffer length must be a multiple of 512"
|
||||||
msgstr "El tamaño del búfer debe ser múltiplo de 512"
|
msgstr "El tamaño del buffer debe ser múltiplo de 512"
|
||||||
|
|
||||||
#: ports/stm/common-hal/sdioio/SDCard.c shared-bindings/floppyio/__init__.c
|
#: ports/stm/common-hal/sdioio/SDCard.c shared-bindings/floppyio/__init__.c
|
||||||
msgid "Buffer must be a multiple of 512 bytes"
|
msgid "Buffer must be a multiple of 512 bytes"
|
||||||
msgstr "Búfer deber ser un múltiplo de 512 bytes"
|
msgstr "El buffer deber ser un múltiplo de 512 bytes"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/PacketBuffer.c
|
#: shared-bindings/_bleio/PacketBuffer.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Buffer too short by %d bytes"
|
msgid "Buffer too short by %d bytes"
|
||||||
msgstr "Búfer muy corto por %d bytes"
|
msgstr "Buffer muy corto por %d bytes"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/imagecapture/ParallelImageCapture.c
|
#: ports/espressif/common-hal/imagecapture/ParallelImageCapture.c
|
||||||
msgid "Buffers must be same size"
|
msgid "Buffers must be same size"
|
||||||
msgstr "Búferes deben ser del mismo tamaño"
|
msgstr "Los buffers deben ser del mismo tamaño"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c
|
#: ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c
|
||||||
#: ports/espressif/common-hal/paralleldisplay/ParallelBus.c
|
#: ports/espressif/common-hal/paralleldisplay/ParallelBus.c
|
||||||
@ -758,7 +770,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
|
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
|
||||||
msgid "Cannot pull on input-only pin."
|
msgid "Cannot pull on input-only pin."
|
||||||
msgstr "No puede hacer pull en un pin de entrada sola."
|
msgstr "No puede hacer pull en un pin de solo entrada."
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Cannot record to a file"
|
msgid "Cannot record to a file"
|
||||||
@ -1844,7 +1856,7 @@ msgstr ""
|
|||||||
#: main.c
|
#: main.c
|
||||||
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Pretendiendo ir a deep sleep hasta la alarma, CTRL-C or una escritura de "
|
"Pretendiendo ir a deep sleep hasta la alarma, CTRL-C o una escritura de "
|
||||||
"archivo\n"
|
"archivo\n"
|
||||||
|
|
||||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||||
@ -2461,38 +2473,42 @@ msgstr "Usted presionó ambos botones al iniciar."
|
|||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "You pressed button A at start up."
|
msgid "You pressed button A at start up."
|
||||||
msgstr "Usted presionó el boton A al iniciar."
|
msgstr "Usted presionó el botón A al iniciar."
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "You pressed the BOOT button at start up"
|
msgid "You pressed the BOOT button at start up"
|
||||||
msgstr "Usted presionó el boton BOOT al iniciar"
|
msgstr "Usted presionó el botón BOOT al iniciar"
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr "Presionaste el botón GPIO0 al inicio."
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr "Presionó el botón Rec al inicio."
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr "Usted presionó el boton SW38 al iniciar."
|
msgstr "Usted presionó el botón SW38 al iniciar."
|
||||||
|
|
||||||
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
|
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
|
||||||
msgid "You pressed the VOLUME button at start up."
|
msgid "You pressed the VOLUME button at start up."
|
||||||
msgstr "Usted presionó el boton de Volumén al iniciar."
|
msgstr "Usted presionó el botón de volumen al iniciar."
|
||||||
|
|
||||||
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
|
||||||
msgid "You pressed the central button at start up."
|
msgid "You pressed the central button at start up."
|
||||||
msgstr "Usted presionó el boton central al iniciar."
|
msgstr "Usted presionó el botón central al iniciar."
|
||||||
|
|
||||||
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
|
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
|
||||||
msgid "You pressed the left button at start up."
|
msgid "You pressed the left button at start up."
|
||||||
msgstr "Usted presionó el boton izquierdo al iniciar."
|
msgstr "Usted presionó el botón izquierdo al iniciar."
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "You pressed the reset button during boot."
|
msgid "You pressed the reset button during boot."
|
||||||
msgstr "Usted presionó el boton izquierdo al iniciar."
|
msgstr "Presionó el botón de reinicio durante el arranque."
|
||||||
|
|
||||||
#: supervisor/shared/micropython.c
|
#: supervisor/shared/micropython.c
|
||||||
msgid "[truncated due to length]"
|
msgid "[truncated due to length]"
|
||||||
|
@ -29,6 +29,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2409,6 +2417,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
122
locale/fr.po
122
locale/fr.po
@ -8,14 +8,14 @@ msgstr ""
|
|||||||
"Project-Id-Version: 0.1\n"
|
"Project-Id-Version: 0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2022-12-27 18:02+0000\n"
|
"PO-Revision-Date: 2023-02-22 18:34+0000\n"
|
||||||
"Last-Translator: Blinka CircuitPython <limor@ladyada.net>\n"
|
"Last-Translator: Neradoc <weblate@ri1.fr>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 4.15.1-dev\n"
|
"X-Generator: Weblate 4.16-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -34,6 +34,14 @@ msgstr ""
|
|||||||
"Le code a été arrêté par l'actualisation automatique. Rechargement "
|
"Le code a été arrêté par l'actualisation automatique. Rechargement "
|
||||||
"prochain.\n"
|
"prochain.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -46,12 +54,16 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Press reset to exit safe mode.\n"
|
"Press reset to exit safe mode.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"Appuyer sur reset pour sortir du mode sûr.\n"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"You are in safe mode because:\n"
|
"You are in safe mode because:\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"Le mode sûr est actif:\n"
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid " File \"%q\""
|
msgid " File \"%q\""
|
||||||
@ -127,7 +139,7 @@ msgstr "Échec de %q : %d"
|
|||||||
|
|
||||||
#: py/argcheck.c
|
#: py/argcheck.c
|
||||||
msgid "%q in %q must be of type %q, not %q"
|
msgid "%q in %q must be of type %q, not %q"
|
||||||
msgstr ""
|
msgstr "%q dans %q doit être de type %q, pas %q"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/espulp/ULP.c
|
#: ports/espressif/common-hal/espulp/ULP.c
|
||||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||||
@ -150,7 +162,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "%q is read-only for this board"
|
msgid "%q is read-only for this board"
|
||||||
msgstr ""
|
msgstr "%q est en lecture seule sur cette carte"
|
||||||
|
|
||||||
#: py/argcheck.c shared-bindings/usb_hid/Device.c
|
#: py/argcheck.c shared-bindings/usb_hid/Device.c
|
||||||
msgid "%q length must be %d"
|
msgid "%q length must be %d"
|
||||||
@ -190,7 +202,7 @@ msgstr "%q doit être >= %d"
|
|||||||
|
|
||||||
#: shared-bindings/analogbufio/BufferedIn.c
|
#: shared-bindings/analogbufio/BufferedIn.c
|
||||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||||
msgstr ""
|
msgstr "%q doit être un bytearray ou matrice de type 'H' ou 'B'"
|
||||||
|
|
||||||
#: shared-bindings/audiocore/RawSample.c
|
#: shared-bindings/audiocore/RawSample.c
|
||||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||||
@ -199,11 +211,11 @@ msgstr "%q doit être a bytearray ou array de type 'h', 'H', 'b', ou 'B'"
|
|||||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||||
msgid "%q must be of type %q or %q, not %q"
|
msgid "%q must be of type %q or %q, not %q"
|
||||||
msgstr ""
|
msgstr "%q doit être de type %q ou %q, pas %q"
|
||||||
|
|
||||||
#: py/argcheck.c py/obj.c py/objstrunicode.c
|
#: py/argcheck.c py/obj.c py/objstrunicode.c
|
||||||
msgid "%q must be of type %q, not %q"
|
msgid "%q must be of type %q, not %q"
|
||||||
msgstr ""
|
msgstr "%q doit être de type %q, pas %q"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "%q must be power of 2"
|
msgid "%q must be power of 2"
|
||||||
@ -228,7 +240,7 @@ msgstr "broche %q invalide"
|
|||||||
|
|
||||||
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
|
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
|
||||||
msgid "%q step cannot be zero"
|
msgid "%q step cannot be zero"
|
||||||
msgstr ""
|
msgstr "le pas ne peut être zéro dans %q"
|
||||||
|
|
||||||
#: py/bc.c py/objnamedtuple.c
|
#: py/bc.c py/objnamedtuple.c
|
||||||
msgid "%q() takes %d positional arguments but %d were given"
|
msgid "%q() takes %d positional arguments but %d were given"
|
||||||
@ -429,7 +441,7 @@ msgstr "L'adresse doit être longue de %d octets"
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/memorymap/AddressRange.c
|
#: ports/espressif/common-hal/memorymap/AddressRange.c
|
||||||
msgid "Address range not allowed"
|
msgid "Address range not allowed"
|
||||||
msgstr ""
|
msgstr "Plage d'adresses non autorisée"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/canio/CAN.c
|
#: ports/espressif/common-hal/canio/CAN.c
|
||||||
msgid "All CAN peripherals are in use"
|
msgid "All CAN peripherals are in use"
|
||||||
@ -524,7 +536,7 @@ msgstr "Déjà à la recherche des réseaux wifi"
|
|||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "An error occurred while retrieving '%s':\n"
|
msgid "An error occurred while retrieving '%s':\n"
|
||||||
msgstr ""
|
msgstr "Erreur survenue en récupérant '%s':\n"
|
||||||
|
|
||||||
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
msgid "Another PWMAudioOut is already active"
|
msgid "Another PWMAudioOut is already active"
|
||||||
@ -921,7 +933,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "During handling of the above exception, another exception occurred:"
|
msgid "During handling of the above exception, another exception occurred:"
|
||||||
msgstr ""
|
msgstr "Pendant la gestion de cette exception, un autre s'est produite:"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "ECB only operates on 16 bytes at a time"
|
msgid "ECB only operates on 16 bytes at a time"
|
||||||
@ -950,7 +962,7 @@ msgstr "Erreur dans l'expression régulière"
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Error in safemode.py."
|
msgid "Error in safemode.py."
|
||||||
msgstr ""
|
msgstr "Erreur dans safemode.py."
|
||||||
|
|
||||||
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
|
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
|
||||||
msgid "Error: Failure to bind"
|
msgid "Error: Failure to bind"
|
||||||
@ -958,7 +970,7 @@ msgstr "Erreur : Impossible de lier"
|
|||||||
|
|
||||||
#: shared-bindings/alarm/__init__.c
|
#: shared-bindings/alarm/__init__.c
|
||||||
msgid "Expected a kind of %q"
|
msgid "Expected a kind of %q"
|
||||||
msgstr ""
|
msgstr "Argument de type %q attendu"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
@ -1035,7 +1047,7 @@ msgstr "Le fichier existe"
|
|||||||
|
|
||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
msgid "File not found"
|
msgid "File not found"
|
||||||
msgstr ""
|
msgstr "Fichier non trouvé"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
#: ports/espressif/common-hal/canio/Listener.c
|
#: ports/espressif/common-hal/canio/Listener.c
|
||||||
@ -1123,12 +1135,12 @@ msgstr "Matériel utilisé, essayez d'autres broches"
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Heap allocation when VM not running."
|
msgid "Heap allocation when VM not running."
|
||||||
msgstr ""
|
msgstr "Allocation du tas en dehors de la MV."
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"Heap was corrupted because the stack was too small. Increase stack size."
|
"Heap was corrupted because the stack was too small. Increase stack size."
|
||||||
msgstr ""
|
msgstr "Tas corrompu parce que la pile était trop petite. Augmenter la pile."
|
||||||
|
|
||||||
#: extmod/vfs_posix_file.c py/objstringio.c
|
#: extmod/vfs_posix_file.c py/objstringio.c
|
||||||
msgid "I/O operation on closed file"
|
msgid "I/O operation on closed file"
|
||||||
@ -1141,7 +1153,7 @@ msgstr "Erreur d'initialisation I2C"
|
|||||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||||
msgid "I2C peripheral in use"
|
msgid "I2C peripheral in use"
|
||||||
msgstr "périphérique I2C utilisé"
|
msgstr "Périphérique I2C utilisé"
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/I2SOut.c
|
#: shared-bindings/audiobusio/I2SOut.c
|
||||||
msgid "I2SOut not available"
|
msgid "I2SOut not available"
|
||||||
@ -1258,7 +1270,7 @@ msgstr "Le minuteur du watchdog interne a expiré."
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Interrupt error."
|
msgid "Interrupt error."
|
||||||
msgstr ""
|
msgstr "Erreur d'interruption."
|
||||||
|
|
||||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||||
msgid "Invalid %q"
|
msgid "Invalid %q"
|
||||||
@ -1297,7 +1309,7 @@ msgstr "Bits par valeur invalides"
|
|||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid byte %.*s"
|
msgid "Invalid byte %.*s"
|
||||||
msgstr ""
|
msgstr "Octet invalide %.*s"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
|
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1327,7 +1339,7 @@ msgstr "État invalide"
|
|||||||
|
|
||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
msgid "Invalid unicode escape"
|
msgid "Invalid unicode escape"
|
||||||
msgstr ""
|
msgstr "Séquence unicode invalide"
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
msgid "Key must be 16, 24, or 32 bytes long"
|
msgid "Key must be 16, 24, or 32 bytes long"
|
||||||
@ -1335,7 +1347,7 @@ msgstr "La clé doit comporter 16, 24 ou 32 octets"
|
|||||||
|
|
||||||
#: shared-module/os/getenv.c
|
#: shared-module/os/getenv.c
|
||||||
msgid "Key not found"
|
msgid "Key not found"
|
||||||
msgstr ""
|
msgstr "Clé non trouvée"
|
||||||
|
|
||||||
#: shared-module/is31fl3741/FrameBuffer.c
|
#: shared-module/is31fl3741/FrameBuffer.c
|
||||||
msgid "LED mappings must match display size"
|
msgid "LED mappings must match display size"
|
||||||
@ -1448,7 +1460,7 @@ msgstr "Erreur NVS"
|
|||||||
|
|
||||||
#: shared-bindings/socketpool/SocketPool.c
|
#: shared-bindings/socketpool/SocketPool.c
|
||||||
msgid "Name or service not known"
|
msgid "Name or service not known"
|
||||||
msgstr ""
|
msgstr "Nom ou service inconnu"
|
||||||
|
|
||||||
#: py/qstr.c
|
#: py/qstr.c
|
||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
@ -1693,7 +1705,7 @@ msgstr "Une seul %q autorisée en sommeil profond."
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/espulp/ULPAlarm.c
|
#: ports/espressif/common-hal/espulp/ULPAlarm.c
|
||||||
msgid "Only one %q can be set."
|
msgid "Only one %q can be set."
|
||||||
msgstr ""
|
msgstr "Un seul %q peut être défini."
|
||||||
|
|
||||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||||
@ -1729,7 +1741,7 @@ msgstr "Timeout de l'opération"
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/mdns/Server.c
|
#: ports/raspberrypi/common-hal/mdns/Server.c
|
||||||
msgid "Out of MDNS service slots"
|
msgid "Out of MDNS service slots"
|
||||||
msgstr ""
|
msgstr "À cours de services MDNS"
|
||||||
|
|
||||||
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
|
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
|
||||||
msgid "Out of memory"
|
msgid "Out of memory"
|
||||||
@ -1865,7 +1877,7 @@ msgstr "Taille du programme invalide"
|
|||||||
|
|
||||||
#: ports/espressif/common-hal/espulp/ULP.c
|
#: ports/espressif/common-hal/espulp/ULP.c
|
||||||
msgid "Program too long"
|
msgid "Program too long"
|
||||||
msgstr ""
|
msgstr "Programme trop long"
|
||||||
|
|
||||||
#: shared-bindings/digitalio/DigitalInOut.c
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
msgid "Pull not used when direction is output."
|
msgid "Pull not used when direction is output."
|
||||||
@ -2047,7 +2059,7 @@ msgstr "Canal stéréo droit doit être sur le canal PWM B"
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Stopping AP is not supported."
|
msgid "Stopping AP is not supported."
|
||||||
msgstr ""
|
msgstr "Stopper n'est pas supporté."
|
||||||
|
|
||||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
@ -2067,11 +2079,11 @@ msgstr "Délais de lecture de température dépassée"
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "The `microcontroller` module was used to boot into safe mode."
|
msgid "The `microcontroller` module was used to boot into safe mode."
|
||||||
msgstr ""
|
msgstr "Le module microcontroller a été utilisé pour démarrer en mode sûr."
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "The above exception was the direct cause of the following exception:"
|
msgid "The above exception was the direct cause of the following exception:"
|
||||||
msgstr ""
|
msgstr "L'exception précédente est la cause directe de l'exception suivante:"
|
||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
|
||||||
@ -2079,7 +2091,7 @@ msgstr "La taille de rgb_pins doit être 6, 12, 18, 24 ou 30"
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "The power dipped. Make sure you are providing enough power."
|
msgid "The power dipped. Make sure you are providing enough power."
|
||||||
msgstr ""
|
msgstr "La puissance a chu. Assurez vous de fournir assez de puissance."
|
||||||
|
|
||||||
#: shared-module/audiomixer/MixerVoice.c
|
#: shared-module/audiomixer/MixerVoice.c
|
||||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||||
@ -2100,7 +2112,7 @@ msgstr "Le signe de l'échantillon ne correspond pas à celui du mixer"
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Third-party firmware fatal error."
|
msgid "Third-party firmware fatal error."
|
||||||
msgstr ""
|
msgstr "Erreur fatale de logiciel système tierce partie."
|
||||||
|
|
||||||
#: shared-module/imagecapture/ParallelImageCapture.c
|
#: shared-module/imagecapture/ParallelImageCapture.c
|
||||||
msgid "This microcontroller does not support continuous capture."
|
msgid "This microcontroller does not support continuous capture."
|
||||||
@ -2182,7 +2194,7 @@ msgstr "Initialisation UART"
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||||
msgid "UART peripheral in use"
|
msgid "UART peripheral in use"
|
||||||
msgstr ""
|
msgstr "Périphérique UART utilisé"
|
||||||
|
|
||||||
#: ports/stm/common-hal/busio/UART.c
|
#: ports/stm/common-hal/busio/UART.c
|
||||||
msgid "UART re-init"
|
msgid "UART re-init"
|
||||||
@ -2237,7 +2249,7 @@ msgstr "Impossible d'allouer des tampons pour une conversion signée"
|
|||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "Unable to allocate the heap."
|
msgid "Unable to allocate the heap."
|
||||||
msgstr ""
|
msgstr "Impossible d'allouer le tas."
|
||||||
|
|
||||||
#: ports/espressif/common-hal/busio/I2C.c
|
#: ports/espressif/common-hal/busio/I2C.c
|
||||||
msgid "Unable to create lock"
|
msgid "Unable to create lock"
|
||||||
@ -2268,7 +2280,7 @@ msgstr "Impossible de lancer la requête mDNS"
|
|||||||
|
|
||||||
#: shared-bindings/memorymap/AddressRange.c
|
#: shared-bindings/memorymap/AddressRange.c
|
||||||
msgid "Unable to write to address."
|
msgid "Unable to write to address."
|
||||||
msgstr ""
|
msgstr "L'écriture a échoué."
|
||||||
|
|
||||||
#: shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/nvm/ByteArray.c
|
||||||
msgid "Unable to write to nvm."
|
msgid "Unable to write to nvm."
|
||||||
@ -2437,15 +2449,15 @@ msgstr "Wi-Fi : "
|
|||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Wifi is in access point mode."
|
msgid "Wifi is in access point mode."
|
||||||
msgstr ""
|
msgstr "Wifi en mode point d'accès."
|
||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Wifi is in station mode."
|
msgid "Wifi is in station mode."
|
||||||
msgstr ""
|
msgstr "Wifi en mode station."
|
||||||
|
|
||||||
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
#: ports/raspberrypi/common-hal/wifi/Radio.c
|
||||||
msgid "Wifi is not enabled"
|
msgid "Wifi is not enabled"
|
||||||
msgstr ""
|
msgstr "Le wifi n'est pas activé"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid "Woken up by alarm.\n"
|
msgid "Woken up by alarm.\n"
|
||||||
@ -2461,48 +2473,52 @@ msgstr "Écritures non supporté vers les Characteristic"
|
|||||||
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
|
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
|
||||||
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
|
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
|
||||||
msgid "You pressed both buttons at start up."
|
msgid "You pressed both buttons at start up."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé les deux boutons au démarrage."
|
||||||
|
|
||||||
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
|
||||||
msgid "You pressed button A at start up."
|
msgid "You pressed button A at start up."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton A au démarrage."
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "You pressed the BOOT button at start up"
|
msgid "You pressed the BOOT button at start up"
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton BOOT au démarrage"
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
|
msgstr "Vous avez appuyé le bouton GPIO0 au démarrage."
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton SW38 au démarrage."
|
||||||
|
|
||||||
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
|
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
|
||||||
msgid "You pressed the VOLUME button at start up."
|
msgid "You pressed the VOLUME button at start up."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton VOLUME au démarrage."
|
||||||
|
|
||||||
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
|
||||||
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
|
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
|
||||||
msgid "You pressed the central button at start up."
|
msgid "You pressed the central button at start up."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton central au démarrage."
|
||||||
|
|
||||||
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
|
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
|
||||||
msgid "You pressed the left button at start up."
|
msgid "You pressed the left button at start up."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton gauche au démarrage."
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid "You pressed the reset button during boot."
|
msgid "You pressed the reset button during boot."
|
||||||
msgstr ""
|
msgstr "Vous avez appuyé le bouton reset au démarrage."
|
||||||
|
|
||||||
#: supervisor/shared/micropython.c
|
#: supervisor/shared/micropython.c
|
||||||
msgid "[truncated due to length]"
|
msgid "[truncated due to length]"
|
||||||
msgstr ""
|
msgstr "[taille limite atteinte]"
|
||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "__init__() should return None"
|
msgid "__init__() should return None"
|
||||||
@ -2575,7 +2591,7 @@ msgstr "la tableau à trop de dimensions"
|
|||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "array is too big"
|
msgid "array is too big"
|
||||||
msgstr ""
|
msgstr "matrice trop grande"
|
||||||
|
|
||||||
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
|
||||||
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
|
||||||
@ -2802,7 +2818,7 @@ msgstr "attribut non modifiable"
|
|||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "can't set attribute '%q'"
|
msgid "can't set attribute '%q'"
|
||||||
msgstr ""
|
msgstr "attribut '%q' non modifiable"
|
||||||
|
|
||||||
#: py/emitnative.c
|
#: py/emitnative.c
|
||||||
msgid "can't store '%q'"
|
msgid "can't store '%q'"
|
||||||
@ -3068,6 +3084,8 @@ msgid ""
|
|||||||
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
"espcamera.Camera requires reserved PSRAM to be configured. See the "
|
||||||
"documentation for instructions."
|
"documentation for instructions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"espcamera.Camera a besoin de PSRAM réservée. Voir la documentation pour les "
|
||||||
|
"instructions."
|
||||||
|
|
||||||
#: py/runtime.c
|
#: py/runtime.c
|
||||||
msgid "exceptions must derive from BaseException"
|
msgid "exceptions must derive from BaseException"
|
||||||
@ -3285,7 +3303,7 @@ msgstr "l'index est hors limites"
|
|||||||
|
|
||||||
#: shared-bindings/_pixelmap/PixelMap.c
|
#: shared-bindings/_pixelmap/PixelMap.c
|
||||||
msgid "index must be tuple or int"
|
msgid "index must be tuple or int"
|
||||||
msgstr ""
|
msgstr "l'index doit être un tuple ou entier"
|
||||||
|
|
||||||
#: extmod/ulab/code/numpy/numerical.c extmod/ulab/code/ulab_tools.c
|
#: extmod/ulab/code/numpy/numerical.c extmod/ulab/code/ulab_tools.c
|
||||||
#: ports/espressif/common-hal/pulseio/PulseIn.c
|
#: ports/espressif/common-hal/pulseio/PulseIn.c
|
||||||
@ -3671,7 +3689,7 @@ msgstr "compte de décalage négatif"
|
|||||||
|
|
||||||
#: shared-bindings/_pixelmap/PixelMap.c
|
#: shared-bindings/_pixelmap/PixelMap.c
|
||||||
msgid "nested index must be int"
|
msgid "nested index must be int"
|
||||||
msgstr ""
|
msgstr "sous index doit être entier"
|
||||||
|
|
||||||
#: shared-module/sdcardio/SDCard.c
|
#: shared-module/sdcardio/SDCard.c
|
||||||
msgid "no SD card"
|
msgid "no SD card"
|
||||||
@ -3843,7 +3861,7 @@ msgstr "seul bit_depth = 16 est pris en charge"
|
|||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only mono is supported"
|
msgid "only mono is supported"
|
||||||
msgstr ""
|
msgstr "seul mono est supporté"
|
||||||
|
|
||||||
#: extmod/ulab/code/numpy/create.c
|
#: extmod/ulab/code/numpy/create.c
|
||||||
msgid "only ndarrays can be concatenated"
|
msgid "only ndarrays can be concatenated"
|
||||||
@ -3851,7 +3869,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "only oversample=64 is supported"
|
msgid "only oversample=64 is supported"
|
||||||
msgstr ""
|
msgstr "seul oversample=64 supporté"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||||
|
12
locale/hi.po
12
locale/hi.po
@ -28,6 +28,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2391,6 +2399,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,6 +31,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2416,6 +2424,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
12
locale/ja.po
12
locale/ja.po
@ -34,6 +34,14 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"オートリロードでコード実行は中止された。まもなくリロードする。\n"
|
"オートリロードでコード実行は中止された。まもなくリロードする。\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2408,6 +2416,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
12
locale/ko.po
12
locale/ko.po
@ -29,6 +29,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2395,6 +2403,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
12
locale/nl.po
12
locale/nl.po
@ -28,6 +28,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2418,6 +2426,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
12
locale/pl.po
12
locale/pl.po
@ -30,6 +30,14 @@ msgid ""
|
|||||||
"Code stopped by auto-reload. Reloading soon.\n"
|
"Code stopped by auto-reload. Reloading soon.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2399,6 +2407,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -6,7 +6,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
|
"PO-Revision-Date: 2023-02-23 17:53+0000\n"
|
||||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
@ -32,6 +32,18 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"O código parou pela recarga automática. Recarregando em breve.\n"
|
"O código parou pela recarga automática. Recarregando em breve.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"CIRCUITPY_PYSTACK_SIZE inválido\n"
|
||||||
|
"\n"
|
||||||
|
"\n"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2466,7 +2478,11 @@ msgstr "Você pressionou o botão BOOT na inicialização"
|
|||||||
|
|
||||||
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr "Você pressionou o botão GPIO0 durante a inicialização."
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr "Você pressionou o botão Rec durante a inicialização."
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
|
12
locale/ru.po
12
locale/ru.po
@ -34,6 +34,14 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Программа остановлена автоматической перезагрузкой. Скоро перезагрузка.\n"
|
"Программа остановлена автоматической перезагрузкой. Скоро перезагрузка.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2454,6 +2462,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
20
locale/sv.po
20
locale/sv.po
@ -6,7 +6,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||||
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
|
"PO-Revision-Date: 2023-02-23 17:53+0000\n"
|
||||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
@ -32,6 +32,18 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Koden stoppades av automatisk laddning. Omladdning sker strax.\n"
|
"Koden stoppades av automatisk laddning. Omladdning sker strax.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"Ogiltig CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\n"
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2439,7 +2451,11 @@ msgstr "Du tryckte ner BOOT-knappen vid start"
|
|||||||
|
|
||||||
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
|
||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr "Du tryckte på GPIO0-knappen vid start."
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr "Du tryckte ned Rec-knappen vid start."
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
|
12
locale/tr.po
12
locale/tr.po
@ -34,6 +34,14 @@ msgstr ""
|
|||||||
"Program otomatik yeniden yükleme tarafından durduruldu. Birazdan tekrar "
|
"Program otomatik yeniden yükleme tarafından durduruldu. Birazdan tekrar "
|
||||||
"yüklenecek.\n"
|
"yüklenecek.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2413,6 +2421,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -34,6 +34,14 @@ msgstr ""
|
|||||||
"dài mǎ yīn zì dòng chóng xīn jiā zǎi ér tíng zhǐ. jí jiāng chóng xīn jiā "
|
"dài mǎ yīn zì dòng chóng xīn jiā zǎi ér tíng zhǐ. jí jiāng chóng xīn jiā "
|
||||||
"zǎi.\n"
|
"zǎi.\n"
|
||||||
|
|
||||||
|
#: main.c
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||||
|
"\n"
|
||||||
|
"\r"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@ -2439,6 +2447,10 @@ msgstr ""
|
|||||||
msgid "You pressed the GPIO0 button at start up."
|
msgid "You pressed the GPIO0 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
|
||||||
|
msgid "You pressed the Rec button at start up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
|
||||||
msgid "You pressed the SW38 button at start up."
|
msgid "You pressed the SW38 button at start up."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
78
main.c
78
main.c
@ -122,8 +122,8 @@
|
|||||||
uint8_t value_out = 0;
|
uint8_t value_out = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MICROPY_ENABLE_PYSTACK
|
#if MICROPY_ENABLE_PYSTACK && CIRCUITPY_OS_GETENV
|
||||||
static size_t PLACE_IN_DTCM_BSS(_pystack[CIRCUITPY_PYSTACK_SIZE / sizeof(size_t)]);
|
#include "shared-module/os/__init__.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void reset_devices(void) {
|
static void reset_devices(void) {
|
||||||
@ -132,7 +132,32 @@ static void reset_devices(void) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC void start_mp(supervisor_allocation *heap) {
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
|
STATIC supervisor_allocation *allocate_pystack(safe_mode_t safe_mode) {
|
||||||
|
mp_int_t pystack_size = CIRCUITPY_PYSTACK_SIZE;
|
||||||
|
#if CIRCUITPY_OS_GETENV && CIRCUITPY_SETTABLE_PYSTACK
|
||||||
|
// Fetch value if exists from settings.toml
|
||||||
|
// Leaves size to build default on any failure
|
||||||
|
if (safe_mode == SAFE_MODE_NONE || safe_mode == SAFE_MODE_USER) {
|
||||||
|
(void)common_hal_os_getenv_int("CIRCUITPY_PYSTACK_SIZE", &pystack_size);
|
||||||
|
// Check if value is valid
|
||||||
|
pystack_size = pystack_size - pystack_size % sizeof(size_t); // Round down to multiple of 4.
|
||||||
|
if ((pystack_size < 384) || (pystack_size > 900000)) {
|
||||||
|
serial_write_compressed(translate("\nInvalid CIRCUITPY_PYSTACK_SIZE\n\n\r"));
|
||||||
|
pystack_size = CIRCUITPY_PYSTACK_SIZE; // Reset
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
supervisor_allocation *pystack = allocate_memory(pystack_size, false, false);
|
||||||
|
if (pystack == NULL) {
|
||||||
|
serial_write_compressed(translate("\nInvalid CIRCUITPY_PYSTACK_SIZE\n\n\r"));
|
||||||
|
pystack = allocate_memory(CIRCUITPY_PYSTACK_SIZE, false, false);
|
||||||
|
}
|
||||||
|
return pystack;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
STATIC void start_mp(supervisor_allocation *heap, supervisor_allocation *pystack) {
|
||||||
supervisor_workflow_reset();
|
supervisor_workflow_reset();
|
||||||
|
|
||||||
// Stack limit should be less than real stack size, so we have a chance
|
// Stack limit should be less than real stack size, so we have a chance
|
||||||
@ -160,7 +185,7 @@ STATIC void start_mp(supervisor_allocation *heap) {
|
|||||||
readline_init0();
|
readline_init0();
|
||||||
|
|
||||||
#if MICROPY_ENABLE_PYSTACK
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
mp_pystack_init(_pystack, _pystack + (sizeof(_pystack) / sizeof(size_t)));
|
mp_pystack_init(pystack->ptr, pystack->ptr + get_allocation_length(pystack) / sizeof(size_t));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MICROPY_ENABLE_GC
|
#if MICROPY_ENABLE_GC
|
||||||
@ -264,7 +289,7 @@ STATIC void count_strn(void *data, const char *str, size_t len) {
|
|||||||
*(size_t *)data += len;
|
*(size_t *)data += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC void cleanup_after_vm(supervisor_allocation *heap, mp_obj_t exception) {
|
STATIC void cleanup_after_vm(supervisor_allocation *heap, supervisor_allocation *pystack, mp_obj_t exception) {
|
||||||
// Get the traceback of any exception from this run off the heap.
|
// Get the traceback of any exception from this run off the heap.
|
||||||
// MP_OBJ_SENTINEL means "this run does not contribute to traceback storage, don't touch it"
|
// MP_OBJ_SENTINEL means "this run does not contribute to traceback storage, don't touch it"
|
||||||
// MP_OBJ_NULL (=0) means "this run completed successfully, clear any stored traceback"
|
// MP_OBJ_NULL (=0) means "this run completed successfully, clear any stored traceback"
|
||||||
@ -345,6 +370,9 @@ STATIC void cleanup_after_vm(supervisor_allocation *heap, mp_obj_t exception) {
|
|||||||
filesystem_flush();
|
filesystem_flush();
|
||||||
stop_mp();
|
stop_mp();
|
||||||
free_memory(heap);
|
free_memory(heap);
|
||||||
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
|
free_memory(pystack);
|
||||||
|
#endif
|
||||||
supervisor_move_memory();
|
supervisor_move_memory();
|
||||||
|
|
||||||
// Let the workflows know we've reset in case they want to restart.
|
// Let the workflows know we've reset in case they want to restart.
|
||||||
@ -399,10 +427,12 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
supervisor_allocation *pystack = NULL;
|
||||||
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
|
pystack = allocate_pystack(safe_mode);
|
||||||
|
#endif
|
||||||
supervisor_allocation *heap = allocate_remaining_memory();
|
supervisor_allocation *heap = allocate_remaining_memory();
|
||||||
|
start_mp(heap, pystack);
|
||||||
// Prepare the VM state.
|
|
||||||
start_mp(heap);
|
|
||||||
|
|
||||||
#if CIRCUITPY_USB
|
#if CIRCUITPY_USB
|
||||||
usb_setup_with_vm();
|
usb_setup_with_vm();
|
||||||
@ -450,7 +480,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
|
|||||||
|
|
||||||
|
|
||||||
// Finished executing python code. Cleanup includes filesystem flush and a board reset.
|
// Finished executing python code. Cleanup includes filesystem flush and a board reset.
|
||||||
cleanup_after_vm(heap, _exec_result.exception);
|
cleanup_after_vm(heap, pystack, _exec_result.exception);
|
||||||
_exec_result.exception = NULL;
|
_exec_result.exception = NULL;
|
||||||
|
|
||||||
// If a new next code file was set, that is a reason to keep it (obviously). Stuff this into
|
// If a new next code file was set, that is a reason to keep it (obviously). Stuff this into
|
||||||
@ -739,8 +769,12 @@ STATIC void __attribute__ ((noinline)) run_safemode_py(safe_mode_t safe_mode) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
supervisor_allocation *pystack = NULL;
|
||||||
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
|
pystack = allocate_pystack(safe_mode);
|
||||||
|
#endif
|
||||||
supervisor_allocation *heap = allocate_remaining_memory();
|
supervisor_allocation *heap = allocate_remaining_memory();
|
||||||
start_mp(heap);
|
start_mp(heap, pystack);
|
||||||
|
|
||||||
static const char *const safemode_py_filenames[] = {"safemode.py", "safemode.txt"};
|
static const char *const safemode_py_filenames[] = {"safemode.py", "safemode.txt"};
|
||||||
maybe_run_list(safemode_py_filenames, MP_ARRAY_SIZE(safemode_py_filenames));
|
maybe_run_list(safemode_py_filenames, MP_ARRAY_SIZE(safemode_py_filenames));
|
||||||
@ -751,7 +785,7 @@ STATIC void __attribute__ ((noinline)) run_safemode_py(safe_mode_t safe_mode) {
|
|||||||
set_safe_mode(SAFE_MODE_SAFEMODE_PY_ERROR);
|
set_safe_mode(SAFE_MODE_SAFEMODE_PY_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup_after_vm(heap, _exec_result.exception);
|
cleanup_after_vm(heap, pystack, _exec_result.exception);
|
||||||
_exec_result.exception = NULL;
|
_exec_result.exception = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -772,9 +806,12 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
|
|||||||
|
|
||||||
// Do USB setup even if boot.py is not run.
|
// Do USB setup even if boot.py is not run.
|
||||||
|
|
||||||
|
supervisor_allocation *pystack = NULL;
|
||||||
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
|
pystack = allocate_pystack(safe_mode);
|
||||||
|
#endif
|
||||||
supervisor_allocation *heap = allocate_remaining_memory();
|
supervisor_allocation *heap = allocate_remaining_memory();
|
||||||
|
start_mp(heap, pystack);
|
||||||
start_mp(heap);
|
|
||||||
|
|
||||||
#if CIRCUITPY_USB
|
#if CIRCUITPY_USB
|
||||||
// Set up default USB values after boot.py VM starts but before running boot.py.
|
// Set up default USB values after boot.py VM starts but before running boot.py.
|
||||||
@ -860,7 +897,7 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
|
|||||||
|
|
||||||
port_post_boot_py(true);
|
port_post_boot_py(true);
|
||||||
|
|
||||||
cleanup_after_vm(heap, _exec_result.exception);
|
cleanup_after_vm(heap, pystack, _exec_result.exception);
|
||||||
_exec_result.exception = NULL;
|
_exec_result.exception = NULL;
|
||||||
|
|
||||||
port_post_boot_py(false);
|
port_post_boot_py(false);
|
||||||
@ -871,12 +908,16 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC int run_repl(void) {
|
STATIC int run_repl(safe_mode_t safe_mode) {
|
||||||
int exit_code = PYEXEC_FORCED_EXIT;
|
int exit_code = PYEXEC_FORCED_EXIT;
|
||||||
stack_resize();
|
stack_resize();
|
||||||
filesystem_flush();
|
filesystem_flush();
|
||||||
|
supervisor_allocation *pystack = NULL;
|
||||||
|
#if MICROPY_ENABLE_PYSTACK
|
||||||
|
pystack = allocate_pystack(safe_mode);
|
||||||
|
#endif
|
||||||
supervisor_allocation *heap = allocate_remaining_memory();
|
supervisor_allocation *heap = allocate_remaining_memory();
|
||||||
start_mp(heap);
|
start_mp(heap, pystack);
|
||||||
|
|
||||||
#if CIRCUITPY_USB
|
#if CIRCUITPY_USB
|
||||||
usb_setup_with_vm();
|
usb_setup_with_vm();
|
||||||
@ -919,7 +960,7 @@ STATIC int run_repl(void) {
|
|||||||
exit_code = PYEXEC_DEEP_SLEEP;
|
exit_code = PYEXEC_DEEP_SLEEP;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
cleanup_after_vm(heap, MP_OBJ_SENTINEL);
|
cleanup_after_vm(heap, pystack, MP_OBJ_SENTINEL);
|
||||||
|
|
||||||
// Also reset bleio. The above call omits it in case workflows should continue. In this case,
|
// Also reset bleio. The above call omits it in case workflows should continue. In this case,
|
||||||
// we're switching straight to another VM so we want to reset.
|
// we're switching straight to another VM so we want to reset.
|
||||||
@ -938,6 +979,7 @@ STATIC int run_repl(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int __attribute__((used)) main(void) {
|
int __attribute__((used)) main(void) {
|
||||||
|
|
||||||
// initialise the cpu and peripherals
|
// initialise the cpu and peripherals
|
||||||
set_safe_mode(port_init());
|
set_safe_mode(port_init());
|
||||||
|
|
||||||
@ -1038,7 +1080,7 @@ int __attribute__((used)) main(void) {
|
|||||||
bool simulate_reset = true;
|
bool simulate_reset = true;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (!skip_repl) {
|
if (!skip_repl) {
|
||||||
exit_code = run_repl();
|
exit_code = run_repl(get_safe_mode());
|
||||||
supervisor_set_run_reason(RUN_REASON_REPL_RELOAD);
|
supervisor_set_run_reason(RUN_REASON_REPL_RELOAD);
|
||||||
}
|
}
|
||||||
if (exit_code == PYEXEC_FORCED_EXIT) {
|
if (exit_code == PYEXEC_FORCED_EXIT) {
|
||||||
|
@ -20,11 +20,13 @@ CIRCUITPY_BLEIO_HCI = 0
|
|||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FLOPPYIO = 0
|
CIRCUITPY_FLOPPYIO = 0
|
||||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||||
|
CIRCUITPY_PIXELMAP = 0
|
||||||
CIRCUITPY_GETPASS = 0
|
CIRCUITPY_GETPASS = 0
|
||||||
CIRCUITPY_KEYPAD = 0
|
CIRCUITPY_KEYPAD = 0
|
||||||
CIRCUITPY_MSGPACK = 0
|
CIRCUITPY_MSGPACK = 0
|
||||||
CIRCUITPY_PS2IO = 0
|
CIRCUITPY_PS2IO = 0
|
||||||
CIRCUITPY_RGBMATRIX = 0
|
CIRCUITPY_RGBMATRIX = 0
|
||||||
|
CIRCUITPY_RAINBOWIO = 0
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CIRCUITPY_USB_HID = 0
|
CIRCUITPY_USB_HID = 0
|
||||||
|
@ -98,7 +98,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
|
|||||||
self->sda_pin = sda;
|
self->sda_pin = sda;
|
||||||
self->scl_pin = scl;
|
self->scl_pin = scl;
|
||||||
|
|
||||||
uint32_t source_clock = vcmailbox_get_clock_rate_measured(VCMAILBOX_CLOCK_CORE);
|
uint32_t source_clock = vcmailbox_get_clock_rate(VCMAILBOX_CLOCK_CORE);
|
||||||
uint16_t clock_divider = source_clock / frequency;
|
uint16_t clock_divider = source_clock / frequency;
|
||||||
self->peripheral->DIV_b.CDIV = clock_divider;
|
self->peripheral->DIV_b.CDIV = clock_divider;
|
||||||
|
|
||||||
|
@ -87,6 +87,8 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
|
|||||||
mp_raise_NotImplementedError(translate("Half duplex SPI is not implemented"));
|
mp_raise_NotImplementedError(translate("Half duplex SPI is not implemented"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BCM_VERSION != 2711 have 3 SPI but as listed in peripherals/gen/pins.c two are on
|
||||||
|
// index 0, once one index 0 SPI is found the other will throw an invalid_pins error.
|
||||||
for (size_t i = 0; i < NUM_SPI; i++) {
|
for (size_t i = 0; i < NUM_SPI; i++) {
|
||||||
if (spi_in_use[i]) {
|
if (spi_in_use[i]) {
|
||||||
continue;
|
continue;
|
||||||
@ -157,6 +159,7 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
|
|||||||
common_hal_reset_pin(self->MOSI);
|
common_hal_reset_pin(self->MOSI);
|
||||||
common_hal_reset_pin(self->MISO);
|
common_hal_reset_pin(self->MISO);
|
||||||
self->clock = NULL;
|
self->clock = NULL;
|
||||||
|
spi_in_use[self->index] = false;
|
||||||
|
|
||||||
if (self->index == 1 ||
|
if (self->index == 1 ||
|
||||||
self->index == 2) {
|
self->index == 2) {
|
||||||
@ -180,7 +183,7 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
|
|||||||
|
|
||||||
if (self->index == 1 || self->index == 2) {
|
if (self->index == 1 || self->index == 2) {
|
||||||
SPI1_Type *p = aux_spi[self->index];
|
SPI1_Type *p = aux_spi[self->index];
|
||||||
uint32_t source_clock = vcmailbox_get_clock_rate_measured(VCMAILBOX_CLOCK_CORE);
|
uint32_t source_clock = vcmailbox_get_clock_rate(VCMAILBOX_CLOCK_CORE);
|
||||||
uint16_t clock_divider = source_clock / baudrate;
|
uint16_t clock_divider = source_clock / baudrate;
|
||||||
if (source_clock % baudrate > 0) {
|
if (source_clock % baudrate > 0) {
|
||||||
clock_divider += 2;
|
clock_divider += 2;
|
||||||
@ -198,7 +201,7 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
|
|||||||
SPI0_Type *p = spi[self->index];
|
SPI0_Type *p = spi[self->index];
|
||||||
p->CS = polarity << SPI0_CS_CPOL_Pos |
|
p->CS = polarity << SPI0_CS_CPOL_Pos |
|
||||||
phase << SPI0_CS_CPHA_Pos;
|
phase << SPI0_CS_CPHA_Pos;
|
||||||
uint32_t source_clock = vcmailbox_get_clock_rate_measured(VCMAILBOX_CLOCK_CORE);
|
uint32_t source_clock = vcmailbox_get_clock_rate(VCMAILBOX_CLOCK_CORE);
|
||||||
uint16_t clock_divider = source_clock / baudrate;
|
uint16_t clock_divider = source_clock / baudrate;
|
||||||
if (source_clock % baudrate > 0) {
|
if (source_clock % baudrate > 0) {
|
||||||
clock_divider += 2;
|
clock_divider += 2;
|
||||||
|
@ -124,7 +124,7 @@ void pl011_IRQHandler(uint8_t index) {
|
|||||||
// Clear the interrupt in case we weren't able to clear it by emptying the
|
// Clear the interrupt in case we weren't able to clear it by emptying the
|
||||||
// FIFO. (This won't clear the FIFO.)
|
// FIFO. (This won't clear the FIFO.)
|
||||||
ARM_UART_PL011_Type *pl011 = uart[index];
|
ARM_UART_PL011_Type *pl011 = uart[index];
|
||||||
pl011->ICR = UART0_ICR_RXIC_Msk;
|
pl011->ICR = ARM_UART_PL011_ICR_RXIC_Msk;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UART0_IRQHandler(void) {
|
void UART0_IRQHandler(void) {
|
||||||
@ -258,31 +258,31 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
|||||||
|
|
||||||
common_hal_busio_uart_set_baudrate(self, baudrate);
|
common_hal_busio_uart_set_baudrate(self, baudrate);
|
||||||
|
|
||||||
uint32_t line_control = UART0_LCR_H_FEN_Msk;
|
uint32_t line_control = ARM_UART_PL011_LCR_H_FEN_Msk;
|
||||||
line_control |= (bits - 5) << UART0_LCR_H_WLEN_Pos;
|
line_control |= (bits - 5) << ARM_UART_PL011_LCR_H_WLEN_Pos;
|
||||||
if (stop == 2) {
|
if (stop == 2) {
|
||||||
line_control |= UART0_LCR_H_STP2_Msk;
|
line_control |= ARM_UART_PL011_LCR_H_STP2_Msk;
|
||||||
}
|
}
|
||||||
if (parity != BUSIO_UART_PARITY_NONE) {
|
if (parity != BUSIO_UART_PARITY_NONE) {
|
||||||
line_control |= UART0_LCR_H_PEN_Msk;
|
line_control |= ARM_UART_PL011_LCR_H_PEN_Msk;
|
||||||
}
|
}
|
||||||
if (parity == BUSIO_UART_PARITY_EVEN) {
|
if (parity == BUSIO_UART_PARITY_EVEN) {
|
||||||
line_control |= UART0_LCR_H_EPS_Msk;
|
line_control |= ARM_UART_PL011_LCR_H_EPS_Msk;
|
||||||
}
|
}
|
||||||
pl011->LCR_H = line_control;
|
pl011->LCR_H = line_control;
|
||||||
|
|
||||||
uint32_t control = UART0_CR_UARTEN_Msk;
|
uint32_t control = ARM_UART_PL011_CR_UARTEN_Msk;
|
||||||
if (tx != NULL) {
|
if (tx != NULL) {
|
||||||
control |= UART0_CR_TXE_Msk;
|
control |= ARM_UART_PL011_CR_TXE_Msk;
|
||||||
}
|
}
|
||||||
if (rx != NULL) {
|
if (rx != NULL) {
|
||||||
control |= UART0_CR_RXE_Msk;
|
control |= ARM_UART_PL011_CR_RXE_Msk;
|
||||||
}
|
}
|
||||||
if (cts != NULL) {
|
if (cts != NULL) {
|
||||||
control |= UART0_CR_CTSEN_Msk;
|
control |= ARM_UART_PL011_CR_CTSEN_Msk;
|
||||||
}
|
}
|
||||||
if (rts != NULL) {
|
if (rts != NULL) {
|
||||||
control |= UART0_CR_RTSEN_Msk;
|
control |= ARM_UART_PL011_CR_RTSEN_Msk;
|
||||||
}
|
}
|
||||||
pl011->CR = control;
|
pl011->CR = control;
|
||||||
}
|
}
|
||||||
@ -460,7 +460,7 @@ uint32_t common_hal_busio_uart_get_baudrate(busio_uart_obj_t *self) {
|
|||||||
|
|
||||||
void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrate) {
|
void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrate) {
|
||||||
if (self->uart_id == 1) {
|
if (self->uart_id == 1) {
|
||||||
uint32_t source_clock = vcmailbox_get_clock_rate_measured(VCMAILBOX_CLOCK_CORE);
|
uint32_t source_clock = vcmailbox_get_clock_rate(VCMAILBOX_CLOCK_CORE);
|
||||||
UART1->BAUD = ((source_clock / (baudrate * 8)) - 1);
|
UART1->BAUD = ((source_clock / (baudrate * 8)) - 1);
|
||||||
} else {
|
} else {
|
||||||
ARM_UART_PL011_Type *pl011 = uart[self->uart_id];
|
ARM_UART_PL011_Type *pl011 = uart[self->uart_id];
|
||||||
|
@ -122,27 +122,27 @@ STATIC sdmmc_err_t _do_transaction(int slot, sdmmc_command_t *cmdinfo) {
|
|||||||
if (EMMC->STATUS_b.DAT_INHIBIT) {
|
if (EMMC->STATUS_b.DAT_INHIBIT) {
|
||||||
return SDMMC_ERR_BUSY;
|
return SDMMC_ERR_BUSY;
|
||||||
}
|
}
|
||||||
cmd_flags = EMMC_CMDTM_TM_BLKCNT_EN_Msk | EMMC_CMDTM_CMD_ISDATA_Msk;
|
cmd_flags = Arasan_EMMC_Distributor_CMDTM_TM_BLKCNT_EN_Msk | Arasan_EMMC_Distributor_CMDTM_CMD_ISDATA_Msk;
|
||||||
if (cmdinfo->datalen > cmdinfo->blklen) {
|
if (cmdinfo->datalen > cmdinfo->blklen) {
|
||||||
cmd_flags |= EMMC_CMDTM_TM_MULTI_BLOCK_Msk;
|
cmd_flags |= Arasan_EMMC_Distributor_CMDTM_TM_MULTI_BLOCK_Msk;
|
||||||
if ((cmdinfo->flags & SCF_AUTO_STOP) != 0) {
|
if ((cmdinfo->flags & SCF_AUTO_STOP) != 0) {
|
||||||
cmd_flags |= 1 << EMMC_CMDTM_TM_AUTO_CMD_EN_Pos;
|
cmd_flags |= 1 << Arasan_EMMC_Distributor_CMDTM_TM_AUTO_CMD_EN_Pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (read) {
|
if (read) {
|
||||||
cmd_flags |= EMMC_CMDTM_TM_DAT_DIR_Msk;
|
cmd_flags |= Arasan_EMMC_Distributor_CMDTM_TM_DAT_DIR_Msk;
|
||||||
}
|
}
|
||||||
EMMC->BLKSIZECNT = (cmdinfo->datalen / cmdinfo->blklen) << EMMC_BLKSIZECNT_BLKCNT_Pos |
|
EMMC->BLKSIZECNT = (cmdinfo->datalen / cmdinfo->blklen) << Arasan_EMMC_Distributor_BLKSIZECNT_BLKCNT_Pos |
|
||||||
cmdinfo->blklen << EMMC_BLKSIZECNT_BLKSIZE_Pos;
|
cmdinfo->blklen << Arasan_EMMC_Distributor_BLKSIZECNT_BLKSIZE_Pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t response_type = EMMC_CMDTM_CMD_RSPNS_TYPE_RESPONSE_48BITS;
|
uint32_t response_type = EMMC_CMDTM_CMD_RSPNS_TYPE_RESPONSE_48BITS;
|
||||||
uint32_t crc = 0;
|
uint32_t crc = 0;
|
||||||
if ((cmdinfo->flags & SCF_RSP_CRC) != 0) {
|
if ((cmdinfo->flags & SCF_RSP_CRC) != 0) {
|
||||||
crc |= EMMC_CMDTM_CMD_CRCCHK_EN_Msk;
|
crc |= Arasan_EMMC_Distributor_CMDTM_CMD_CRCCHK_EN_Msk;
|
||||||
}
|
}
|
||||||
if ((cmdinfo->flags & SCF_RSP_IDX) != 0) {
|
if ((cmdinfo->flags & SCF_RSP_IDX) != 0) {
|
||||||
crc |= EMMC_CMDTM_CMD_IXCHK_EN_Msk;
|
crc |= Arasan_EMMC_Distributor_CMDTM_CMD_IXCHK_EN_Msk;
|
||||||
}
|
}
|
||||||
if ((cmdinfo->flags & SCF_RSP_136) != 0) {
|
if ((cmdinfo->flags & SCF_RSP_136) != 0) {
|
||||||
response_type = EMMC_CMDTM_CMD_RSPNS_TYPE_RESPONSE_136BITS;
|
response_type = EMMC_CMDTM_CMD_RSPNS_TYPE_RESPONSE_136BITS;
|
||||||
@ -152,8 +152,8 @@ STATIC sdmmc_err_t _do_transaction(int slot, sdmmc_command_t *cmdinfo) {
|
|||||||
response_type = EMMC_CMDTM_CMD_RSPNS_TYPE_RESPONSE_NONE;
|
response_type = EMMC_CMDTM_CMD_RSPNS_TYPE_RESPONSE_NONE;
|
||||||
}
|
}
|
||||||
uint32_t full_cmd = cmd_flags | crc |
|
uint32_t full_cmd = cmd_flags | crc |
|
||||||
cmdinfo->opcode << EMMC_CMDTM_CMD_INDEX_Pos |
|
cmdinfo->opcode << Arasan_EMMC_Distributor_CMDTM_CMD_INDEX_Pos |
|
||||||
response_type << EMMC_CMDTM_CMD_RSPNS_TYPE_Pos;
|
response_type << Arasan_EMMC_Distributor_CMDTM_CMD_RSPNS_TYPE_Pos;
|
||||||
EMMC->CMDTM = full_cmd;
|
EMMC->CMDTM = full_cmd;
|
||||||
|
|
||||||
// Wait for an interrupt to indicate completion of the command.
|
// Wait for an interrupt to indicate completion of the command.
|
||||||
@ -170,7 +170,7 @@ STATIC sdmmc_err_t _do_transaction(int slot, sdmmc_command_t *cmdinfo) {
|
|||||||
}
|
}
|
||||||
return SDMMC_ERR_TIMEOUT;
|
return SDMMC_ERR_TIMEOUT;
|
||||||
} else {
|
} else {
|
||||||
EMMC->INTERRUPT = EMMC_INTERRUPT_CMD_DONE_Msk;
|
EMMC->INTERRUPT = Arasan_EMMC_Distributor_INTERRUPT_CMD_DONE_Msk;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transfer the data.
|
// Transfer the data.
|
||||||
@ -197,7 +197,7 @@ STATIC sdmmc_err_t _do_transaction(int slot, sdmmc_command_t *cmdinfo) {
|
|||||||
EMMC->DATA = ((uint32_t *)cmdinfo->data)[i];
|
EMMC->DATA = ((uint32_t *)cmdinfo->data)[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
uint32_t data_done_mask = EMMC_INTERRUPT_ERR_Msk | EMMC_INTERRUPT_DATA_DONE_Msk;
|
uint32_t data_done_mask = Arasan_EMMC_Distributor_INTERRUPT_ERR_Msk | Arasan_EMMC_Distributor_INTERRUPT_DATA_DONE_Msk;
|
||||||
start_ticks = port_get_raw_ticks(NULL);
|
start_ticks = port_get_raw_ticks(NULL);
|
||||||
while ((EMMC->INTERRUPT & data_done_mask) == 0 && (port_get_raw_ticks(NULL) - start_ticks) < (size_t)cmdinfo->timeout_ms) {
|
while ((EMMC->INTERRUPT & data_done_mask) == 0 && (port_get_raw_ticks(NULL) - start_ticks) < (size_t)cmdinfo->timeout_ms) {
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ void common_hal_sdioio_sdcard_construct(sdioio_sdcard_obj_t *self,
|
|||||||
|
|
||||||
}
|
}
|
||||||
// Set max timeout
|
// Set max timeout
|
||||||
EMMC->CONTROL1 |= EMMC_CONTROL1_CLK_INTLEN_Msk | (0xe << EMMC_CONTROL1_DATA_TOUNIT_Pos);
|
EMMC->CONTROL1 |= Arasan_EMMC_Distributor_CONTROL1_CLK_INTLEN_Msk | (0xe << Arasan_EMMC_Distributor_CONTROL1_DATA_TOUNIT_Pos);
|
||||||
|
|
||||||
EMMC->IRPT_MASK = 0xffffffff;
|
EMMC->IRPT_MASK = 0xffffffff;
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 08370086080759ed54ac1136d62d2ad24c6fa267
|
Subproject commit d3a6b50a21e7dd49ba4bfa0374da3407594caa50
|
34
ports/espressif/boards/espressif_esp32_lyrat/board.c
Normal file
34
ports/espressif/boards/espressif_esp32_lyrat/board.c
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 Radio Sound, Inc.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "supervisor/board.h"
|
||||||
|
#include "mpconfigboard.h"
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
#include "components/driver/include/driver/gpio.h"
|
||||||
|
#include "components/hal/include/hal/gpio_hal.h"
|
||||||
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
50
ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
Normal file
50
ports/espressif/boards/espressif_esp32_lyrat/mpconfigboard.h
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 Radio Sound, Inc.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Micropython setup
|
||||||
|
|
||||||
|
#define MICROPY_HW_BOARD_NAME "Espressif ESP32-LyraT"
|
||||||
|
#define MICROPY_HW_MCU_NAME "ESP32"
|
||||||
|
|
||||||
|
#define MICROPY_HW_LED_STATUS (&pin_GPIO22)
|
||||||
|
|
||||||
|
#define CIRCUITPY_BOARD_I2C (1)
|
||||||
|
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO23, .sda = &pin_GPIO18}}
|
||||||
|
|
||||||
|
#define CIRCUITPY_BOARD_SPI (1)
|
||||||
|
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO14, .mosi = &pin_GPIO13, .miso = &pin_GPIO12}}
|
||||||
|
|
||||||
|
#define CIRCUITPY_BOARD_UART (0)
|
||||||
|
|
||||||
|
// For entering safe mode, use Rec button
|
||||||
|
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO36)
|
||||||
|
|
||||||
|
// Explanation of how a user got into safe mode
|
||||||
|
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the Rec button at start up.")
|
||||||
|
|
||||||
|
// UART pins attached to the USB-serial converter chip
|
||||||
|
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
|
||||||
|
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)
|
@ -0,0 +1,10 @@
|
|||||||
|
CIRCUITPY_CREATOR_ID = 0x000C303A
|
||||||
|
CIRCUITPY_CREATION_ID = 0x0032A000
|
||||||
|
|
||||||
|
IDF_TARGET = esp32
|
||||||
|
|
||||||
|
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||||
|
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||||
|
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||||
|
|
||||||
|
CIRCUITPY_ESPCAMERA = 0
|
56
ports/espressif/boards/espressif_esp32_lyrat/pins.c
Normal file
56
ports/espressif/boards/espressif_esp32_lyrat/pins.c
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||||
|
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||||
|
|
||||||
|
// External pins are in silkscreen order, from top to bottom, left side, then right side
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_CS0), MP_ROM_PTR(&pin_GPIO15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO15) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO13) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO1) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO1) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO3) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO18) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D35), MP_ROM_PTR(&pin_GPIO35) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_GPIO22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO36) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_REC), MP_ROM_PTR(&pin_GPIO36) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SW36), MP_ROM_PTR(&pin_GPIO36) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO39) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MODE), MP_ROM_PTR(&pin_GPIO39) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SW39), MP_ROM_PTR(&pin_GPIO39) },
|
||||||
|
|
||||||
|
{ 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_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
37
ports/espressif/boards/espressif_esp32_lyrat/sdkconfig
Normal file
37
ports/espressif/boards/espressif_esp32_lyrat/sdkconfig
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
||||||
|
# SPI RAM config
|
||||||
|
#
|
||||||
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||||
|
CONFIG_SPIRAM_SIZE=4194304
|
||||||
|
CONFIG_SPIRAM_SPEED_40M=y
|
||||||
|
CONFIG_SPIRAM=y
|
||||||
|
CONFIG_SPIRAM_BOOT_INIT=y
|
||||||
|
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
|
||||||
|
CONFIG_SPIRAM_USE_MEMMAP=y
|
||||||
|
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
|
||||||
|
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||||
|
CONFIG_SPIRAM_MEMTEST=y
|
||||||
|
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||||
|
# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set
|
||||||
|
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||||
|
|
||||||
|
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
|
||||||
|
### #
|
||||||
|
### # ESP System Settings
|
||||||
|
### #
|
||||||
|
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
|
||||||
|
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
||||||
|
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
|
||||||
|
### # CONFIG_ESP_CONSOLE_NONE is not set
|
||||||
|
### CONFIG_ESP_CONSOLE_UART=y
|
||||||
|
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
|
||||||
|
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
|
||||||
|
### CONFIG_ESP_CONSOLE_UART_NUM=0
|
||||||
|
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=8
|
||||||
|
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=7
|
||||||
|
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
|
||||||
|
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
|
||||||
|
### # end of ESP System Settings
|
@ -1109,7 +1109,7 @@ int socketpool_socket_recv_into(socketpool_socket_obj_t *socket,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (ret == (unsigned)-1) {
|
if (ret == (unsigned)-1) {
|
||||||
return -_errno;
|
mp_raise_OSError(_errno);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -145,6 +145,7 @@ extern void common_hal_mcu_enable_interrupts(void);
|
|||||||
#define MICROPY_REPL_AUTO_INDENT (1)
|
#define MICROPY_REPL_AUTO_INDENT (1)
|
||||||
#define MICROPY_REPL_EVENT_DRIVEN (0)
|
#define MICROPY_REPL_EVENT_DRIVEN (0)
|
||||||
#define MICROPY_ENABLE_PYSTACK (1)
|
#define MICROPY_ENABLE_PYSTACK (1)
|
||||||
|
#define CIRCUITPY_SETTABLE_PYSTACK (1)
|
||||||
#define MICROPY_STACK_CHECK (1)
|
#define MICROPY_STACK_CHECK (1)
|
||||||
#define MICROPY_STREAMS_NON_BLOCK (1)
|
#define MICROPY_STREAMS_NON_BLOCK (1)
|
||||||
#ifndef MICROPY_USE_INTERNAL_PRINTF
|
#ifndef MICROPY_USE_INTERNAL_PRINTF
|
||||||
|
@ -166,26 +166,14 @@ def get_commit_depth_and_check_suite(query_commits):
|
|||||||
return [None, None]
|
return [None, None]
|
||||||
|
|
||||||
|
|
||||||
def append_runs_to_list(runs, bad_runs_by_matrix):
|
|
||||||
regex_matrix = re.compile("^build-[^ ]+")
|
|
||||||
regex_board = re.compile("\([^ ]+\)$")
|
|
||||||
for run in runs["nodes"]:
|
|
||||||
name = run["name"]
|
|
||||||
res_matrix = regex_matrix.search(name)
|
|
||||||
if res_matrix:
|
|
||||||
matrix = res_matrix.group()
|
|
||||||
if matrix not in bad_runs_by_matrix:
|
|
||||||
bad_runs_by_matrix[matrix] = []
|
|
||||||
res_board = regex_board.search(name)
|
|
||||||
if res_board:
|
|
||||||
bad_runs_by_matrix[matrix].append(res_board.group()[1:-1])
|
|
||||||
|
|
||||||
|
|
||||||
def get_bad_check_runs(query_check_runs):
|
def get_bad_check_runs(query_check_runs):
|
||||||
more_pages = True
|
more_pages = True
|
||||||
bad_runs_by_matrix = {}
|
bad_runs_by_matrix = {}
|
||||||
|
|
||||||
run_types = ["failed", "incomplete"]
|
run_types = ["failed", "incomplete"]
|
||||||
|
|
||||||
|
regex_matrix = re.compile(r"^\S+ \/ (build|run) \(\S+\)$")
|
||||||
|
|
||||||
while more_pages:
|
while more_pages:
|
||||||
check_runs = query_check_runs.fetch()["data"]["node"]
|
check_runs = query_check_runs.fetch()["data"]["node"]
|
||||||
more_pages = False
|
more_pages = False
|
||||||
@ -194,7 +182,17 @@ def get_bad_check_runs(query_check_runs):
|
|||||||
run_type_camel = run_type.capitalize() + "Run"
|
run_type_camel = run_type.capitalize() + "Run"
|
||||||
run_type = run_type + "Runs"
|
run_type = run_type + "Runs"
|
||||||
|
|
||||||
append_runs_to_list(check_runs[run_type], bad_runs_by_matrix)
|
for check_run in check_runs[run_type]["nodes"]:
|
||||||
|
name = check_run["name"]
|
||||||
|
res_matrix = regex_matrix.search(name)
|
||||||
|
if res_matrix:
|
||||||
|
matrix = name.split(" /", 1)[0]
|
||||||
|
matrix_job = name.split(" (", 1)[1][:-1]
|
||||||
|
bad_runs_by_matrix.setdefault(matrix, []).append(matrix_job)
|
||||||
|
elif name != "scheduler":
|
||||||
|
bad_runs_by_matrix[name] = True
|
||||||
|
else:
|
||||||
|
return {}
|
||||||
|
|
||||||
if query_check_runs.paginate(
|
if query_check_runs.paginate(
|
||||||
check_runs[run_type]["pageInfo"], "after" + run_type_camel
|
check_runs[run_type]["pageInfo"], "after" + run_type_camel
|
||||||
|
@ -80,14 +80,16 @@ def main():
|
|||||||
submodules = ["extmod/ulab", "lib/", "tools/"]
|
submodules = ["extmod/ulab", "lib/", "tools/"]
|
||||||
elif TARGET == "build-doc":
|
elif TARGET == "build-doc":
|
||||||
# used in .readthedocs.yml to generate RTD
|
# used in .readthedocs.yml to generate RTD
|
||||||
submodules = ["extmod/ulab", "frozen/"]
|
submodules = ["extmod/ulab"]
|
||||||
|
submodules_tags = ["frozen/"]
|
||||||
elif TARGET == "mpy-cross" or TARGET == "mpy-cross-mac":
|
elif TARGET == "mpy-cross" or TARGET == "mpy-cross-mac":
|
||||||
submodules = ["tools/"] # for huffman
|
submodules = ["tools/"] # for huffman
|
||||||
elif TARGET == "windows":
|
elif TARGET == "build-windows":
|
||||||
# This builds one board from a number of ports so fill out a bunch of submodules
|
# This builds one board from a number of ports so fill out a bunch of submodules
|
||||||
submodules = ["extmod/ulab", "lib/", "tools/", "ports/", "data/nvm.toml"]
|
submodules = ["extmod/ulab", "lib/", "tools/", "ports/", "data/nvm.toml"]
|
||||||
elif TARGET == "website":
|
elif TARGET == "website":
|
||||||
submodules = ["tools/adabot/", "frozen/"]
|
submodules = ["tools/adabot/"]
|
||||||
|
submodules_tags = ["frozen/"]
|
||||||
elif TARGET == "pre-commit":
|
elif TARGET == "pre-commit":
|
||||||
submodules = ["extmod/ulab"]
|
submodules = ["extmod/ulab"]
|
||||||
else:
|
else:
|
||||||
|
@ -42,15 +42,15 @@ from shared_bindings_matrix import (
|
|||||||
all_ports_all_boards,
|
all_ports_all_boards,
|
||||||
)
|
)
|
||||||
|
|
||||||
PORT_TO_BUILD_JOB = {
|
PORT_TO_ARCH = {
|
||||||
"atmel-samd": "arm",
|
"atmel-samd": "atmel",
|
||||||
"broadcom": "aarch",
|
"broadcom": "aarch",
|
||||||
"cxd56": "arm",
|
"cxd56": "arm",
|
||||||
"espressif": "esp",
|
"espressif": "esp",
|
||||||
"litex": "riscv",
|
"litex": "riscv",
|
||||||
"mimxrt10xx": "arm",
|
"mimxrt10xx": "arm",
|
||||||
"nrf": "nrf",
|
"nrf": "arm",
|
||||||
"raspberrypi": "rpi",
|
"raspberrypi": "arm",
|
||||||
"stm": "arm",
|
"stm": "arm",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,6 +62,24 @@ IGNORE = [
|
|||||||
# Files in these directories never influence board builds
|
# Files in these directories never influence board builds
|
||||||
IGNORE_DIRS = ["tests", "docs", ".devcontainer"]
|
IGNORE_DIRS = ["tests", "docs", ".devcontainer"]
|
||||||
|
|
||||||
|
PATTERN_DOCS = (
|
||||||
|
r"^(?:\.github|docs|extmod\/ulab)|"
|
||||||
|
r"^(?:(?:ports\/\w+\/bindings|shared-bindings)\S+\.c|tools\/extract_pyi\.py|conf\.py|requirements-doc\.txt)$|"
|
||||||
|
r"(?:-stubs|\.(?:md|MD|rst|RST))$"
|
||||||
|
)
|
||||||
|
|
||||||
|
PATTERN_WINDOWS = [
|
||||||
|
".github/",
|
||||||
|
"extmod/",
|
||||||
|
"lib/",
|
||||||
|
"mpy-cross/",
|
||||||
|
"ports/unix/",
|
||||||
|
"ports/windows/",
|
||||||
|
"py/",
|
||||||
|
"requirements",
|
||||||
|
"tools/",
|
||||||
|
]
|
||||||
|
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 1:
|
||||||
print("Using files list on commandline")
|
print("Using files list on commandline")
|
||||||
changed_files = sys.argv[1:]
|
changed_files = sys.argv[1:]
|
||||||
@ -92,6 +110,9 @@ def set_output(name: str, value):
|
|||||||
|
|
||||||
|
|
||||||
def set_boards_to_build(build_all: bool):
|
def set_boards_to_build(build_all: bool):
|
||||||
|
if last_failed_jobs.get("mpy_cross") or last_failed_jobs.get("tests"):
|
||||||
|
build_all = True
|
||||||
|
|
||||||
# Get boards in json format
|
# Get boards in json format
|
||||||
boards_info_json = build_board_info.get_board_mapping()
|
boards_info_json = build_board_info.get_board_mapping()
|
||||||
all_board_ids = set()
|
all_board_ids = set()
|
||||||
@ -203,14 +224,13 @@ def set_boards_to_build(build_all: bool):
|
|||||||
boards_to_build = all_board_ids
|
boards_to_build = all_board_ids
|
||||||
break
|
break
|
||||||
|
|
||||||
# Split boards by build job.
|
# Split boards by architecture.
|
||||||
build_job_to_boards = {"aarch": [], "arm": [], "esp": [], "nrf": [], "riscv": [], "rpi": []}
|
arch_to_boards = {"aarch": [], "arm": [], "atmel": [], "esp": [], "riscv": []}
|
||||||
|
|
||||||
# Append previously failed boards
|
# Append previously failed boards
|
||||||
for build_job in build_job_to_boards:
|
for arch in arch_to_boards:
|
||||||
job_name = f"build-{build_job}"
|
if arch in last_failed_jobs:
|
||||||
if job_name in last_failed_jobs:
|
for board in last_failed_jobs[arch]:
|
||||||
for board in last_failed_jobs[job_name]:
|
|
||||||
if not board in boards_to_build:
|
if not board in boards_to_build:
|
||||||
boards_to_build.append(board)
|
boards_to_build.append(board)
|
||||||
|
|
||||||
@ -225,34 +245,32 @@ def set_boards_to_build(build_all: bool):
|
|||||||
# if this happens it's not in `board_to_port`.
|
# if this happens it's not in `board_to_port`.
|
||||||
if not port:
|
if not port:
|
||||||
continue
|
continue
|
||||||
build_job_to_boards[PORT_TO_BUILD_JOB[port]].append(board)
|
arch_to_boards[PORT_TO_ARCH[port]].append(board)
|
||||||
print(" ", board)
|
print(" ", board)
|
||||||
|
|
||||||
# Set the step outputs for each architecture
|
# Set the step outputs for each architecture
|
||||||
for build_job in build_job_to_boards:
|
for arch in arch_to_boards:
|
||||||
set_output(f"boards-{build_job}", json.dumps(build_job_to_boards[build_job]))
|
set_output(f"boards-{arch}", json.dumps(arch_to_boards[arch]))
|
||||||
|
|
||||||
|
|
||||||
def set_docs_to_build(build_doc: bool):
|
def set_docs_to_build(build_doc: bool):
|
||||||
if not build_doc:
|
if not build_doc:
|
||||||
if "build-doc" in last_failed_jobs:
|
if last_failed_jobs.get("build-doc"):
|
||||||
build_doc = True
|
build_doc = True
|
||||||
else:
|
else:
|
||||||
doc_pattern = re.compile(
|
doc_pattern = re.compile(PATTERN_DOCS)
|
||||||
r"^(?:\.github\/workflows\/|docs|extmod\/ulab|(?:(?:ports\/\w+\/bindings|shared-bindings)\S+\.c|conf\.py|tools\/extract_pyi\.py|requirements-doc\.txt)$)|(?:-stubs|\.(?:md|MD|rst|RST))$"
|
|
||||||
)
|
|
||||||
github_workspace = os.environ.get("GITHUB_WORKSPACE") or ""
|
github_workspace = os.environ.get("GITHUB_WORKSPACE") or ""
|
||||||
github_workspace = github_workspace and github_workspace + "/"
|
github_workspace = github_workspace and github_workspace + "/"
|
||||||
for p in changed_files:
|
for file in changed_files:
|
||||||
if doc_pattern.search(p) and (
|
if doc_pattern.search(file) and (
|
||||||
(
|
(
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
f"git diff -U0 $BASE_SHA...$HEAD_SHA {github_workspace + p} | grep -o -m 1 '^[+-]\/\/|'",
|
f"git diff -U0 $BASE_SHA...$HEAD_SHA {github_workspace + file} | grep -o -m 1 '^[+-]\/\/|'",
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
shell=True,
|
shell=True,
|
||||||
).stdout
|
).stdout
|
||||||
)
|
)
|
||||||
if p.endswith(".c")
|
if file.endswith(".c")
|
||||||
else True
|
else True
|
||||||
):
|
):
|
||||||
build_doc = True
|
build_doc = True
|
||||||
@ -263,6 +281,25 @@ def set_docs_to_build(build_doc: bool):
|
|||||||
set_output("build-doc", build_doc)
|
set_output("build-doc", build_doc)
|
||||||
|
|
||||||
|
|
||||||
|
def set_windows_to_build(build_windows):
|
||||||
|
if not build_windows:
|
||||||
|
if last_failed_jobs.get("build-windows"):
|
||||||
|
build_windows = True
|
||||||
|
else:
|
||||||
|
for file in changed_files:
|
||||||
|
for pattern in PATTERN_WINDOWS:
|
||||||
|
if file.startswith(pattern):
|
||||||
|
build_windows = True
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
break
|
||||||
|
|
||||||
|
# Set the step outputs
|
||||||
|
print("Building windows:", build_windows)
|
||||||
|
set_output("build-windows", build_windows)
|
||||||
|
|
||||||
|
|
||||||
def check_changed_files():
|
def check_changed_files():
|
||||||
if not changed_files:
|
if not changed_files:
|
||||||
print("Building all docs/boards")
|
print("Building all docs/boards")
|
||||||
@ -275,6 +312,7 @@ def check_changed_files():
|
|||||||
def main():
|
def main():
|
||||||
build_all = check_changed_files()
|
build_all = check_changed_files()
|
||||||
set_docs_to_build(build_all)
|
set_docs_to_build(build_all)
|
||||||
|
set_windows_to_build(build_all)
|
||||||
set_boards_to_build(build_all)
|
set_boards_to_build(build_all)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user