Merge branch 'main' into banglejs2

This commit is contained in:
Scott Shawcroft 2023-02-21 12:04:28 -08:00 committed by GitHub
commit de5f58a61d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
102 changed files with 5625 additions and 2153 deletions

View File

@ -6,7 +6,7 @@ body:
- type: markdown
attributes:
value: >-
Thanks! for testing out CircuitPython. Now that you have encountered a
Thanks for testing out CircuitPython! Now that you have encountered a
bug... you can file a report for it.
- type: textarea
id: firmware

View File

@ -1,6 +1,14 @@
name: Fetch external deps
inputs:
action:
required: false
default: restore
type: choice
options:
- cache
- restore
platform:
required: false
default: none
@ -94,7 +102,7 @@ runs:
if: inputs.platform != 'esp'
uses: ./.github/actions/deps/python
with:
action: ${{ fromJSON('["restore", "cache"]')[github.job == 'scheduler'] }}
action: ${{ inputs.action }}
- name: Install python dependencies
run: pip install -r requirements-dev.txt
shell: bash

View File

@ -24,7 +24,8 @@ runs:
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
run: >-
[ -z "$AWS_ACCESS_KEY_ID" ] ||
aws s3 cp ${{ inputs.source }} s3://adafruit-circuit-python/bin/${{ inputs.destination }} --recursive --no-progress --region us-east-1
aws s3 cp ${{ inputs.source }} s3://adafruit-circuit-python/bin/${{ inputs.destination }}
${{ endsWith(inputs.source, '/') && '--recursive' || '' }} --no-progress --region us-east-1
env:
AWS_PAGER: ''
AWS_ACCESS_KEY_ID: ${{ inputs.AWS_ACCESS_KEY_ID }}

View File

@ -0,0 +1,104 @@
name: Custom board build
on:
workflow_dispatch:
inputs:
board:
description: 'Board: Found in ports/*/boards/[board_id]'
required: true
type: string
version:
description: 'Version: Can be a tag or a commit (>=8.1.0)'
required: false
default: latest
type: string
language:
description: 'Language: Found in locale/[language].po'
required: false
default: en_US
type: string
flags:
description: 'Flags: Build flags (e.g. CIRCUITPY_WIFI=1)'
required: false
type: string
debug:
description: 'Make a debug build'
required: false
default: false
type: boolean
run-name: ${{ inputs.board }}-${{ inputs.language }}-${{ inputs.version }}${{ inputs.flags != '' && '-custom' || '' }}${{ inputs.debug && '-debug' || '' }}
jobs:
build:
runs-on: ubuntu-22.04
env:
PLATFORM_atmel-samd: arm
PLATFORM_broadcom: aarch
PLATFORM_cxd56: arm
PLATFORM_espressif: esp
PLATFORM_litex: riscv
PLATFORM_mimxrt10xx: arm
PLATFORM_nrf: arm
PLATFORM_raspberrypi: arm
PLATFORM_stm: arm
steps:
- name: Set up repository
run: |
git clone --filter=tree:0 https://github.com/adafruit/circuitpython.git $GITHUB_WORKSPACE
git checkout ${{ inputs.version == 'latest' && 'HEAD' || inputs.version }}
- name: Set up identifier
if: inputs.debug || inputs.flags != ''
run: |
> 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
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Set up port
if: env.PLATFORM == 'esp'
uses: ./.github/actions/deps/ports/espressif
- name: Set up submodules
id: set-up-submodules
uses: ./.github/actions/deps/submodules
with:
action: cache
target: ${{ inputs.board }}
- name: Set up external
uses: ./.github/actions/deps/external
with:
action: cache
platform: ${{ env.PLATFORM }}
- name: Set up mpy-cross
if: steps.set-up-submodules.outputs.frozen == 'True'
uses: ./.github/actions/mpy_cross
with:
download: false
- name: Versions
run: |
tools/describe
gcc --version
python3 --version
cmake --version || true
ninja --version || true
aarch64-none-elf-gcc --version || true
arm-none-eabi-gcc --version || true
xtensa-esp32-elf-gcc --version || true
riscv32-esp-elf-gcc --version || true
riscv64-unknown-elf-gcc --version || true
mkfs.fat --version || true
- name: Build board
run: make -j2 ${{ inputs.flags }} BOARD=${{ inputs.board }} DEBUG=${{ inputs.debug && '1' || '0' }} TRANSLATION=${{ inputs.language }}
working-directory: ports/${{ steps.get-port.outputs.port }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.board }}-${{ inputs.language }}-${{ inputs.version }}${{ inputs.flags != '' && '-custom' || '' }}${{ inputs.debug && '-debug' || '' }}
path: ports/${{ steps.get-port.outputs.port }}/build-${{ inputs.board }}/firmware.*

View File

@ -53,6 +53,8 @@ jobs:
version: true
- name: Set up external
uses: ./.github/actions/deps/external
with:
action: cache
# Disabled: Needs to be updated
# - name: Get last commit with checks
# id: get-last-commit-with-checks
@ -201,16 +203,11 @@ jobs:
with:
name: docs
path: _build/latex
- name: Zip stubs
if: >-
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.repository_owner == 'adafruit') ||
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
run: zip -9r circuitpython-stubs.zip circuitpython-stubs
- name: Upload to S3
uses: ./.github/actions/upload_aws
with:
source: circuitpython-stubs/dist/*.tar.gz
destination: stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip
destination: stubs/circuitpython-stubs-${{ env.CP_VERSION }}.tar.gz
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Upload stubs to PyPi

View File

@ -323,10 +323,11 @@ clean-nrf:
clean-stm:
$(MAKE) -C ports/stm BOARD=feather_stm32f405_express clean
# This update will fail because the commits we need aren't the latest on the
# branch. We can ignore that though because we fix it with the second command.
# (Only works for git servers that allow sha fetches.)
.PHONY: fetch-submodules
fetch-submodules:
# This update will fail because the commits we need aren't the latest on the
# branch. We can ignore that though because we fix it with the second command.
# (Only works for git servers that allow sha fetches.)
git submodule update --init -N --depth 1 || true
git submodule foreach 'git fetch --tags --depth 1 origin $$sha1 && git checkout -q $$sha1'

View File

@ -138,6 +138,16 @@ Behavior
- Adds a safe mode that does not run user code after a hard crash or brown out. This makes it
possible to fix code that causes nasty crashes by making it available through mass storage after
the crash. A reset (the button) is needed after it's fixed to get back into normal mode.
- Safe mode may be handled programmatically by providing a ``safemode.py``.
``safemode.py`` is run if the board has reset due to entering safe mode, unless the safe mode
initiated by the user by pressing button(s).
USB is not available so nothing can be printed.
``safemode.py`` can determine why the safe mode occurred
using ``supervisor.runtime.safe_mode_reason``, and take appropriate action. For instance,
if a hard crash occurred, ``safemode.py`` may do a ``microcontroller.reset()``
to automatically restart despite the crash.
If the battery is low, but is being charged, ``safemode.py`` may put the board in deep sleep
for a while. Or it may simply reset, and have ``code.py`` check the voltage and do the sleep.
- RGB status LED indicating CircuitPython state.
- One green flash - code completed without error.
- Two red flashes - code ended due to an exception.
@ -145,9 +155,9 @@ Behavior
- Re-runs ``code.py`` or other main file after file system writes by a workflow. (Disable with
``supervisor.disable_autoreload()``)
- Autoreload is disabled while the REPL is active.
- Main is one of these: ``code.txt``, ``code.py``, ``main.py``,
``main.txt``
- Boot is one of these: ``boot.py``, ``boot.txt``
- ``code.py`` may also be named``code.txt``, ``main.py``, or ``main.txt``.
- ``boot.py`` may also be named ``boot.txt``.
- ``safemode.py`` may also be named ``safemode.txt``.
API
~~~

View File

@ -0,0 +1,236 @@
//
// GIF Animator
// written by Larry Bank
// bitbank@pobox.com
// Arduino port started 7/5/2020
// Original GIF code written 20+ years ago :)
// The goal of this code is to decode images up to 480x320
// using no more than 22K of RAM (if sent directly to an LCD display)
//
// Copyright 2020 BitBank Software, Inc. All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//===========================================================================
#include "AnimatedGIF.h"
// Here is all of the actual code...
#include "gif.inl"
//
// Memory initialization
//
int AnimatedGIF::open(uint8_t *pData, int iDataSize, GIF_DRAW_CALLBACK *pfnDraw)
{
_gif.iError = GIF_SUCCESS;
_gif.pfnRead = readMem;
_gif.pfnSeek = seekMem;
_gif.pfnDraw = pfnDraw;
_gif.pfnOpen = NULL;
_gif.pfnClose = NULL;
_gif.GIFFile.iSize = iDataSize;
_gif.GIFFile.pData = pData;
return GIFInit(&_gif);
} /* open() */
int AnimatedGIF::openFLASH(uint8_t *pData, int iDataSize, GIF_DRAW_CALLBACK *pfnDraw)
{
_gif.iError = GIF_SUCCESS;
_gif.pfnRead = readFLASH;
_gif.pfnSeek = seekMem;
_gif.pfnDraw = pfnDraw;
_gif.pfnOpen = NULL;
_gif.pfnClose = NULL;
_gif.GIFFile.iSize = iDataSize;
_gif.GIFFile.pData = pData;
return GIFInit(&_gif);
} /* openFLASH() */
//
// Returns the first comment block found (if any)
//
int AnimatedGIF::getComment(char *pDest)
{
int32_t iOldPos;
iOldPos = _gif.GIFFile.iPos; // keep old position
(*_gif.pfnSeek)(&_gif.GIFFile, _gif.iCommentPos);
(*_gif.pfnRead)(&_gif.GIFFile, (uint8_t *)pDest, _gif.sCommentLen);
(*_gif.pfnSeek)(&_gif.GIFFile, iOldPos);
pDest[_gif.sCommentLen] = 0; // zero terminate the string
return (int)_gif.sCommentLen;
} /* getComment() */
//
// Allocate a block of memory to hold the entire canvas (as 8-bpp)
//
int AnimatedGIF::allocFrameBuf(GIF_ALLOC_CALLBACK *pfnAlloc)
{
if (_gif.iCanvasWidth > 0 && _gif.iCanvasHeight > 0 && _gif.pFrameBuffer == NULL)
{
// Allocate a little extra space for the current line
// as RGB565 or RGB888
int iCanvasSize = _gif.iCanvasWidth * (_gif.iCanvasHeight+3);
_gif.pFrameBuffer = (unsigned char *)(*pfnAlloc)(iCanvasSize);
if (_gif.pFrameBuffer == NULL)
return GIF_ERROR_MEMORY;
return GIF_SUCCESS;
}
return GIF_INVALID_PARAMETER;
} /* allocFrameBuf() */
//
// Set the DRAW callback behavior to RAW (default)
// or COOKED (requires allocating a frame buffer)
//
int AnimatedGIF::setDrawType(int iType)
{
if (iType != GIF_DRAW_RAW && iType != GIF_DRAW_COOKED)
return GIF_INVALID_PARAMETER; // invalid drawing mode
_gif.ucDrawType = (uint8_t)iType;
return GIF_SUCCESS;
} /* setDrawType() */
//
// Release the memory used by the frame buffer
//
int AnimatedGIF::freeFrameBuf(GIF_FREE_CALLBACK *pfnFree)
{
if (_gif.pFrameBuffer)
{
(*pfnFree)(_gif.pFrameBuffer);
_gif.pFrameBuffer = NULL;
return GIF_SUCCESS;
}
return GIF_INVALID_PARAMETER;
} /* freeFrameBuf() */
//
// Return a pointer to the frame buffer (if it was allocated)
//
uint8_t * AnimatedGIF::getFrameBuf()
{
return _gif.pFrameBuffer;
} /* getFrameBuf() */
int AnimatedGIF::getCanvasWidth()
{
return _gif.iCanvasWidth;
} /* getCanvasWidth() */
int AnimatedGIF::getCanvasHeight()
{
return _gif.iCanvasHeight;
} /* getCanvasHeight() */
int AnimatedGIF::getLoopCount()
{
return _gif.iRepeatCount;
} /* getLoopCount() */
int AnimatedGIF::getInfo(GIFINFO *pInfo)
{
return GIF_getInfo(&_gif, pInfo);
} /* getInfo() */
int AnimatedGIF::getLastError()
{
return _gif.iError;
} /* getLastError() */
//
// File (SD/MMC) based initialization
//
int AnimatedGIF::open(const char *szFilename, GIF_OPEN_CALLBACK *pfnOpen, GIF_CLOSE_CALLBACK *pfnClose, GIF_READ_CALLBACK *pfnRead, GIF_SEEK_CALLBACK *pfnSeek, GIF_DRAW_CALLBACK *pfnDraw)
{
_gif.iError = GIF_SUCCESS;
_gif.pfnRead = pfnRead;
_gif.pfnSeek = pfnSeek;
_gif.pfnDraw = pfnDraw;
_gif.pfnOpen = pfnOpen;
_gif.pfnClose = pfnClose;
_gif.GIFFile.fHandle = (*pfnOpen)(szFilename, &_gif.GIFFile.iSize);
if (_gif.GIFFile.fHandle == NULL) {
_gif.iError = GIF_FILE_NOT_OPEN;
return 0;
}
return GIFInit(&_gif);
} /* open() */
void AnimatedGIF::close()
{
if (_gif.pfnClose)
(*_gif.pfnClose)(_gif.GIFFile.fHandle);
} /* close() */
void AnimatedGIF::reset()
{
(*_gif.pfnSeek)(&_gif.GIFFile, 0);
} /* reset() */
void AnimatedGIF::begin(unsigned char ucPaletteType)
{
memset(&_gif, 0, sizeof(_gif));
if (ucPaletteType != GIF_PALETTE_RGB565_LE && ucPaletteType != GIF_PALETTE_RGB565_BE && ucPaletteType != GIF_PALETTE_RGB888)
_gif.iError = GIF_INVALID_PARAMETER;
_gif.ucPaletteType = ucPaletteType;
_gif.ucDrawType = GIF_DRAW_RAW; // assume RAW pixel handling
_gif.pFrameBuffer = NULL;
} /* begin() */
//
// Play a single frame
// returns:
// 1 = good result and more frames exist
// 0 = no more frames exist, a frame may or may not have been played: use getLastError() and look for GIF_SUCCESS to know if a frame was played
// -1 = error
int AnimatedGIF::playFrame(bool bSync, int *delayMilliseconds, void *pUser)
{
int rc;
#if !defined( __MACH__ ) && !defined( __LINUX__ )
long lTime = millis();
#endif
if (_gif.GIFFile.iPos >= _gif.GIFFile.iSize-1) // no more data exists
{
(*_gif.pfnSeek)(&_gif.GIFFile, 0); // seek to start
}
if (GIFParseInfo(&_gif, 0))
{
_gif.pUser = pUser;
if (_gif.iError == GIF_EMPTY_FRAME) // don't try to decode it
return 0;
rc = DecodeLZW(&_gif, 0);
if (rc != 0) // problem
return -1;
}
else
{
// The file is "malformed" in that there is a bunch of non-image data after
// the last frame. Return as if all is well, though if needed getLastError()
// can be used to see if a frame was actually processed:
// GIF_SUCCESS -> frame processed, GIF_EMPTY_FRAME -> no frame processed
if (_gif.iError == GIF_EMPTY_FRAME)
{
if (delayMilliseconds)
*delayMilliseconds = 0;
return 0;
}
return -1; // error parsing the frame info, we may be at the end of the file
}
// Return 1 for more frames or 0 if this was the last frame
if (bSync)
{
#if !defined( __MACH__ ) && !defined( __LINUX__ )
lTime = millis() - lTime;
if (lTime < _gif.iFrameDelay) // need to pause a bit
delay(_gif.iFrameDelay - lTime);
#endif // __LINUX__
}
if (delayMilliseconds) // if not NULL, return the frame delay time
*delayMilliseconds = _gif.iFrameDelay;
return (_gif.GIFFile.iPos < _gif.GIFFile.iSize-10);
} /* playFrame() */

View File

@ -0,0 +1,216 @@
// Copyright 2020 BitBank Software, Inc. All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//===========================================================================
#ifndef __ANIMATEDGIF__
#define __ANIMATEDGIF__
#if defined( PICO_BUILD ) || defined( __MACH__ ) || defined( __LINUX__ ) || defined( __MCUXPRESSO )
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#define memcpy_P memcpy
#define PROGMEM
#else
#include <Arduino.h>
#endif
//
// GIF Animator
// Written by Larry Bank
// Copyright (c) 2020 BitBank Software, Inc.
// bitbank@pobox.com
//
// Designed to decode images up to 480x320
// using less than 22K of RAM
//
/* GIF Defines and variables */
#define MAX_CHUNK_SIZE 255
#define LZW_BUF_SIZE (6*MAX_CHUNK_SIZE)
#define LZW_HIGHWATER (4*MAX_CHUNK_SIZE)
#ifdef __LINUX__
#define MAX_WIDTH 2048
#else
#define MAX_WIDTH 320
#endif // __LINUX__
#define FILE_BUF_SIZE 4096
#define PIXEL_FIRST 0
#define PIXEL_LAST 4096
#define LINK_UNUSED 5911 // 0x1717 to use memset
#define LINK_END 5912
#define MAX_HASH 5003
#define MAXMAXCODE 4096
enum {
GIF_PALETTE_RGB565_LE = 0, // little endian (default)
GIF_PALETTE_RGB565_BE, // big endian
GIF_PALETTE_RGB888 // original 24-bpp entries
};
// for compatibility with older code
#define LITTLE_ENDIAN_PIXELS GIF_PALETTE_RGB565_LE
#define BIG_ENDIAN_PIXELS GIF_PALETTE_RGB565_BE
//
// Draw callback pixel type
// RAW = 8-bit palettized pixels requiring transparent pixel handling
// COOKED = 16 or 24-bpp fully rendered pixels ready for display
//
enum {
GIF_DRAW_RAW = 0,
GIF_DRAW_COOKED
};
enum {
GIF_SUCCESS = 0,
GIF_DECODE_ERROR,
GIF_TOO_WIDE,
GIF_INVALID_PARAMETER,
GIF_UNSUPPORTED_FEATURE,
GIF_FILE_NOT_OPEN,
GIF_EARLY_EOF,
GIF_EMPTY_FRAME,
GIF_BAD_FILE,
GIF_ERROR_MEMORY
};
typedef struct gif_file_tag
{
int32_t iPos; // current file position
int32_t iSize; // file size
uint8_t *pData; // memory file pointer
void * fHandle; // class pointer to File/SdFat or whatever you want
} GIFFILE;
typedef struct gif_info_tag
{
int32_t iFrameCount; // total frames in file
int32_t iDuration; // duration of animation in milliseconds
int32_t iMaxDelay; // maximum frame delay
int32_t iMinDelay; // minimum frame delay
} GIFINFO;
typedef struct gif_draw_tag
{
int iX, iY; // Corner offset of this frame on the canvas
int y; // current line being drawn (0 = top line of image)
int iWidth, iHeight; // size of this frame
void *pUser; // user supplied pointer
uint8_t *pPixels; // 8-bit source pixels for this line
uint16_t *pPalette; // little or big-endian RGB565 palette entries (default)
uint8_t *pPalette24; // RGB888 palette (optional)
uint8_t ucTransparent; // transparent color
uint8_t ucHasTransparency; // flag indicating the transparent color is in use
uint8_t ucDisposalMethod; // frame disposal method
uint8_t ucBackground; // background color
uint8_t ucIsGlobalPalette; // Flag to indicate that a global palette, rather than a local palette is being used
} GIFDRAW;
// Callback function prototypes
typedef int32_t (GIF_READ_CALLBACK)(GIFFILE *pFile, uint8_t *pBuf, int32_t iLen);
typedef int32_t (GIF_SEEK_CALLBACK)(GIFFILE *pFile, int32_t iPosition);
typedef void (GIF_DRAW_CALLBACK)(GIFDRAW *pDraw);
typedef void * (GIF_OPEN_CALLBACK)(const char *szFilename, int32_t *pFileSize);
typedef void (GIF_CLOSE_CALLBACK)(void *pHandle);
typedef void * (GIF_ALLOC_CALLBACK)(uint32_t iSize);
typedef void (GIF_FREE_CALLBACK)(void *buffer);
//
// our private structure to hold a GIF image decode state
//
typedef struct gif_image_tag
{
int iWidth, iHeight, iCanvasWidth, iCanvasHeight;
int iX, iY; // GIF corner offset
int iBpp;
int iError; // last error
int iFrameDelay; // delay in milliseconds for this frame
int iRepeatCount; // NETSCAPE animation repeat count. 0=forever
int iXCount, iYCount; // decoding position in image (countdown values)
int iLZWOff; // current LZW data offset
int iLZWSize; // current quantity of data in the LZW buffer
int iCommentPos; // file offset of start of comment data
short sCommentLen; // length of comment
GIF_READ_CALLBACK *pfnRead;
GIF_SEEK_CALLBACK *pfnSeek;
GIF_DRAW_CALLBACK *pfnDraw;
GIF_OPEN_CALLBACK *pfnOpen;
GIF_CLOSE_CALLBACK *pfnClose;
GIFFILE GIFFile;
void *pUser;
unsigned char *pFrameBuffer;
unsigned char *pPixels, *pOldPixels;
unsigned char ucLineBuf[MAX_WIDTH]; // current line
unsigned char ucFileBuf[FILE_BUF_SIZE]; // holds temp data and pixel stack
unsigned short pPalette[384]; // can hold RGB565 or RGB888 - set in begin()
unsigned short pLocalPalette[384]; // color palettes for GIF images
unsigned char ucLZW[LZW_BUF_SIZE]; // holds 6 chunks (6x255) of GIF LZW data packed together
unsigned short usGIFTable[4096];
unsigned char ucGIFPixels[8192];
unsigned char bEndOfFrame;
unsigned char ucGIFBits, ucBackground, ucTransparent, ucCodeStart, ucMap, bUseLocalPalette;
unsigned char ucPaletteType; // RGB565 or RGB888
unsigned char ucDrawType; // RAW or COOKED
} GIFIMAGE;
#ifdef __cplusplus
//
// The GIF class wraps portable C code which does the actual work
//
class AnimatedGIF
{
public:
int open(uint8_t *pData, int iDataSize, GIF_DRAW_CALLBACK *pfnDraw);
int openFLASH(uint8_t *pData, int iDataSize, GIF_DRAW_CALLBACK *pfnDraw);
int open(const char *szFilename, GIF_OPEN_CALLBACK *pfnOpen, GIF_CLOSE_CALLBACK *pfnClose, GIF_READ_CALLBACK *pfnRead, GIF_SEEK_CALLBACK *pfnSeek, GIF_DRAW_CALLBACK *pfnDraw);
void close();
void reset();
void begin(unsigned char ucPaletteType = GIF_PALETTE_RGB565_LE);
void begin(int iEndian, unsigned char ucPaletteType) { begin(ucPaletteType); };
int playFrame(bool bSync, int *delayMilliseconds, void *pUser = NULL);
int getCanvasWidth();
int allocFrameBuf(GIF_ALLOC_CALLBACK *pfnAlloc);
int setDrawType(int iType);
int freeFrameBuf(GIF_FREE_CALLBACK *pfnFree);
uint8_t *getFrameBuf();
int getCanvasHeight();
int getLoopCount();
int getInfo(GIFINFO *pInfo);
int getLastError();
int getComment(char *destBuffer);
private:
GIFIMAGE _gif;
};
#else
// C interface
int GIF_openRAM(GIFIMAGE *pGIF, uint8_t *pData, int iDataSize, GIF_DRAW_CALLBACK *pfnDraw);
int GIF_openFile(GIFIMAGE *pGIF, const char *szFilename, GIF_DRAW_CALLBACK *pfnDraw);
void GIF_close(GIFIMAGE *pGIF);
void GIF_begin(GIFIMAGE *pGIF, unsigned char ucPaletteType);
void GIF_reset(GIFIMAGE *pGIF);
int GIF_playFrame(GIFIMAGE *pGIF, int *delayMilliseconds, void *pUser);
int GIF_getCanvasWidth(GIFIMAGE *pGIF);
int GIF_getCanvasHeight(GIFIMAGE *pGIF);
int GIF_getComment(GIFIMAGE *pGIF, char *destBuffer);
int GIF_getInfo(GIFIMAGE *pGIF, GIFINFO *pInfo);
int GIF_getLastError(GIFIMAGE *pGIF);
int GIF_getLoopCount(GIFIMAGE *pGIF);
#endif // __cplusplus
// Due to unaligned memory causing an exception, we have to do these macros the slow way
#define INTELSHORT(p) ((*p) + (*(p+1)<<8))
#define INTELLONG(p) ((*p) + (*(p+1)<<8) + (*(p+2)<<16) + (*(p+3)<<24))
#define MOTOSHORT(p) (((*(p))<<8) + (*(p+1)))
#define MOTOLONG(p) (((*p)<<24) + ((*(p+1))<<16) + ((*(p+2))<<8) + (*(p+3)))
// Must be a 32-bit target processor
#define REGISTER_WIDTH 32
#endif // __ANIMATEDGIF__

View File

@ -0,0 +1,182 @@
// Copyright 2020 BitBank Software, Inc. All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ===========================================================================
//
// Modified 2023 by Mark Komus to work for CircuitPython
//
#ifndef __ANIMATEDGIF__
#define __ANIMATEDGIF__
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
//
// GIF Animator
// Written by Larry Bank
// Copyright (c) 2020 BitBank Software, Inc.
// bitbank@pobox.com
//
// Designed to decode images up to 480x320
// using less than 22K of RAM
//
/* GIF Defines and variables */
#define MAX_CHUNK_SIZE 255
#define LZW_BUF_SIZE (6 * MAX_CHUNK_SIZE)
#define LZW_HIGHWATER (4 * MAX_CHUNK_SIZE)
#define MAX_WIDTH 320
#define FILE_BUF_SIZE 4096
#define PIXEL_FIRST 0
#define PIXEL_LAST 4096
#define LINK_UNUSED 5911 // 0x1717 to use memset
#define LINK_END 5912
#define MAX_HASH 5003
#define MAXMAXCODE 4096
enum {
GIF_PALETTE_RGB565_LE = 0, // little endian (default)
GIF_PALETTE_RGB565_BE, // big endian
GIF_PALETTE_RGB888 // original 24-bpp entries
};
// for compatibility with older code
#define LITTLE_ENDIAN_PIXELS GIF_PALETTE_RGB565_LE
#define BIG_ENDIAN_PIXELS GIF_PALETTE_RGB565_BE
//
// Draw callback pixel type
// RAW = 8-bit palettized pixels requiring transparent pixel handling
// COOKED = 16 or 24-bpp fully rendered pixels ready for display
//
enum {
GIF_DRAW_RAW = 0,
GIF_DRAW_COOKED
};
enum {
GIF_SUCCESS = 0,
GIF_DECODE_ERROR,
GIF_TOO_WIDE,
GIF_INVALID_PARAMETER,
GIF_UNSUPPORTED_FEATURE,
GIF_FILE_NOT_OPEN,
GIF_EARLY_EOF,
GIF_EMPTY_FRAME,
GIF_BAD_FILE,
GIF_ERROR_MEMORY
};
typedef struct gif_file_tag
{
int32_t iPos; // current file position
int32_t iSize; // file size
uint8_t *pData; // memory file pointer
void *fHandle; // class pointer to File/SdFat or whatever you want
} GIFFILE;
typedef struct gif_info_tag
{
int32_t iFrameCount; // total frames in file
int32_t iDuration; // duration of animation in milliseconds
int32_t iMaxDelay; // maximum frame delay
int32_t iMinDelay; // minimum frame delay
} GIFINFO;
typedef struct gif_draw_tag
{
int iX, iY; // Corner offset of this frame on the canvas
int y; // current line being drawn (0 = top line of image)
int iWidth, iHeight; // size of this frame
void *pUser; // user supplied pointer
uint8_t *pPixels; // 8-bit source pixels for this line
uint16_t *pPalette; // little or big-endian RGB565 palette entries (default)
uint8_t *pPalette24; // RGB888 palette (optional)
uint8_t ucTransparent; // transparent color
uint8_t ucHasTransparency; // flag indicating the transparent color is in use
uint8_t ucDisposalMethod; // frame disposal method
uint8_t ucBackground; // background color
uint8_t ucIsGlobalPalette; // Flag to indicate that a global palette, rather than a local palette is being used
} GIFDRAW;
// Callback function prototypes
typedef int32_t (GIF_READ_CALLBACK)(GIFFILE *pFile, uint8_t *pBuf, int32_t iLen);
typedef int32_t (GIF_SEEK_CALLBACK)(GIFFILE *pFile, int32_t iPosition);
typedef void (GIF_DRAW_CALLBACK)(GIFDRAW *pDraw);
typedef void * (GIF_OPEN_CALLBACK)(const char *szFilename, int32_t *pFileSize);
typedef void (GIF_CLOSE_CALLBACK)(void *pHandle);
typedef void * (GIF_ALLOC_CALLBACK)(uint32_t iSize);
typedef void (GIF_FREE_CALLBACK)(void *buffer);
//
// our private structure to hold a GIF image decode state
//
typedef struct gif_image_tag
{
int iWidth, iHeight, iCanvasWidth, iCanvasHeight;
int iX, iY; // GIF corner offset
int iBpp;
int iError; // last error
int iFrameDelay; // delay in milliseconds for this frame
int iRepeatCount; // NETSCAPE animation repeat count. 0=forever
int iXCount, iYCount; // decoding position in image (countdown values)
int iLZWOff; // current LZW data offset
int iLZWSize; // current quantity of data in the LZW buffer
int iCommentPos; // file offset of start of comment data
short sCommentLen; // length of comment
GIF_READ_CALLBACK *pfnRead;
GIF_SEEK_CALLBACK *pfnSeek;
GIF_DRAW_CALLBACK *pfnDraw;
GIF_OPEN_CALLBACK *pfnOpen;
GIF_CLOSE_CALLBACK *pfnClose;
GIFFILE GIFFile;
void *pUser;
//unsigned char *pFrameBuffer;
unsigned int *pFrameBuffer;
unsigned char *pPixels, *pOldPixels;
unsigned char ucLineBuf[MAX_WIDTH]; // current line
unsigned char ucFileBuf[FILE_BUF_SIZE]; // holds temp data and pixel stack
unsigned short pPalette[384]; // can hold RGB565 or RGB888 - set in begin()
unsigned short pLocalPalette[384]; // color palettes for GIF images
unsigned char ucLZW[LZW_BUF_SIZE]; // holds 6 chunks (6x255) of GIF LZW data packed together
unsigned short usGIFTable[4096];
unsigned char ucGIFPixels[8192];
unsigned char bEndOfFrame;
unsigned char ucGIFBits, ucBackground, ucTransparent, ucCodeStart, ucMap, bUseLocalPalette;
unsigned char ucPaletteType; // RGB565 or RGB888
unsigned char ucDrawType; // RAW or COOKED
} GIFIMAGE;
// C interface
int GIF_openRAM(GIFIMAGE *pGIF, uint8_t *pData, int iDataSize, GIF_DRAW_CALLBACK *pfnDraw);
int GIF_openFile(GIFIMAGE *pGIF, const char *szFilename, GIF_DRAW_CALLBACK *pfnDraw);
void GIF_close(GIFIMAGE *pGIF);
void GIF_begin(GIFIMAGE *pGIF, unsigned char ucPaletteType);
void GIF_reset(GIFIMAGE *pGIF);
int GIF_playFrame(GIFIMAGE *pGIF, int *delayMilliseconds, void *pUser);
int GIF_getCanvasWidth(GIFIMAGE *pGIF);
int GIF_getCanvasHeight(GIFIMAGE *pGIF);
int GIF_getComment(GIFIMAGE *pGIF, char *destBuffer);
int GIF_getInfo(GIFIMAGE *pGIF, GIFINFO *pInfo);
int GIF_getLastError(GIFIMAGE *pGIF);
int GIF_getLoopCount(GIFIMAGE *pGIF);
int GIF_init(GIFIMAGE *pGIF);
void GIF_setDrawCallback(GIFIMAGE *pGIF, GIF_DRAW_CALLBACK *pfnDraw);
void GIF_scaleHalf(uint16_t *pCurrent, uint16_t *pPrev, int iWidth, int bBigEndian);
// Due to unaligned memory causing an exception, we have to do these macros the slow way
#define INTELSHORT(p) ((*p) + (*(p + 1) << 8))
#define INTELLONG(p) ((*p) + (*(p + 1) << 8) + (*(p + 2) << 16) + (*(p + 3) << 24))
#define MOTOSHORT(p) (((*(p)) << 8) + (*(p + 1)))
#define MOTOLONG(p) (((*p) << 24) + ((*(p + 1)) << 16) + ((*(p + 2)) << 8) + (*(p + 3)))
// Must be a 32-bit target processor
#define REGISTER_WIDTH 32
#endif // __ANIMATEDGIF__

View File

@ -0,0 +1,5 @@
This library is from the AnimatedGIF Arduino GIF decoder by Larry Bank.
Released under the Apache License 2.0
[AnimatedGIF](https://github.com/bitbank2/AnimatedGIF)
It has been modified for use in CircuitPython by Mark Komus.

1043
lib/AnimatedGIF/gif.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -33,12 +33,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Harap ajukan masalah dengan konten drive CIRCUITPY Anda di\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -91,7 +100,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -444,7 +453,6 @@ msgid "All SPI peripherals are in use"
msgstr "Semua perangkat SPI sedang digunakan"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Semua perangkat UART sedang digunakan"
@ -536,10 +544,6 @@ msgstr "Nilai array harus berupa byte tunggal."
msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -590,20 +594,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Kedua pin harus mendukung hardware interrut"
@ -669,12 +666,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Pin bus %d sudah digunakan"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Byte buffer harus 16 byte."
@ -809,10 +800,6 @@ msgstr "Menulis CharacteristicBuffer tidak tersedia"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "Kode inti CircuitPython mengalami crash. Aduh!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Peregangan clock terlalu panjang"
@ -852,10 +839,6 @@ msgstr "Tidak dapat memulai interupsi, RX sibuk"
msgid "Couldn't allocate decoder"
msgstr "Tidak dapat mengalokasikan dekoder"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Gagal ke HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Terjadi kesalahan saat menginisialisasi kanal DAC"
@ -947,6 +930,10 @@ msgstr ""
msgid "Error in regex"
msgstr "Error pada regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1020,7 +1007,7 @@ msgid "Failed to write internal flash."
msgstr "Gagal menulis flash internal."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1108,6 +1095,15 @@ msgstr "Perangkat keras sibuk, coba pin alternatif"
msgid "Hardware in use, try alternative pins"
msgstr "Perangkat keras sedang digunakan, coba pin alternatif"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "operasi I/O pada file tertutup"
@ -1224,6 +1220,10 @@ msgstr "Kesalahan internal #%d"
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1272,10 +1272,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr "Ukuran potongan format tidak valid"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Akses memori tidak valid."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1564,10 +1560,6 @@ msgstr "Tidak ada file/direktori"
msgid "No timer available"
msgstr "Penghitung waktu tidak tersedia"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2033,53 +2025,19 @@ msgid "Temperature read timed out"
msgstr "Waktu baca suhu habis"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2098,6 +2056,10 @@ msgstr "Tingkat sampel dari sampel tidak cocok dengan mixer"
msgid "The sample's signedness does not match the mixer's"
msgstr "signedness dari sampel tidak cocok dengan mixer"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2130,10 +2092,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2178,6 +2136,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2225,6 +2187,10 @@ msgstr "Nilai UUID bukan str, int atau byte buffer"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Tidak dapat mengalokasikan buffer untuk signed conversion"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2432,13 +2398,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr "Menulis tidak didukung pada Karakteristik"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4371,6 +4376,21 @@ msgstr "zi harus berjenis float"
msgid "zi must be of shape (n_section, 2)"
msgstr "Zi harus berbentuk (n_section, 2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Harap ajukan masalah dengan konten drive CIRCUITPY Anda di\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Gagal ke HardFault_Handler."
#~ msgid "Invalid memory access."
#~ msgstr "Akses memori tidak valid."
#~ msgid "%q must be of type %q"
#~ msgstr "%q harus bertipe %q"

View File

@ -31,8 +31,20 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
@ -85,7 +97,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -434,7 +446,6 @@ msgid "All SPI peripherals are in use"
msgstr ""
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr ""
@ -526,10 +537,6 @@ msgstr ""
msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -578,20 +585,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -657,12 +657,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr ""
@ -793,10 +787,6 @@ msgstr ""
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr ""
@ -835,10 +825,6 @@ msgstr ""
msgid "Couldn't allocate decoder"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr ""
@ -930,6 +916,10 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1003,7 +993,7 @@ msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1091,6 +1081,15 @@ msgstr ""
msgid "Hardware in use, try alternative pins"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr ""
@ -1205,6 +1204,10 @@ msgstr ""
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Invalid %q"
@ -1255,10 +1258,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1547,10 +1546,6 @@ msgstr ""
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2002,53 +1997,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2067,6 +2028,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2099,10 +2064,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2147,6 +2108,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2194,6 +2159,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2399,13 +2368,48 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c

View File

@ -35,12 +35,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Prosím vytvořte tiket s obsahem vaší jednotky CIRCUITPY na adrese\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -92,7 +101,7 @@ msgstr "%d adresní pin, %d rgb pin a %d dlaždice indikuje výšku %d, ne %d"
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -445,7 +454,6 @@ msgid "All SPI peripherals are in use"
msgstr "Všechny SPI periferie jsou používány"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Všechny UART periferie jsou používány"
@ -537,10 +545,6 @@ msgstr "Hodnoty pole by měly být jednoduché bajty."
msgid "Attempt to allocate %d blocks"
msgstr "Pokus o alokování %d bloků"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Pokus o alokaci haldy, když neběží VM."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Konverze audia není implementována"
@ -591,20 +595,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "Velikost bitmapy a počet bitů na hodnotu se musí shodovat"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "Bootovací zařízení musí být první (rozhraní #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "RX a TX jsou vyžadovány pro kontrolu toku"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Oba piny musí podporovat hardwarové přerušení"
@ -670,12 +667,6 @@ msgstr "Buffery musí mít stejnou velikost"
msgid "Bus pin %d is already in use"
msgstr "Sběrnicový pin %d je již používán"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Bajtový buffer musí být 16 bajtů."
@ -807,10 +798,6 @@ msgstr "CharacteristicBuffer psaní není poskytováno"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "Jádro kódu CircuitPython tvrdě havarovalo. Jejda!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython nedokázal alokovat haldu."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Hodiny jsou příliš dlouhé"
@ -850,10 +837,6 @@ msgstr "Nelze začít přerušení, RX je zaneprázdněn"
msgid "Couldn't allocate decoder"
msgstr "Dekodér nelze přiřadit"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Pád do HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Chyba inicializace kanálu DAC"
@ -945,6 +928,10 @@ msgstr "Chyba v MIDI přenosu na pozici %d"
msgid "Error in regex"
msgstr "Chyba v regulárním výrazu"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1018,8 +1005,8 @@ msgid "Failed to write internal flash."
msgstr "Nepodařilo se zapsat do interní paměti."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Fatální chyba."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
@ -1108,6 +1095,15 @@ msgstr "Hardware je zaneprázdněn, zkuste alternativní piny"
msgid "Hardware in use, try alternative pins"
msgstr "Hardware je používán, zkuste alternativní piny"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr ""
@ -1224,6 +1220,10 @@ msgstr "Vnitřní chyba #%d"
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1272,10 +1272,6 @@ msgstr "Chybný data_pin[%d]"
msgid "Invalid format chunk size"
msgstr "Neplatná velikost bloku"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Neplatný přístup k paměti."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Chybná multicastová MAC adresa"
@ -1564,10 +1560,6 @@ msgstr "Žádný takový soubor / adresář"
msgid "No timer available"
msgstr "Není k dispozici žádný časovač"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2022,53 +2014,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2087,6 +2045,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2119,10 +2081,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2167,6 +2125,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2214,6 +2176,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2419,13 +2385,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4357,6 +4362,33 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Prosím vytvořte tiket s obsahem vaší jednotky CIRCUITPY na adrese\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "Pokus o alokaci haldy, když neběží VM."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "Bootovací zařízení musí být první (rozhraní #0)."
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython nedokázal alokovat haldu."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Pád do HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Fatální chyba."
#~ msgid "Invalid memory access."
#~ msgstr "Neplatný přístup k paměti."
#~ msgid "%q must be of type %q"
#~ msgstr "%q musí být typu %q"

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2023-01-13 18:51+0000\n"
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid ""
@ -34,12 +34,23 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
"\n"
"Bitte melde ein Problem mit dem Inhalt Ihres CIRCUITPY-Laufwerks unter\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Sie befinden sich im abgesicherten Modus, weil:\n"
#: py/obj.c
msgid " File \"%q\""
@ -93,7 +104,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -448,7 +459,6 @@ msgid "All SPI peripherals are in use"
msgstr "Alle SPI-Peripheriegeräte sind in Benutzung"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Alle UART-Peripheriegeräte sind in Benutzung"
@ -540,10 +550,6 @@ msgstr "Array-Werte sollten aus Einzelbytes bestehen."
msgid "Attempt to allocate %d blocks"
msgstr "Versuche %d Blöcke zu allokieren"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Versuchte Heap-Zuordnung wenn VM nicht läuft."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Audio-Konvertierung nicht implementiert"
@ -594,20 +600,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "Bitmap-Grösse und Bits pro Wert müssen übereinstimmen"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "Boot-Gerät muss erstes Gerät sein (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Sowohl RX als auch TX sind zu Flusssteuerung erforderlich"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Beim Starten wurden beide Tasten gedrückt.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Beide Pins müssen Hardware-Interrupts unterstützen"
@ -673,12 +672,6 @@ msgstr "Buffers müssen gleiche Größe haben"
msgid "Bus pin %d is already in use"
msgstr "Bus-Pin %d wird schon benutzt"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Beim Starten wurde Taste A gedrückt.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Der Puffer muss 16 Bytes lang sein."
@ -814,10 +807,6 @@ msgstr "Schreiben von CharacteristicBuffer ist nicht vorgesehen"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "Der CircuitPython-Kerncode ist hart abgestürzt. Hoppla!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython war es nicht möglich heap-Speicher zu allozieren."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Clock stretch zu lang"
@ -858,10 +847,6 @@ msgstr "Interrupt konnte nicht gestartet werden, RX beschäftigt"
msgid "Couldn't allocate decoder"
msgstr "Decoder konnte nicht zugeordnet werden"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Absturz in den HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "DAC-Kanal-Initialisierungsfehler"
@ -955,6 +940,10 @@ msgstr "Fehler in MIDI Datenstrom um Position %d"
msgid "Error in regex"
msgstr "Fehler in regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Error: Bind Fehler"
@ -1029,8 +1018,8 @@ msgid "Failed to write internal flash."
msgstr "Interner Flash konnte nicht geschrieben werden."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Fataler Fehler."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
@ -1121,6 +1110,15 @@ msgstr "Hardware beschäftigt, versuche alternative Pins"
msgid "Hardware in use, try alternative pins"
msgstr "Hardware in Benutzung, probiere alternative Pins"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Lese/Schreibe-operation an geschlossener Datei"
@ -1241,6 +1239,10 @@ msgstr "Interner Fehler #%d"
msgid "Internal watchdog timer expired."
msgstr "Der Interne WatchDog Timer ist abgelaufen."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Ungültiger %q"
@ -1289,10 +1291,6 @@ msgstr "Ungültige data_pins[%d]"
msgid "Invalid format chunk size"
msgstr "Ungültige format chunk size"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Ungültiger Speicherzugriff."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Ungültige Multicast-MAC-Adresse"
@ -1582,10 +1580,6 @@ msgstr "Keine solche Datei/Verzeichnis"
msgid "No timer available"
msgstr "Kein Timer verfügbar"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "Nordic System-Firmware Fehler Assertion."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "Nordic System-Firmware kein Speicher verfügbar"
@ -2049,62 +2043,21 @@ msgid "Temperature read timed out"
msgstr "Zeitüberschreitung beim Auslesen der Temperatur"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr "Beim Starten wurde die Taste BOOT gedrückt.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
"Der Heap von CircuitPython wurde beschädigt, weil der Stack zu klein war.\n"
"Vergrößere den Stack, wenn du weißt, wie. Wenn nicht:"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr "Beim Starten wurde die Taste SW38 gedrückt.\n"
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr "Beim Starten wurde die Taste VOLUME gedrückt.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"Das Modul `microcontroller` wurde zum Booten in den abgesicherten Modus "
"verwendet. Drücke Reset, um den abgesicherten Modus zu verlassen."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
"Die oben genannte Ausnahme war die direkte Ursache für die folgende Ausnahme:"
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr "Beim Starten wurde die zentrale Taste gedrückt.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr "Beim Starten wurde die linke Taste gedrückt.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "Die Länge von rgb_pins muss 6, 12, 18, 24 oder 30 betragen"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
"Der Mikrocontroller hatte einen Stromausfall. Vergewisser dich, dass die\n"
"Stromversorgung genügend Strom für die gesamte Schaltung liefert und\n"
"drücke Reset (nach dem Auswerfen von CIRCUITPY)."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2124,6 +2077,10 @@ msgid "The sample's signedness does not match the mixer's"
msgstr ""
"Die Art des Vorzeichens des Samples stimmt nicht mit dem des Mixers überein"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr "Dieser Mikrocontroller unterstützt keine kontinuierliche Erfassung."
@ -2159,12 +2116,6 @@ msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
"Zeitbeschränkung ist zu groß: Maximale Zeitbeschränkung ist %d Sekunden"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
"Zum Beenden setze bitte das Board zurück, ohne den abgesicherten Modus "
"aufzurufen."
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr "Zu viele Kanäle im Beispiel"
@ -2209,6 +2160,10 @@ msgstr "UART wird de-initialisiert"
msgid "UART init"
msgstr "UART-Initialisierung"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr "UART wird erneut Initialisiert"
@ -2256,6 +2211,10 @@ msgstr "Der UUID-Wert ist kein str-, int- oder Byte-Puffer"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Konnte keine Buffer für Vorzeichenumwandlung allozieren"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Lock kann nicht erzeugt werden"
@ -2475,16 +2434,53 @@ msgstr "Aufgeweckt durch Alarm.\n"
msgid "Writes not supported on Characteristic"
msgstr "Schreiben nicht unterstüzt für diese Charakteristik"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "Du befindest dich im abgesicherten Modus, weil:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
"Du hast beim Booten die Reset-Taste gedrückt. Drücke sie erneut, um den "
"abgesicherten Modus zu beenden."
#: py/objtype.c
msgid "__init__() should return None"
@ -4442,6 +4438,95 @@ msgstr "zi muss eine Gleitkommazahl sein"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi muss die Form (n_section, 2) haben"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Bitte melde ein Problem mit dem Inhalt Ihres CIRCUITPY-Laufwerks unter\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "Versuchte Heap-Zuordnung wenn VM nicht läuft."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "Boot-Gerät muss erstes Gerät sein (interface #0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Beim Starten wurden beide Tasten gedrückt.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "Beim Starten wurde Taste A gedrückt.\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython war es nicht möglich heap-Speicher zu allozieren."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Absturz in den HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Fataler Fehler."
#~ msgid "Invalid memory access."
#~ msgstr "Ungültiger Speicherzugriff."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Nordic System-Firmware Fehler Assertion."
#~ msgid "The BOOT button was pressed at start up.\n"
#~ msgstr "Beim Starten wurde die Taste BOOT gedrückt.\n"
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "Der Heap von CircuitPython wurde beschädigt, weil der Stack zu klein "
#~ "war.\n"
#~ "Vergrößere den Stack, wenn du weißt, wie. Wenn nicht:"
#~ msgid "The SW38 button was pressed at start up.\n"
#~ msgstr "Beim Starten wurde die Taste SW38 gedrückt.\n"
#~ msgid "The VOLUME button was pressed at start up.\n"
#~ msgstr "Beim Starten wurde die Taste VOLUME gedrückt.\n"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "Das Modul `microcontroller` wurde zum Booten in den abgesicherten Modus "
#~ "verwendet. Drücke Reset, um den abgesicherten Modus zu verlassen."
#~ msgid "The central button was pressed at start up.\n"
#~ msgstr "Beim Starten wurde die zentrale Taste gedrückt.\n"
#~ msgid "The left button was pressed at start up.\n"
#~ msgstr "Beim Starten wurde die linke Taste gedrückt.\n"
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "Der Mikrocontroller hatte einen Stromausfall. Vergewisser dich, dass die\n"
#~ "Stromversorgung genügend Strom für die gesamte Schaltung liefert und\n"
#~ "drücke Reset (nach dem Auswerfen von CIRCUITPY)."
#~ msgid "To exit, please reset the board without requesting safe mode."
#~ msgstr ""
#~ "Zum Beenden setze bitte das Board zurück, ohne den abgesicherten Modus "
#~ "aufzurufen."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "Du befindest dich im abgesicherten Modus, weil:\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "Du hast beim Booten die Reset-Taste gedrückt. Drücke sie erneut, um den "
#~ "abgesicherten Modus zu beenden."
#~ msgid ""
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
#~ "documentation for instructions."

View File

@ -38,13 +38,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Παρακαλώ δημιουγήστε ενα πρόβλημα με τα περιεχόμενα του CIRCUITPY δίσκου "
"στο\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -97,7 +105,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -451,7 +459,6 @@ msgid "All SPI peripherals are in use"
msgstr "Όλα τα SPI περιφεριακά είναι σε χρήση"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Όλα τα UART περιφεριακά ειναι σε χρήση"
@ -543,10 +550,6 @@ msgstr "Η τιμές της παράταξη πρέπει να είναι μο
msgid "Attempt to allocate %d blocks"
msgstr "Προσπάθεια να δεσμευτούν %d blocks"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Προσπάθεια δέσμευσης heap όταν το VM δεν τρέχει."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Η μετατροπή ήχου δεν υποστηρίζεται"
@ -597,20 +600,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "Το μέγεθος του bitmap και τα bits ανα τιμή πρέπει να ταιριάζουν"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "Η συσκευή boot πρέπει να είναι η πρώτη συσκευή (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Και RX και TX απαιτούνται για έλεγχο flow"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Και τα δύο pin πρέπει να υποστηρίζουν interrupts υλικού"
@ -676,12 +672,6 @@ msgstr "Τα Buffers πρέπει να είναι του ιδίου μεγέθο
msgid "Bus pin %d is already in use"
msgstr "Bus pin %d είναι ήδη σε χρήση"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Byte buffer πρέπει να είναι 16 bytes."
@ -820,10 +810,6 @@ msgstr "Δεν υποστηρίζονται εγγραφές στο Characterist
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "Ο πυρήνας της CircuitPython κατέρευσε. Οουπς!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "Η CircuitPython δεν μπορέσε να δεσμεύσει το heap."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Stretch ρολογιού πολύ μεγάλο"
@ -864,10 +850,6 @@ msgstr "Δεν μπόρεσε να εκκινηθεί το interrupt, RX κατ
msgid "Couldn't allocate decoder"
msgstr "Δεν μπόρεσε να δεσμευτεί decoder"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Κατέρευσε μέσα στο HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Σφάλμα εκκίνησης καναλιού DAC"
@ -959,6 +941,10 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1032,7 +1018,7 @@ msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1120,6 +1106,15 @@ msgstr ""
msgid "Hardware in use, try alternative pins"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr ""
@ -1234,6 +1229,10 @@ msgstr ""
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1282,10 +1281,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1574,10 +1569,6 @@ msgstr ""
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2031,53 +2022,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2096,6 +2053,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2128,10 +2089,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2176,6 +2133,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2223,6 +2184,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2428,13 +2393,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4366,6 +4370,28 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Παρακαλώ δημιουγήστε ενα πρόβλημα με τα περιεχόμενα του CIRCUITPY δίσκου "
#~ "στο\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "Προσπάθεια δέσμευσης heap όταν το VM δεν τρέχει."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "Η συσκευή boot πρέπει να είναι η πρώτη συσκευή (interface #0)."
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "Η CircuitPython δεν μπορέσε να δεσμεύσει το heap."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Κατέρευσε μέσα στο HardFault_Handler."
#~ msgid "%q must be of type %q"
#~ msgstr "%q πρέπει να είναι τύπου %q"

View File

@ -37,12 +37,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -95,7 +104,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -448,7 +457,6 @@ msgid "All SPI peripherals are in use"
msgstr "All SPI peripherals are in use"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "All UART peripherals are in use"
@ -540,10 +548,6 @@ msgstr "Array values should be single bytes."
msgid "Attempt to allocate %d blocks"
msgstr "Attempt to allocate %d blocks"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Attempted heap allocation when VM not running."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Audio conversion not implemented"
@ -594,20 +598,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Both RX and TX required for flow control"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Both pins must support hardware interrupts"
@ -673,12 +670,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Bus pin %d is already in use"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Byte buffer must be 16 bytes."
@ -809,10 +800,6 @@ msgstr "CharacteristicBuffer writing not provided"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "CircuitPython core code crashed hard. Crikey!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython was unable to allocate the heap."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Clock stretch too long"
@ -853,10 +840,6 @@ msgstr "Could not start interrupt, RX busy"
msgid "Couldn't allocate decoder"
msgstr "Couldn't allocate decoder"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Crash into the HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "DAC channel init error"
@ -948,6 +931,10 @@ msgstr "Error in MIDI stream at position %d"
msgid "Error in regex"
msgstr "Error in regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Error: Failure to bind"
@ -1021,8 +1008,8 @@ msgid "Failed to write internal flash."
msgstr "Failed to write internal flash."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
@ -1109,6 +1096,15 @@ msgstr "Hardware busy, try alternative pins"
msgid "Hardware in use, try alternative pins"
msgstr "Hardware in use, try alternative pins"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "I/O operation on closed file"
@ -1225,6 +1221,10 @@ msgstr "Internal error #%d"
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Invalid %q"
@ -1273,10 +1273,6 @@ msgstr "Invalid data_pins[%d]"
msgid "Invalid format chunk size"
msgstr "Invalid format chunk size"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Invalid memory access."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1565,10 +1561,6 @@ msgstr "No such file/directory"
msgid "No timer available"
msgstr "No timer available"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "Nordic system firmware failure assertion."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "Nordic system firmware out of memory"
@ -2028,61 +2020,20 @@ msgid "Temperature read timed out"
msgstr "Temperature read timed out"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "The length of rgb_pins must be 6, 12, 18, 24, or 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2100,6 +2051,10 @@ msgstr "The sample's sample rate does not match the mixer's"
msgid "The sample's signedness does not match the mixer's"
msgstr "The sample's signedness does not match the mixer's"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2132,10 +2087,6 @@ msgstr "Time is in the past."
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr "Timeout is too long: Maximum timeout length is %d seconds"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2180,6 +2131,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2227,6 +2182,10 @@ msgstr "UUID value is not str, int or byte buffer"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Unable to allocate buffers for signed conversion"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Unable to create lock"
@ -2434,15 +2393,53 @@ msgstr "Woken up by alarm.\n"
msgid "Writes not supported on Characteristic"
msgstr "Writes not supported on Characteristic"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
"You pressed the reset button during boot. Press again to exit safe mode."
#: py/objtype.c
msgid "__init__() should return None"
@ -4376,6 +4373,64 @@ msgstr "zi must be of float type"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi must be of shape (n_section, 2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "Attempted heap allocation when VM not running."
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython was unable to allocate the heap."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Crash into the HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Fatal error."
#~ msgid "Invalid memory access."
#~ msgstr "Invalid memory access."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Nordic system firmware failure assertion."
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "You are in safe mode because:\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgid "Expected a %q"
#~ msgstr "Expected a %q"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2023-02-01 22:11+0000\n"
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
"Last-Translator: Jose David M <jquintana202020@gmail.com>\n"
"Language-Team: \n"
"Language: es\n"
@ -37,12 +37,28 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
"\n"
"Presente un problema con el contenido de su unidad CIRCUITPY en\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Por favor describa su problema en https://github.com/adafruit/circuitpython/"
"issues."
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
"\n"
"Presione reset para salir de safe mode.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
"\n"
"Estas in safe mode porque:\n"
#: py/obj.c
msgid " File \"%q\""
@ -96,7 +112,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -449,7 +465,6 @@ msgid "All SPI peripherals are in use"
msgstr "Todos los periféricos SPI están siendo usados"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Todos los periféricos UART están siendo usados"
@ -543,10 +558,6 @@ msgstr "Valores del array deben ser bytes individuales."
msgid "Attempt to allocate %d blocks"
msgstr "Tratando de localizar %d bloques"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Asignación del montículo mientras la VM no esta ejecutándose."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Conversión de audio no esta implementada"
@ -597,21 +608,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "El tamaño del mapa de bits y los bits por valor deben cotejar"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr ""
"El dispositivo de arranque debe de ser el primer dispositivo (interfase #0)."
msgid "Boot device must be first (interface #0)."
msgstr "El dispositivo de inicialización debe estar primero (interface #0)."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Ambos RX y TX requeridos para control de flujo"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Ambos botones fueron prensados al inicio\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Ambos pines deben soportar interrupciones por hardware"
@ -678,12 +681,6 @@ msgstr "Búferes deben ser del mismo tamaño"
msgid "Bus pin %d is already in use"
msgstr "Bus pin %d ya está siendo utilizado"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Botón A fue presionado al inicio.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Búfer Byte debe de ser 16 bytes."
@ -820,10 +817,6 @@ msgstr "CharateristicBuffer escritura no proporcionada"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "El código central de CircuitPython se estrelló con fuerza. ¡Whoops!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython no puedo encontrar el montículo."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Estirado de reloj demasiado largo"
@ -864,10 +857,6 @@ msgstr "No se pudo iniciar la interrupción, RX ocupado"
msgid "Couldn't allocate decoder"
msgstr "No se pudo encontrar el decodificador"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Choque contra el HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Error de inicio del canal DAC"
@ -960,6 +949,10 @@ msgstr "Error en el flujo MIDI en la posición %d"
msgid "Error in regex"
msgstr "Error en regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr "Error en safemode.py."
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Error: fallo al vincular"
@ -1033,8 +1026,8 @@ msgid "Failed to write internal flash."
msgstr "Error al escribir el flash interno."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Error grave."
msgid "Fault detected by hardware."
msgstr "Falló detectado por el hardware."
#: py/moduerrno.c
msgid "File exists"
@ -1127,6 +1120,16 @@ msgstr "Hardware ocupado, pruebe pines alternativos"
msgid "Hardware in use, try alternative pins"
msgstr "Hardware en uso, pruebe pines alternativos"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr "Alocación del Heap cuando la VM no esta corriendo."
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
"El Heap está corrupto, ya que la pila era muy pequeña. Incremente el tamaño."
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Operación I/O en archivo cerrado"
@ -1250,6 +1253,10 @@ msgstr "Error interno #%d"
msgid "Internal watchdog timer expired."
msgstr "El temporizador interno watchdog terminó."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr "Error de interrupción."
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "%q inválido"
@ -1298,10 +1305,6 @@ msgstr "Inválidos los data_pins[%d]"
msgid "Invalid format chunk size"
msgstr "Formato de fragmento de formato no válido"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Acceso a memoria no válido."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Dirección MAC de multidifusión inválida"
@ -1594,10 +1597,6 @@ msgstr "No existe el archivo/directorio"
msgid "No timer available"
msgstr "No hay temporizador disponible"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "Falla en la aserción del firmware del dispositivo Nordic."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "El firmware del sistema Nordic no tiene memoria"
@ -2064,62 +2063,22 @@ msgid "Temperature read timed out"
msgstr "Lectura de temperatura expirada"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr "El boton BOOT fur presionado durante el arranque.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
"El montículo de CircuitPython está corrupto porque la pila era muy pequeña.\n"
"Aumente el tamaño de pila si sabe como. De lo contrario:"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr "El boton SW38 fue presionado durante el arranque.\n"
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr "El boton de Volumen fue presionado durante el arranque.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"El módulo de `microcontroller` se usó para un arranque en modo seguro. "
"Presione reset para salir del modo seguro."
"El modulo `microcontrolador` fue usado para inicializar en modo seguro."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr "La excepción fue la causa directa de la excepción siguiente:"
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr "El boton central fue presionado durante el arranque.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr "El boton izquierdo fue presionado durante el arranque.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "La longitud de rgb_pins debe ser 6, 12, 18, 24, o 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
"La corriente eléctrica de la microcontroladora bajó. Asegúrate que tu fuente "
"de poder provee\n"
"suficiente corriente para todo el circuito y presiones reset (luego de "
"expulsar CIRCUITPY)."
"La potencia calló. Asegúrese que está suministrando suficiente energía."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2137,6 +2096,10 @@ msgstr "El sample rate del sample no iguala al del mixer"
msgid "The sample's signedness does not match the mixer's"
msgstr "El signo del sample no iguala al del mixer"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr "Error gráve del firmware de un tercero."
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr "Este microcontrolador no soporta captura continua."
@ -2173,10 +2136,6 @@ msgstr ""
"Tiempo de espera demasiado largo: El tiempo máximo de espera es de %d "
"segundos"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr "Para salir, por favor reinicialice la tarjeta sin pedir safe mode."
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr "Demasiados canales en la muestra"
@ -2221,6 +2180,10 @@ msgstr "Desinicialización de UART"
msgid "UART init"
msgstr "Inicialización de UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr "Periférico UART en uso"
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr "Re-inicialización de UART"
@ -2268,6 +2231,10 @@ msgstr "UUID valor no es un str, int o byte buffer"
msgid "Unable to allocate buffers for signed conversion"
msgstr "No se pudieron asignar buffers para la conversión con signo"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr "Imposible de asignar el heap."
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "No se puede crear bloqueo"
@ -2483,16 +2450,53 @@ msgstr "Despertado por la alarma.\n"
msgid "Writes not supported on Characteristic"
msgstr "Escrituras no admitidas en Characteristic"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "Estás en modo seguro por la razón:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr "Usted presionó ambos botones al iniciar."
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr "Usted presionó el boton A al iniciar."
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr "Usted presionó el boton BOOT al iniciar"
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
"Has presionado el botón de reset durante el arranque. Presiones de nuevo "
"para salir del modo seguro."
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr "Usted presionó el boton SW38 al iniciar."
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr "Usted presionó el boton de Volumén al iniciar."
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr "Usted presionó el boton central al iniciar."
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr "Usted presionó el boton izquierdo al iniciar."
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr "Usted presionó el boton izquierdo al iniciar."
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr "[truncado debido a la longitud]"
#: py/objtype.c
msgid "__init__() should return None"
@ -4440,6 +4444,96 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Presente un problema con el contenido de su unidad CIRCUITPY en\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "Asignación del montículo mientras la VM no esta ejecutándose."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr ""
#~ "El dispositivo de arranque debe de ser el primer dispositivo (interfase "
#~ "#0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Ambos botones fueron prensados al inicio\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "Botón A fue presionado al inicio.\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython no puedo encontrar el montículo."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Choque contra el HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Error grave."
#~ msgid "Invalid memory access."
#~ msgstr "Acceso a memoria no válido."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Falla en la aserción del firmware del dispositivo Nordic."
#~ msgid "The BOOT button was pressed at start up.\n"
#~ msgstr "El boton BOOT fur presionado durante el arranque.\n"
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "El montículo de CircuitPython está corrupto porque la pila era muy "
#~ "pequeña.\n"
#~ "Aumente el tamaño de pila si sabe como. De lo contrario:"
#~ msgid "The SW38 button was pressed at start up.\n"
#~ msgstr "El boton SW38 fue presionado durante el arranque.\n"
#~ msgid "The VOLUME button was pressed at start up.\n"
#~ msgstr "El boton de Volumen fue presionado durante el arranque.\n"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "El módulo de `microcontroller` se usó para un arranque en modo seguro. "
#~ "Presione reset para salir del modo seguro."
#~ msgid "The central button was pressed at start up.\n"
#~ msgstr "El boton central fue presionado durante el arranque.\n"
#~ msgid "The left button was pressed at start up.\n"
#~ msgstr "El boton izquierdo fue presionado durante el arranque.\n"
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "La corriente eléctrica de la microcontroladora bajó. Asegúrate que tu "
#~ "fuente de poder provee\n"
#~ "suficiente corriente para todo el circuito y presiones reset (luego de "
#~ "expulsar CIRCUITPY)."
#~ msgid "To exit, please reset the board without requesting safe mode."
#~ msgstr "Para salir, por favor reinicialice la tarjeta sin pedir safe mode."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "Estás en modo seguro por la razón:\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "Has presionado el botón de reset durante el arranque. Presiones de nuevo "
#~ "para salir del modo seguro."
#~ msgid ""
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
#~ "documentation for instructions."

View File

@ -32,8 +32,20 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
@ -86,7 +98,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -440,7 +452,6 @@ msgid "All SPI peripherals are in use"
msgstr "Lahat ng SPI peripherals ay ginagamit"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
#, fuzzy
msgid "All UART peripherals are in use"
msgstr "Lahat ng I2C peripherals ginagamit"
@ -533,10 +544,6 @@ msgstr "Array values ay dapat single bytes."
msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -587,20 +594,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Ang parehong mga pin ay dapat na sumusuporta sa hardware interrupts"
@ -666,12 +666,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Ginagamit na ang DAC"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
#, fuzzy
msgid "Byte buffer must be 16 bytes."
@ -804,10 +798,6 @@ msgstr ""
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Masyadong mahaba ang Clock stretch"
@ -846,10 +836,6 @@ msgstr ""
msgid "Couldn't allocate decoder"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr ""
@ -944,6 +930,10 @@ msgstr ""
msgid "Error in regex"
msgstr "May pagkakamali sa REGEX"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1017,7 +1007,7 @@ msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1105,6 +1095,15 @@ msgstr ""
msgid "Hardware in use, try alternative pins"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "I/O operasyon sa saradong file"
@ -1221,6 +1220,10 @@ msgstr ""
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1269,10 +1272,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr "Mali ang format ng chunk size"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1561,10 +1560,6 @@ msgstr "Walang file/directory"
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2020,53 +2015,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2085,6 +2046,10 @@ msgstr "Ang sample rate ng sample ay hindi tugma sa mixer"
msgid "The sample's signedness does not match the mixer's"
msgstr "Ang signedness ng sample hindi tugma sa mixer"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2117,10 +2082,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2165,6 +2126,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2212,6 +2177,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr "Hindi ma-allocate ang buffers para sa naka-sign na conversion"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2419,13 +2388,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c

View File

@ -37,13 +37,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Veuillez signaler un problème avec le contenu de votre lecteur CIRCUITPY à "
"l'adresse\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -97,7 +105,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -450,7 +458,6 @@ msgid "All SPI peripherals are in use"
msgstr "Tous les périphériques SPI sont utilisés"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Tous les périphériques UART sont utilisés"
@ -542,12 +549,6 @@ msgstr "Les valeurs de la matrice doivent être des octets singuliers."
msgid "Attempt to allocate %d blocks"
msgstr "Tentative d'allocation de %d blocs"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
"Tentative d'allocation à la pile quand la Machine Virtuelle n'est pas en "
"exécution."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "La conversion audio n'est pas implémentée"
@ -600,20 +601,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "La dimension et la taille en bits de l'image doivent correspondre"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "L'appareil de démarrage doit être le premier (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "RX et TX requis pour le contrôle de flux"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Les deux boutons étaient pressés au démarrage.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Les deux broches doivent supporter les interruptions matérielles"
@ -679,12 +673,6 @@ msgstr "Les tampons doivent avoir la même taille"
msgid "Bus pin %d is already in use"
msgstr "La broche %d du bus est déjà utilisée"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Le bouton A était pressé au démarrage.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Le tampon doit être de 16 octets."
@ -827,10 +815,6 @@ msgstr "Ecriture sur 'CharacteristicBuffer' non fournie"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "Le code principal de CircuitPython s'est complètement planté. Oups !\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython n'as pu faire l'allocation de la pile."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Période de l'horloge trop longue"
@ -871,10 +855,6 @@ msgstr "Impossible de démarrer l'interruption, RX occupé"
msgid "Couldn't allocate decoder"
msgstr "Impossible d'allouer le décodeur"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Échec vers le HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Erreur d'initialisation du canal DAC"
@ -968,6 +948,10 @@ msgstr "Erreur dans le flot MIDI à la position %d"
msgid "Error in regex"
msgstr "Erreur dans l'expression régulière"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Erreur : Impossible de lier"
@ -1042,8 +1026,8 @@ msgid "Failed to write internal flash."
msgstr "Échec de l'écriture vers flash interne."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Erreurre fatale."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
@ -1137,6 +1121,15 @@ msgstr "Matériel occupé, essayez d'autres broches"
msgid "Hardware in use, try alternative pins"
msgstr "Matériel utilisé, essayez d'autres broches"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Opération d'E/S sur un fichier fermé"
@ -1263,6 +1256,10 @@ msgstr "Erreur interne #%d"
msgid "Internal watchdog timer expired."
msgstr "Le minuteur du watchdog interne a expiré."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "%q invalide"
@ -1311,10 +1308,6 @@ msgstr "data_pins[%d] invalide"
msgid "Invalid format chunk size"
msgstr "Taille de bloc de formatage invalide"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Accès à la mémoire invalide."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Adresse MAC multicast invalide"
@ -1607,10 +1600,6 @@ msgstr "Fichier/répertoire introuvable"
msgid "No timer available"
msgstr "Aucun minuteur disponible"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "Assertion échouée du logiciel système Nordic."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "Logiciel système Nordic n'a plus de mémoire"
@ -2077,62 +2066,20 @@ msgid "Temperature read timed out"
msgstr "Délais de lecture de température dépassée"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr "Le bouton BOOT était pressé au démarrage.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
"La pile de CircuitPython est corrompue parce que la pile était trop petite.\n"
"Augmentez la taille de la pile si vous savez comment. Sinon :"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr "Le bouton SW38 était pressé au démarrage.\n"
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr "Le bouton VOLUME était pressé au démarrage.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"Le module `microcontroller` a été utilisé pour démarrer en mode sûr. Pressez "
"reset pour quitter le mode sûr."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr "Le bouton central était pressé au démarrage.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr "Le bouton gauche était pressé au démarrage.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "La taille de rgb_pins doit être 6, 12, 18, 24 ou 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
"L'alimentation du microcontrôleur a diminué. Veillez à ce que votre "
"alimentation fournisse\n"
"assez de puissance pour tout le circuit, puis appuyez sur 'reset' (après "
"avoir éjecté CIRCUITPY)."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2151,6 +2098,10 @@ msgstr "L'échantillonage de l'échantillon ne correspond pas à celui du mixer"
msgid "The sample's signedness does not match the mixer's"
msgstr "Le signe de l'échantillon ne correspond pas à celui du mixer"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr "Ce microcontrôleur ne support pas la capture continue."
@ -2185,10 +2136,6 @@ msgstr "L'heure est dans le passé."
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr "Le délai est trop long : le délai maximal est de %d secondes"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr "Pour le quitter, redémarrez sans demander le mode sans-échec."
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr "Trop de canaux dans l'échantillon"
@ -2233,6 +2180,10 @@ msgstr "Dé-initialisation du UART"
msgid "UART init"
msgstr "Initialisation UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr "Ré-initialisation du UART"
@ -2284,6 +2235,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr "Impossible d'allouer des tampons pour une conversion signée"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Impossible de créer un verrou ('lock')"
@ -2501,16 +2456,53 @@ msgstr "Réveil par alarme.\n"
msgid "Writes not supported on Characteristic"
msgstr "Écritures non supporté vers les Characteristic"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "Vous êtres en mode sûr parce que :\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
"Vous avez pressé le bouton reset pendant le démarrage. Pressez-le à nouveau "
"pour sortir du mode sûr."
#: py/objtype.c
msgid "__init__() should return None"
@ -4467,6 +4459,97 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Veuillez signaler un problème avec le contenu de votre lecteur CIRCUITPY "
#~ "à l'adresse\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr ""
#~ "Tentative d'allocation à la pile quand la Machine Virtuelle n'est pas en "
#~ "exécution."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "L'appareil de démarrage doit être le premier (interface #0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Les deux boutons étaient pressés au démarrage.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "Le bouton A était pressé au démarrage.\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython n'as pu faire l'allocation de la pile."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Échec vers le HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Erreurre fatale."
#~ msgid "Invalid memory access."
#~ msgstr "Accès à la mémoire invalide."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Assertion échouée du logiciel système Nordic."
#~ msgid "The BOOT button was pressed at start up.\n"
#~ msgstr "Le bouton BOOT était pressé au démarrage.\n"
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "La pile de CircuitPython est corrompue parce que la pile était trop "
#~ "petite.\n"
#~ "Augmentez la taille de la pile si vous savez comment. Sinon :"
#~ msgid "The SW38 button was pressed at start up.\n"
#~ msgstr "Le bouton SW38 était pressé au démarrage.\n"
#~ msgid "The VOLUME button was pressed at start up.\n"
#~ msgstr "Le bouton VOLUME était pressé au démarrage.\n"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "Le module `microcontroller` a été utilisé pour démarrer en mode sûr. "
#~ "Pressez reset pour quitter le mode sûr."
#~ msgid "The central button was pressed at start up.\n"
#~ msgstr "Le bouton central était pressé au démarrage.\n"
#~ msgid "The left button was pressed at start up.\n"
#~ msgstr "Le bouton gauche était pressé au démarrage.\n"
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "L'alimentation du microcontrôleur a diminué. Veillez à ce que votre "
#~ "alimentation fournisse\n"
#~ "assez de puissance pour tout le circuit, puis appuyez sur 'reset' (après "
#~ "avoir éjecté CIRCUITPY)."
#~ msgid "To exit, please reset the board without requesting safe mode."
#~ msgstr "Pour le quitter, redémarrez sans demander le mode sans-échec."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "Vous êtres en mode sûr parce que :\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "Vous avez pressé le bouton reset pendant le démarrage. Pressez-le à "
#~ "nouveau pour sortir du mode sûr."
#~ msgid ""
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
#~ "documentation for instructions."

View File

@ -31,8 +31,20 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
@ -85,7 +97,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -438,7 +450,6 @@ msgid "All SPI peripherals are in use"
msgstr ""
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr ""
@ -530,10 +541,6 @@ msgstr ""
msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -582,20 +589,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -661,12 +661,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr ""
@ -797,10 +791,6 @@ msgstr ""
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr ""
@ -839,10 +829,6 @@ msgstr ""
msgid "Couldn't allocate decoder"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr ""
@ -934,6 +920,10 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1007,7 +997,7 @@ msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1095,6 +1085,15 @@ msgstr ""
msgid "Hardware in use, try alternative pins"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr ""
@ -1209,6 +1208,10 @@ msgstr ""
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1257,10 +1260,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1549,10 +1548,6 @@ msgstr ""
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2004,53 +1999,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2069,6 +2030,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2101,10 +2066,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2149,6 +2110,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2196,6 +2161,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2401,13 +2370,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c

View File

@ -34,12 +34,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Per favore, segnala il problema con il contenuto del tuo CIRCUITPY a\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -92,7 +101,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -446,7 +455,6 @@ msgid "All SPI peripherals are in use"
msgstr "Tutte le periferiche SPI sono in uso"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
#, fuzzy
msgid "All UART peripherals are in use"
msgstr "Tutte le periferiche I2C sono in uso"
@ -539,10 +547,6 @@ msgstr "I valori dell'Array dovrebbero essere bytes singoli."
msgid "Attempt to allocate %d blocks"
msgstr "Provo ad allocare %d blocchi"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -594,20 +598,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Sia RX che TX richiedono il controllo del flow"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Entrambi i pin devono supportare gli interrupt hardware"
@ -673,12 +670,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Bus pin %d è già in uso"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "I buffer byte devono essere di almeno 16 bytes."
@ -810,10 +801,6 @@ msgstr "CharacteristicBuffer scritura non dato"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Orologio e troppo allungato"
@ -852,10 +839,6 @@ msgstr ""
msgid "Couldn't allocate decoder"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr ""
@ -949,6 +932,10 @@ msgstr ""
msgid "Error in regex"
msgstr "Errore nella regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1022,7 +1009,7 @@ msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1110,6 +1097,15 @@ msgstr ""
msgid "Hardware in use, try alternative pins"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "operazione I/O su file chiuso"
@ -1226,6 +1222,10 @@ msgstr ""
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1274,10 +1274,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1567,10 +1563,6 @@ msgstr "Nessun file/directory esistente"
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2030,53 +2022,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2095,6 +2053,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2127,10 +2089,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2175,6 +2133,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2222,6 +2184,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr "Ipossibilitato ad allocare buffer per la conversione con segno"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2429,13 +2395,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4390,6 +4395,15 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Per favore, segnala il problema con il contenuto del tuo CIRCUITPY a\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Expected a %q"
#~ msgstr "Atteso un %q"

View File

@ -37,12 +37,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"CIRCUITPYドライブの内容を添えて問題を以下で報告してください\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -94,7 +103,7 @@ msgstr "%dアドレスピン、%dRGBピン、%dタイルは%dの高さを指示
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
#, fuzzy
msgid "%q"
msgstr "%q"
@ -448,7 +457,6 @@ msgid "All SPI peripherals are in use"
msgstr "全てのSPI周辺機器が使用中"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "全てのUART周辺機器が使用中"
@ -540,10 +548,6 @@ msgstr "Arrayの各値は1バイトでなければなりません"
msgid "Attempt to allocate %d blocks"
msgstr "%d個のブロックの確保を試みました"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -594,20 +598,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "フロー制御のためRXとTXの両方が必要"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "両方のピンにハードウェア割り込み対応が必要"
@ -673,12 +670,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Busピン%dはすでに使用中"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "バッファは16バイトでなければなりません"
@ -811,10 +802,6 @@ msgstr ""
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "CircuitPythonのコアコードが激しくクラッシュしました。おっと\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPythonはヒープを確保できませんでした"
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "クロックのストレッチが長すぎ"
@ -853,10 +840,6 @@ msgstr "割り込みをスタートできません。RXビジー"
msgid "Couldn't allocate decoder"
msgstr "デコーダを確保できません"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "クラッシュしてHardFault_Handlerに入りました"
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "DACチャネル初期化エラー"
@ -948,6 +931,10 @@ msgstr ""
msgid "Error in regex"
msgstr "正規表現にエラーがあります"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1021,7 +1008,7 @@ msgid "Failed to write internal flash."
msgstr "内部フラッシュ書き込みに失敗"
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1109,6 +1096,15 @@ msgstr "ハードウェアビジー。代替のピンを試してください"
msgid "Hardware in use, try alternative pins"
msgstr "ハードウェア使用中。代わりのピンを試してください"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "閉じられたファイルへのI/O操作"
@ -1225,6 +1221,10 @@ msgstr "内部エラー #%d"
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "不正な %q"
@ -1273,10 +1273,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr "フォーマットチャンクのサイズが不正"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "不正なメモリアクセス"
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1565,10 +1561,6 @@ msgstr "指定されたファイル/ディレクトリはありません"
msgid "No timer available"
msgstr "利用できるタイマーなし"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2023,53 +2015,19 @@ msgid "Temperature read timed out"
msgstr "温度読み取りがタイムアウトしました"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2088,6 +2046,10 @@ msgstr "サンプルレートがサンプルとミキサーで一致しません
msgid "The sample's signedness does not match the mixer's"
msgstr "符号の有無がサンプルとミキサーで一致しません"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2120,10 +2082,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr "タイムアウトが長すぎです。最大のタイムアウト長は%d秒"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2168,6 +2126,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2216,6 +2178,10 @@ msgstr "UUIDの値がstr, int, bufferのいずれでもありません"
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2421,13 +2387,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4366,6 +4371,24 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "CIRCUITPYドライブの内容を添えて問題を以下で報告してください\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPythonはヒープを確保できませんでした"
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "クラッシュしてHardFault_Handlerに入りました"
#~ msgid "Invalid memory access."
#~ msgstr "不正なメモリアクセス"
#~ msgid "Expected a %q"
#~ msgstr "%qが必要"

View File

@ -32,8 +32,20 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
@ -86,7 +98,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -439,7 +451,6 @@ msgid "All SPI peripherals are in use"
msgstr "사용중인 모든 SPI주변 기기"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "사용중인 모든 UART주변 기기"
@ -531,10 +542,6 @@ msgstr ""
msgid "Attempt to allocate %d blocks"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -585,20 +592,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr ""
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr ""
@ -664,12 +664,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "잘못된 크기의 버퍼. 16 바이트 여야합니다."
@ -800,10 +794,6 @@ msgstr ""
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr ""
@ -842,10 +832,6 @@ msgstr ""
msgid "Couldn't allocate decoder"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr ""
@ -937,6 +923,10 @@ msgstr ""
msgid "Error in regex"
msgstr "Regex에 오류가 있습니다."
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1010,7 +1000,7 @@ msgid "Failed to write internal flash."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1098,6 +1088,15 @@ msgstr ""
msgid "Hardware in use, try alternative pins"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr ""
@ -1212,6 +1211,10 @@ msgstr ""
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr ""
@ -1260,10 +1263,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr "형식 청크 크기가 잘못되었습니다"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1552,10 +1551,6 @@ msgstr ""
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2007,53 +2002,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2072,6 +2033,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2104,10 +2069,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2152,6 +2113,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2200,6 +2165,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2405,13 +2374,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c

View File

@ -31,12 +31,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Meld een probleem met de inhoud van de CIRCUITPY drive op:\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -88,7 +97,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -441,7 +450,6 @@ msgid "All SPI peripherals are in use"
msgstr "Alle SPI peripherals zijn in gebruik"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Alle UART peripherals zijn in gebruik"
@ -533,10 +541,6 @@ msgstr "Array waardes moet enkele bytes zijn."
msgid "Attempt to allocate %d blocks"
msgstr "Poging om %d blokken toe te wijzen"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -587,20 +591,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "RX en TX zijn beide vereist voor stroomregeling"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Beide pinnen moeten hardware interrupts ondersteunen"
@ -666,12 +663,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Bus pin %d al in gebruik"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Byte buffer moet 16 bytes zijn."
@ -803,10 +794,6 @@ msgstr "CharacteristicBuffer schrijven is niet beschikbaar"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "CircuitPython core code is hard gecrashed. Ojee!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython kon het heap geheugen niet toewijzen."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Clock stretch is te lang"
@ -847,10 +834,6 @@ msgstr "Kan interrupt niet starten, RX is bezig"
msgid "Couldn't allocate decoder"
msgstr "Kan decoder niet alloceren"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Crash naar de HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "DAC kanaal Init Fout"
@ -942,6 +925,10 @@ msgstr ""
msgid "Error in regex"
msgstr "Fout in regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1015,7 +1002,7 @@ msgid "Failed to write internal flash."
msgstr "Schrijven naar interne flash mislukt."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1104,6 +1091,15 @@ msgstr "Hardware bezig, probeer alternatieve pinnen"
msgid "Hardware in use, try alternative pins"
msgstr "Hardware in gebruik, probeer alternatieve pinnen"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "I/O actie op gesloten bestand"
@ -1220,6 +1216,10 @@ msgstr "Interne fout #%d"
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Ongeldige %q"
@ -1268,10 +1268,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr "Ongeldig formaat stuk grootte"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Ongeldig geheugen adres."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1560,10 +1556,6 @@ msgstr "Bestand/map bestaat niet"
msgid "No timer available"
msgstr "Geen timer beschikbaar"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2028,53 +2020,19 @@ msgid "Temperature read timed out"
msgstr "Temperatuur lees time-out"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "De lengte van rgb_pins moet 6, 12, 18, 24 of 30 zijn"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2093,6 +2051,10 @@ msgstr "De sample's sample rate komt niet overeen met die van de mixer"
msgid "The sample's signedness does not match the mixer's"
msgstr "De sample's signature komt niet overeen met die van de mixer"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2125,10 +2087,6 @@ msgstr "Tijdstip ligt in het verleden."
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr "Time-out is te lang. Maximale time-out lengte is %d seconden"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2173,6 +2131,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2220,6 +2182,10 @@ msgstr "UUID waarde is geen str, int, of byte buffer"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Niet in staat buffers voor gesigneerde conversie te alloceren"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Kan vergrendeling niet maken"
@ -2431,13 +2397,52 @@ msgstr "Gewekt door alarm.\n"
msgid "Writes not supported on Characteristic"
msgstr "Schrijven niet ondersteund op Characteristic"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4376,6 +4381,24 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Meld een probleem met de inhoud van de CIRCUITPY drive op:\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython kon het heap geheugen niet toewijzen."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Crash naar de HardFault_Handler."
#~ msgid "Invalid memory access."
#~ msgstr "Ongeldig geheugen adres."
#~ msgid "Expected a %q"
#~ msgstr "Verwacht een %q"

View File

@ -33,12 +33,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Zgłoś problem z zawartością dysku CIRCUITPY pod adresem\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -90,7 +99,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr ""
@ -443,7 +452,6 @@ msgid "All SPI peripherals are in use"
msgstr "Wszystkie peryferia SPI w użyciu"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Wszystkie peryferia UART w użyciu"
@ -535,10 +543,6 @@ msgstr "Wartości powinny być bajtami."
msgid "Attempt to allocate %d blocks"
msgstr "Próba przydzielenia %d bloków"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
@ -589,20 +593,13 @@ msgid "Bitmap size and bits per value must match"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Do kontroli przepływu wymagane są zarówno RX, jak i TX"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Obie nóżki muszą wspierać przerwania sprzętowe"
@ -668,12 +665,6 @@ msgstr ""
msgid "Bus pin %d is already in use"
msgstr "Nóżka magistrali %d jest w użyciu"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Bufor musi mieć 16 bajtów."
@ -804,10 +795,6 @@ msgstr "Pisanie do CharacteristicBuffer niewspierane"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython nie mógł przydzielić sterty."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Rozciągnięcie zegara zbyt duże"
@ -848,10 +835,6 @@ msgstr "Nie można rozpocząć przerwania, RX jest zajęty"
msgid "Couldn't allocate decoder"
msgstr "Nie udało się przydzielić dekodera"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Błąd inicjalizacji kanału DAC"
@ -943,6 +926,10 @@ msgstr ""
msgid "Error in regex"
msgstr "Błąd w regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -1016,7 +1003,7 @@ msgid "Failed to write internal flash."
msgstr "Nie udało się zapisać wewnętrznej pamięci flash."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1104,6 +1091,15 @@ msgstr "Sprzęt zajęty, wypróbuj alternatywne piny"
msgid "Hardware in use, try alternative pins"
msgstr "Sprzęt w użyciu, wypróbuj alternatywne piny"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Operacja I/O na zamkniętym pliku"
@ -1220,6 +1216,10 @@ msgstr "Błąd wewnętrzny #%d"
msgid "Internal watchdog timer expired."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Nieprawidłowe %q"
@ -1268,10 +1268,6 @@ msgstr ""
msgid "Invalid format chunk size"
msgstr "Zła wielkość fragmentu formatu"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Nieprawidłowy dostęp do pamięci."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr ""
@ -1560,10 +1556,6 @@ msgstr "Brak pliku/katalogu"
msgid "No timer available"
msgstr "Brak dostępnego timera"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2015,53 +2007,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2080,6 +2038,10 @@ msgstr "Sample rate nie pasuje do miksera"
msgid "The sample's signedness does not match the mixer's"
msgstr "Znak nie pasuje do miksera"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2112,10 +2074,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2160,6 +2118,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2207,6 +2169,10 @@ msgstr "UUID nie jest typu str, int lub bytes"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Nie udała się alokacja buforów do konwersji ze znakiem"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2412,13 +2378,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4352,6 +4357,21 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Zgłoś problem z zawartością dysku CIRCUITPY pod adresem\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython nie mógł przydzielić sterty."
#~ msgid "Invalid memory access."
#~ msgstr "Nieprawidłowy dostęp do pamięci."
#~ msgid "Expected a %q"
#~ msgstr "Oczekiwano %q"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2023-02-03 04:15+0000\n"
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@ -35,12 +35,28 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
"\n"
"Registre um problema com o conteúdo do seu controlador no CIRCUITPY\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Relate o problema com seu programa em https://github.com/adafruit/"
"circuitpython/issues."
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
"\n"
"Pressione reset para sair do modo de segurança.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
"\n"
"Você está no modo de segurança porque:\n"
#: py/obj.c
msgid " File \"%q\""
@ -94,7 +110,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -451,7 +467,6 @@ msgid "All SPI peripherals are in use"
msgstr "Todos os periféricos SPI estão em uso"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Todos os periféricos UART estão em uso"
@ -543,11 +558,6 @@ msgstr "Os valores das matrizes devem ser bytes simples."
msgid "Attempt to allocate %d blocks"
msgstr "Tentativa de alocar %d blocos"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr ""
"Tentativa de alocação das pilhas quando o VM não estiver em funcionamento."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "A conversão de áudio ainda não foi implementada"
@ -600,22 +610,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "O tamanho do bitmap e os bits por valor devem coincidir"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr ""
"O dispositivo de inicialização deve ser o primeiro dispositivo (interface "
"#0)."
msgid "Boot device must be first (interface #0)."
msgstr "O dispositivo de inicialização deve ser o primeiro (interface #0)."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Ambos os RX e TX são necessários para o controle do fluxo"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Ambos os botões foram pressionados na inicialização.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Ambos os pinos devem suportar interrupções de hardware"
@ -681,12 +682,6 @@ msgstr "Os buffers devem ter o mesmo tamanho"
msgid "Bus pin %d is already in use"
msgstr "O pino bus %d já está em uso"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "O botão A foi pressionado na inicialização.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "O buffer deve ter 16 bytes."
@ -823,10 +818,6 @@ msgstr "Escrita CharacteristicBuffer não informada"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "O núcleo principal do CircuitPython falhou feio. Ops!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "O CircuitPython não conseguiu alocar o heap."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Clock se estendeu por tempo demais"
@ -866,10 +857,6 @@ msgstr "Não foi possível iniciar a interrupção, RX ocupado"
msgid "Couldn't allocate decoder"
msgstr "Não foi possível alocar o decodificador"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Falha no HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Erro de Inicialização do Canal DAC"
@ -961,6 +948,10 @@ msgstr "Houve um erro no fluxo MIDI na posição %d"
msgid "Error in regex"
msgstr "Erro no regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr "Erro no safemode.py."
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Erro: Falha na vinculação"
@ -1034,8 +1025,8 @@ msgid "Failed to write internal flash."
msgstr "Falha ao gravar o flash interno."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Erro fatal."
msgid "Fault detected by hardware."
msgstr "Falha detectada pelo hardware."
#: py/moduerrno.c
msgid "File exists"
@ -1126,6 +1117,17 @@ msgstr "O hardware está ocupado, tente os pinos alternativos"
msgid "Hardware in use, try alternative pins"
msgstr "O hardware está em uso, tente os pinos alternativos"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr "Alocação dinâmica de variáveis quando a VM não estiver funcionando."
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
"A área de alocação dinâmica de variáveis foi corrompida porque a pilha de "
"funções era muito pequena. Aumente o tamanho da pilha."
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Operação I/O no arquivo fechado"
@ -1248,6 +1250,10 @@ msgstr "Erro interno #%d"
msgid "Internal watchdog timer expired."
msgstr "O temporizador do watchdog interno expirou."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr "Erro de interrupção."
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "%q Inválido"
@ -1296,10 +1302,6 @@ msgstr "data_pins[%d] inválido"
msgid "Invalid format chunk size"
msgstr "Tamanho do pedaço de formato inválido"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "O acesso da memória é inválido."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Endereço MAC multicast inválido"
@ -1590,10 +1592,6 @@ msgstr "Este arquivo/diretório não existe"
msgid "No timer available"
msgstr "Não há um temporizador disponível"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "Declaração de falha do firmware do sistema nórdico."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "O firmware do sistema nórdico está sem memória"
@ -2060,63 +2058,22 @@ msgid "Temperature read timed out"
msgstr "A leitura da temperatura expirou"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr "O botão BOOT foi pressionado na inicialização.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
"A área de alocação dinâmica de variáveis (heap) do CircuitPython foi "
"corrompido pois a pilha era muito pequena.\n"
"Aumente o tamanho da pilha se souber como. Senão:"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr "O botão SW38 foi pressionado na inicialização.\n"
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr "O botão VOLUME foi pressionado na inicialização.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"O módulo `microcontrolador` foi utilizado para iniciar em modo seguro. "
"Pressione reset para encerrar do modo de segurança."
"O módulo `microcontroller` foi usado para inicializar em modo de segurança."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr "A exceção acima foi a causa direta da seguinte exceção:"
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr "O botão central foi pressionado na inicialização.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr "O botão esquerdo foi pressionado na inicialização.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "O comprimento dos rgb_pins devem ser 6, 12, 18, 24, ou 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
"O alimentação do micro controlador diminuiu. Certifique-se de que a sua "
"fonte de alimentação fornece\n"
"corrente suficiente para todo o circuito e pressione reset (depois de ejetar "
"o CIRCUITPY)."
"A alimentação foi reduzida. Certifique-se de fornecer energia suficiente."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2134,6 +2091,10 @@ msgstr "A taxa de amostragem da amostra não coincide com a do mixer"
msgid "The sample's signedness does not match the mixer's"
msgstr "A amostragem \"signedness\" não coincide com a do mixer"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr "Erro fatal no firmware de terceiros."
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr "Este microcontrolador não tem suporte para captura contínua."
@ -2170,10 +2131,6 @@ msgstr ""
"O tempo limite é long demais: O comprimento máximo do tempo limite é de %d "
"segundos"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr "Para sair, reinicie a placa sem solicitar o modo de segurança."
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr "Muitos canais na amostra"
@ -2218,6 +2175,10 @@ msgstr "descontinuar o início UART"
msgid "UART init"
msgstr "inicialização do UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr "Periférico UART em uso"
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr "Reinicialização do UART"
@ -2266,6 +2227,10 @@ msgstr "O valor UUID não é um buffer str, int ou byte"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Não é possível alocar buffers para conversão assinada"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr "Não é possível alocar a área de alocação dinâmica de variáveis."
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Não é possível criar um lock"
@ -2482,16 +2447,53 @@ msgstr "Foi despertado através do alarme.\n"
msgid "Writes not supported on Characteristic"
msgstr "A escrita não é compatível na Característica"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "Você está no modo de segurança pois:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr "Você pressionou os dois botões durante a inicialização."
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr "Você pressionou o botão A na inicialização."
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr "Você pressionou o botão BOOT na inicialização"
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
"Você pressionou o botão reset durante a inicialização. Pressione-o novamente "
"para sair do modo de segurança."
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr "Você pressionou o botão SW38 na inicialização."
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr "Você pressionou o botão VOLUME na inicialização."
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr "Você pressionou o botão central na inicialização."
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr "Você pressionou o botão esquerdo na inicialização."
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr "Você pressionou o botão de reinicialização durante a inicialização."
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr "[truncado devido ao comprimento]"
#: py/objtype.c
msgid "__init__() should return None"
@ -4444,6 +4446,97 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Registre um problema com o conteúdo do seu controlador no CIRCUITPY\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr ""
#~ "Tentativa de alocação das pilhas quando o VM não estiver em funcionamento."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr ""
#~ "O dispositivo de inicialização deve ser o primeiro dispositivo (interface "
#~ "#0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Ambos os botões foram pressionados na inicialização.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "O botão A foi pressionado na inicialização.\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "O CircuitPython não conseguiu alocar o heap."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Falha no HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Erro fatal."
#~ msgid "Invalid memory access."
#~ msgstr "O acesso da memória é inválido."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Declaração de falha do firmware do sistema nórdico."
#~ msgid "The BOOT button was pressed at start up.\n"
#~ msgstr "O botão BOOT foi pressionado na inicialização.\n"
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "A área de alocação dinâmica de variáveis (heap) do CircuitPython foi "
#~ "corrompido pois a pilha era muito pequena.\n"
#~ "Aumente o tamanho da pilha se souber como. Senão:"
#~ msgid "The SW38 button was pressed at start up.\n"
#~ msgstr "O botão SW38 foi pressionado na inicialização.\n"
#~ msgid "The VOLUME button was pressed at start up.\n"
#~ msgstr "O botão VOLUME foi pressionado na inicialização.\n"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "O módulo `microcontrolador` foi utilizado para iniciar em modo seguro. "
#~ "Pressione reset para encerrar do modo de segurança."
#~ msgid "The central button was pressed at start up.\n"
#~ msgstr "O botão central foi pressionado na inicialização.\n"
#~ msgid "The left button was pressed at start up.\n"
#~ msgstr "O botão esquerdo foi pressionado na inicialização.\n"
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "O alimentação do micro controlador diminuiu. Certifique-se de que a sua "
#~ "fonte de alimentação fornece\n"
#~ "corrente suficiente para todo o circuito e pressione reset (depois de "
#~ "ejetar o CIRCUITPY)."
#~ msgid "To exit, please reset the board without requesting safe mode."
#~ msgstr "Para sair, reinicie a placa sem solicitar o modo de segurança."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "Você está no modo de segurança pois:\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "Você pressionou o botão reset durante a inicialização. Pressione-o "
#~ "novamente para sair do modo de segurança."
#~ msgid ""
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
#~ "documentation for instructions."

View File

@ -37,13 +37,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Пожалуйста, сообщите о проблеме, приложив содержимое вашего диска CIRCUITPY "
"на\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -96,7 +104,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -449,7 +457,6 @@ msgid "All SPI peripherals are in use"
msgstr "Все периферийные устройства SPI уже используются"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Все периферийные устройства UART уже используются"
@ -541,10 +548,6 @@ msgstr "Значения массива должны быть однобайто
msgid "Attempt to allocate %d blocks"
msgstr "Попытка выделения %d блоков"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Попытка выделения heap пока виртуальная машина не запущена."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Преобразование звука не реализовано"
@ -599,20 +602,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "Размер bitmap и количество бит-на-значение должны совпадать"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "Загрузочное устройство должно быть первым устройством (интерфейс #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Для управления потоком требуется как RX, так и TX"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Обе кнопки были нажаты при загрузке.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Оба пина должны поддерживать аппаратные прерывания"
@ -678,12 +674,6 @@ msgstr "Буферы должны быть одинакового размера
msgid "Bus pin %d is already in use"
msgstr "Пин шины %d уже используется"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Кнопка A была нажата при загрузке\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Буфер байтов должен быть размером 16 байтам."
@ -824,10 +814,6 @@ msgstr "Запись в CharacteristicBuffer не предусмотрена"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "Код ядра CircuitPython сильно крашнулся. Упс!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython не смог выделить heap."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Длинна такта слишком велика"
@ -868,10 +854,6 @@ msgstr "Не удалось запустить прерывание, RX заня
msgid "Couldn't allocate decoder"
msgstr "Не удалось выделить место для декодера"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Крашнулся в HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Ошибка инициализации канала ЦАП"
@ -967,6 +949,10 @@ msgstr "Ошибка в MIDI-потоке на позиции %d"
msgid "Error in regex"
msgstr "Ошибка в регулярном выражении(regex)"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Ошибка: Сбой привязки"
@ -1040,8 +1026,8 @@ msgid "Failed to write internal flash."
msgstr "Не удалось записать внутреннюю флэш-память."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Фатальная ошибка."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
@ -1136,6 +1122,15 @@ msgstr "Оборудование занято, попробуйте исполь
msgid "Hardware in use, try alternative pins"
msgstr "Оборудование используется, попробуйте использовать другие пины"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Операция ввода-вывода на закрытом файле"
@ -1258,6 +1253,10 @@ msgstr "Внутренняя ошибка #%d"
msgid "Internal watchdog timer expired."
msgstr "Внутренний сторожевой таймер истек."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Недопустимый %q"
@ -1306,10 +1305,6 @@ msgstr "Неверный data_pins[%d]"
msgid "Invalid format chunk size"
msgstr "Неверный размер блока формата"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Неправильный доступ к памяти."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Неверный MAC-адрес multicast"
@ -1603,11 +1598,6 @@ msgstr "Файл/директория не существует"
msgid "No timer available"
msgstr "Нет доступного таймера"
#: supervisor/shared/safe_mode.c
#, fuzzy
msgid "Nordic system firmware failure assertion."
msgstr "Сбой системной прошивки Nordic (assertion)."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2070,53 +2060,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "Длина rgb_pins должна быть 6, 12, 18, 24 или 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2135,6 +2091,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2169,10 +2129,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2217,6 +2173,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2264,6 +2224,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2469,13 +2433,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4407,6 +4410,45 @@ msgstr "zi должно быть типа float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi должен иметь форму (n_section, 2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Пожалуйста, сообщите о проблеме, приложив содержимое вашего диска "
#~ "CIRCUITPY на\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "Попытка выделения heap пока виртуальная машина не запущена."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr ""
#~ "Загрузочное устройство должно быть первым устройством (интерфейс #0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Обе кнопки были нажаты при загрузке.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "Кнопка A была нажата при загрузке\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython не смог выделить heap."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Крашнулся в HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Фатальная ошибка."
#~ msgid "Invalid memory access."
#~ msgstr "Неправильный доступ к памяти."
#, fuzzy
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Сбой системной прошивки Nordic (assertion)."
#~ msgid "%q must be of type %q"
#~ msgstr "%q должно быть типа %q"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2023-01-29 16:16+0000\n"
"PO-Revision-Date: 2023-02-20 03:39+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -35,12 +35,28 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
"\n"
"Vänligen skapa ett ärende med innehållet i din CIRCUITPY-enhet på\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Skicka in ett ärende med ditt program till https://github.com/adafruit/"
"circuitpython/issues."
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Press reset to exit safe mode.\n"
msgstr ""
"\n"
"Tryck reset för att lämna säkert läge.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
"\n"
"Du är i säkert läge eftersom:\n"
#: py/obj.c
msgid " File \"%q\""
@ -93,7 +109,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -448,7 +464,6 @@ msgid "All SPI peripherals are in use"
msgstr "All SPI-kringutrustning används"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Alla UART-kringutrustning används"
@ -540,10 +555,6 @@ msgstr "Matrisvärden ska bestå av enstaka bytes."
msgid "Attempt to allocate %d blocks"
msgstr "Försök att tilldela %d block"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "Försök till heap-allokering när den virtuella maskinen inte är igång."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Ljudkonvertering inte implementerad"
@ -594,20 +605,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "Bitmappstorlek och bitar per värde måste överensstämma"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "Startenheten måste vara den första enheten (gränssnitt #0)."
msgid "Boot device must be first (interface #0)."
msgstr "Boot-enhet måste vara först (gränssnitt #0)."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Både RX och TX krävs för handskakning"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Båda knapparna trycktes ned vid start.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Båda pinnarna måste stödja maskinvaruavbrott"
@ -673,12 +677,6 @@ msgstr "Buffertarna måste ha samma storlek"
msgid "Bus pin %d is already in use"
msgstr "Busspinne %d används redan"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Knapp A trycktes ned vid start.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Byte-buffert måste vara 16 byte."
@ -811,10 +809,6 @@ msgstr "Skrivning för CharacteristicBuffer är inte tillhandahållen"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "CircuitPython kärnkod kraschade hårt. Hoppsan!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython kunde inte allokera heap."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Klockförlängning för lång"
@ -855,10 +849,6 @@ msgstr "Det gick inte att starta avbrott, RX upptagen"
msgid "Couldn't allocate decoder"
msgstr "Det gick inte att allokera avkodaren"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "Krasch in i HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "Initieringsfel för DAC-kanal"
@ -951,6 +941,10 @@ msgstr "Fel i MIDI-ström vid position %d"
msgid "Error in regex"
msgstr "Fel i regex"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr "Fel i safemode.py."
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Fel: Bind misslyckades"
@ -1024,8 +1018,8 @@ msgid "Failed to write internal flash."
msgstr "Det gick inte att skriva till intern flash."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "Fatalt fel."
msgid "Fault detected by hardware."
msgstr "Fel upptäckt av hårdvara."
#: py/moduerrno.c
msgid "File exists"
@ -1114,6 +1108,15 @@ msgstr "Hårdvaran är upptagen, prova alternativa pinnar"
msgid "Hardware in use, try alternative pins"
msgstr "Hårdvaran används redan, prova alternativa pinnar"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr "Heap-allokering när VM inte körs."
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr "Heap skadades eftersom stacken var för liten. Öka stackstorlek."
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "I/O-operation på stängd fil"
@ -1232,6 +1235,10 @@ msgstr "Internt fel #%d"
msgid "Internal watchdog timer expired."
msgstr "Intern watchdog-timer har löpt ut."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr "Interrupt-fel."
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Ogiltig %q"
@ -1280,10 +1287,6 @@ msgstr "Ogiltig data_pins[%d]"
msgid "Invalid format chunk size"
msgstr "Ogiltig formatsegmentstorlek"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Ogiltig minnesåtkomst."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Ogiltig MAC-adress för multicast"
@ -1573,10 +1576,6 @@ msgstr "Ingen sådan fil/katalog"
msgid "No timer available"
msgstr "Ingen timer tillgänglig"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "Felaktigt tillstånd i Nordic systemfirmware."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "Nordic systemfirmware fick slut på minne"
@ -2040,62 +2039,20 @@ msgid "Temperature read timed out"
msgstr "Temperaturavläsning tog för lång tid"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr "BOOT-knappen trycktes ner vid start.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
"CircuitPython-heapen blev korrupt eftersom stacken är för liten.\n"
"Öka stackstorleken om du vet hur, eller om inte:"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr "SW38-knappen trycktes ned vid start.\n"
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr "VOLUME-knappen trycktes ned vid start.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"Modulen `microcontroller` användes för att starta upp i felsäkert läge. "
"Tryck på reset för att avsluta felsäkert läget."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr "Modulen `microcontroller` användes för att starta i felsäkert läge."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr "Ovanstående undantag var den direkta orsaken till följande undantag:"
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr "Mittknappen trycktes in vid start.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr "Den vänstra knappen trycktes ned vid start.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "Längden på rgb_pins vara 6, 12, 18, 24 eller 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgstr ""
"Mikrokontrollerns matningsspänning sjönk. Se till att strömförsörjningen "
"ger\n"
"tillräckligt med ström för hela kretsen och tryck på reset (efter utmatning "
"av CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr "Spänningen sjönk. Se till att du ger tillräckligt med ström."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2113,6 +2070,10 @@ msgstr "Samplingens frekvens matchar inte mixerns"
msgid "The sample's signedness does not match the mixer's"
msgstr "Samplingens signerad/osignerad stämmer inte med mixern"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr "Fel från firmware från tredje part."
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr "Den här mikrokontrollern stöder inte kontinuerlig insamling."
@ -2147,10 +2108,6 @@ msgstr "Tid har passerats."
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr "Åtgärden tog för lång tid: Max väntetid är %d sekunder"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr "För att avsluta, återställ kortet utan att begära säkert läge."
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr "För många kanaler i urvalet"
@ -2195,6 +2152,10 @@ msgstr "UART omstart"
msgid "UART init"
msgstr "UART start"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr "UART-enhet används redan"
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr "UART omstart"
@ -2242,6 +2203,10 @@ msgstr "UUID-värdet är inte str, int eller byte-buffert"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Det går inte att allokera buffert för signerad konvertering"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr "Kan inte allokera heap."
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Kan inte skapa lås"
@ -2455,16 +2420,53 @@ msgstr "Vaknade av larm.\n"
msgid "Writes not supported on Characteristic"
msgstr "Skrivning stöds inte på karaktäristik"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "Du är i felsäkert läge eftersom:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr "Du tryckte ner båda knapparna vid start."
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr "Du tryckte ner knapp A vid start."
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr "Du tryckte ner BOOT-knappen vid start"
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
"Du tryckte på resetknappen under uppstarten. Tryck igen för att avsluta "
"felsäkert läge."
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr "Du tryckte ned SW38-knappen vid start."
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr "Du tryckte ned VOLYM-knappen vid start."
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr "Du tryckte ned mittknappen vid start."
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr "Du tryckte ned vänster knapp vid start."
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr "Du tryckte på reset-knappen under uppstart."
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr "[trunkerad på grund av längd]"
#: py/objtype.c
msgid "__init__() should return None"
@ -2537,7 +2539,7 @@ msgstr "array har för många dimensioner"
#: extmod/ulab/code/ndarray.c
msgid "array is too big"
msgstr ""
msgstr "matrisen är för stor"
#: py/objarray.c shared-bindings/alarm/SleepMemory.c
#: shared-bindings/memorymap/AddressRange.c shared-bindings/nvm/ByteArray.c
@ -3796,7 +3798,7 @@ msgstr "endast mono stöds"
#: extmod/ulab/code/numpy/create.c
msgid "only ndarrays can be concatenated"
msgstr ""
msgstr "endast ndarrays kan sammanfogas"
#: ports/stm/common-hal/audiobusio/PDMIn.c
msgid "only oversample=64 is supported"
@ -4406,6 +4408,94 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Vänligen skapa ett ärende med innehållet i din CIRCUITPY-enhet på\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr ""
#~ "Försök till heap-allokering när den virtuella maskinen inte är igång."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "Startenheten måste vara den första enheten (gränssnitt #0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Båda knapparna trycktes ned vid start.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "Knapp A trycktes ned vid start.\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython kunde inte allokera heap."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "Krasch in i HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "Fatalt fel."
#~ msgid "Invalid memory access."
#~ msgstr "Ogiltig minnesåtkomst."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "Felaktigt tillstånd i Nordic systemfirmware."
#~ msgid "The BOOT button was pressed at start up.\n"
#~ msgstr "BOOT-knappen trycktes ner vid start.\n"
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "CircuitPython-heapen blev korrupt eftersom stacken är för liten.\n"
#~ "Öka stackstorleken om du vet hur, eller om inte:"
#~ msgid "The SW38 button was pressed at start up.\n"
#~ msgstr "SW38-knappen trycktes ned vid start.\n"
#~ msgid "The VOLUME button was pressed at start up.\n"
#~ msgstr "VOLUME-knappen trycktes ned vid start.\n"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "Modulen `microcontroller` användes för att starta upp i felsäkert läge. "
#~ "Tryck på reset för att avsluta felsäkert läget."
#~ msgid "The central button was pressed at start up.\n"
#~ msgstr "Mittknappen trycktes in vid start.\n"
#~ msgid "The left button was pressed at start up.\n"
#~ msgstr "Den vänstra knappen trycktes ned vid start.\n"
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "Mikrokontrollerns matningsspänning sjönk. Se till att strömförsörjningen "
#~ "ger\n"
#~ "tillräckligt med ström för hela kretsen och tryck på reset (efter "
#~ "utmatning av CIRCUITPY)."
#~ msgid "To exit, please reset the board without requesting safe mode."
#~ msgstr "För att avsluta, återställ kortet utan att begära säkert läge."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "Du är i felsäkert läge eftersom:\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "Du tryckte på resetknappen under uppstarten. Tryck igen för att avsluta "
#~ "felsäkert läge."
#~ msgid ""
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
#~ "documentation for instructions."

View File

@ -37,13 +37,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Lütfen, şu adrese CIRCUITPY sürücünüzün içerikleri ile beraber bir hata/konu "
"kaydı ekleyin\n"
"https://github.com/adafruit/circuitpython/issues\n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -97,7 +105,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -451,7 +459,6 @@ msgid "All SPI peripherals are in use"
msgstr "Tüm SPI çevre birimleri kullanımda"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "Tüm UART çevre birimleri kullanımda"
@ -543,10 +550,6 @@ msgstr "Dizi değerleri tekil bytelar olmalıdır."
msgid "Attempt to allocate %d blocks"
msgstr "%d bloğun ayrılması girişimi"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "VM çalışmazken heap'ten alan tahsis edilmeye çalışıldı."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "Ses dönüşümü implemente edilmedi"
@ -597,20 +600,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "Bitmap boyutu ve bit başına değer uyuşmalı"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "Önyükleme cihazı ilk cihaz olmalı (arayüz #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "Hem RX hem de TX akış kontrolü için gerekli"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "Başlatma sırasında her iki düğmeye de basıldı.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "Her iki pin de donanım kesintilerini desteklemelidir"
@ -676,12 +672,6 @@ msgstr "Arabellek boyutları aynı olmalı"
msgid "Bus pin %d is already in use"
msgstr "Veriyolu pini %d kullanımda"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "Başlatma sırasında A düğmesine basıldı.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Bit buffer'ı 16bit olmalı."
@ -813,10 +803,6 @@ msgstr "CharacteristicBuffer yazılmı sağlanmadı"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "CircuitPython kor kodu patladı. Haydaaa!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr ""
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "Saat uzatması çok uzun"
@ -855,10 +841,6 @@ msgstr "Kesinti başlatılamadı, RX kullanımda"
msgid "Couldn't allocate decoder"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr ""
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr ""
@ -950,6 +932,10 @@ msgstr "%d konumundaki MIDI akışında hata"
msgid "Error in regex"
msgstr "regex'te hata"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Hata: Bağlanamadı"
@ -1023,7 +1009,7 @@ msgid "Failed to write internal flash."
msgstr "Dahili flaş yazılamadı."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
@ -1115,6 +1101,15 @@ msgstr "Donanım meşgul, alternatif pinleri deneyin"
msgid "Hardware in use, try alternative pins"
msgstr "Donanım kullanımda, alternatif pinleri deneyin"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Kapalı dosyada I/O işlemi"
@ -1231,6 +1226,10 @@ msgstr "Dahili hata #%d"
msgid "Internal watchdog timer expired."
msgstr "Dahili bekçi zamanlayıcısının süresi doldu."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "Geçersiz %q"
@ -1280,10 +1279,6 @@ msgstr "Geçersiz veri_pini [%d]"
msgid "Invalid format chunk size"
msgstr "Geçersiz biçim yığın boyutu"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Geçersiz bellek erişimi."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "Geçersiz multicast MAC adresi"
@ -1572,10 +1567,6 @@ msgstr ""
msgid "No timer available"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr ""
@ -2030,53 +2021,19 @@ msgid "Temperature read timed out"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
#: shared-module/audiomixer/MixerVoice.c
@ -2095,6 +2052,10 @@ msgstr ""
msgid "The sample's signedness does not match the mixer's"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr ""
@ -2127,10 +2088,6 @@ msgstr ""
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr ""
@ -2175,6 +2132,10 @@ msgstr ""
msgid "UART init"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr ""
@ -2222,6 +2183,10 @@ msgstr ""
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr ""
@ -2427,13 +2392,52 @@ msgstr ""
msgid "Writes not supported on Characteristic"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
#: py/objtype.c
@ -4365,6 +4369,31 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Lütfen, şu adrese CIRCUITPY sürücünüzün içerikleri ile beraber bir hata/"
#~ "konu kaydı ekleyin\n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "VM çalışmazken heap'ten alan tahsis edilmeye çalışıldı."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "Önyükleme cihazı ilk cihaz olmalı (arayüz #0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "Başlatma sırasında her iki düğmeye de basıldı.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "Başlatma sırasında A düğmesine basıldı.\n"
#~ msgid "Invalid memory access."
#~ msgstr "Geçersiz bellek erişimi."
#~ msgid "%q must be of type %q"
#~ msgstr "%q, %q türünde olmalıdır"

View File

@ -37,12 +37,21 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Please file an issue with the contents of your CIRCUITPY drive at \n"
"https://github.com/adafruit/circuitpython/issues\n"
"Please file an issue with your program at https://github.com/adafruit/"
"circuitpython/issues."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"Qǐng tōngguò https://github.com/adafruit/circuitpython/issues\n"
"tíjiāo yǒuguān nín de CIRCUITPY qūdòngqì nèiróng de wèntí \n"
"Press reset to exit safe mode.\n"
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"\n"
"You are in safe mode because:\n"
msgstr ""
#: py/obj.c
msgid " File \"%q\""
@ -96,7 +105,7 @@ msgstr ""
#: ports/raspberrypi/common-hal/alarm/__init__.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#: ports/stm/common-hal/canio/Listener.c ports/stm/common-hal/rtc/RTC.c
msgid "%q"
msgstr "%q"
@ -450,7 +459,6 @@ msgid "All SPI peripherals are in use"
msgstr "suǒyǒu SPI wàishè dōu zài shǐyòng zhōng"
#: ports/espressif/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "All UART peripherals are in use"
msgstr "suǒyǒu UART wàishè dōu zài shǐyòng zhōng"
@ -542,10 +550,6 @@ msgstr "shùzǔ de zhí yīnggāi shì dān'gè zìjié."
msgid "Attempt to allocate %d blocks"
msgstr "shìtú fēnpèi %d blocks"
#: supervisor/shared/safe_mode.c
msgid "Attempted heap allocation when VM not running."
msgstr "shìtú zài xūnǐjī (VM) yùn xíng shí fēnpèi duī (heap)."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr "yīnpín zhuǎnhuàn wèi bèi shíxiàn"
@ -596,20 +600,13 @@ msgid "Bitmap size and bits per value must match"
msgstr "wèi tú dàxiǎo hé měi gè zhí de wèi shù bìxū pǐpèi"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr "yǐndǎo shèbèi bìxū shì dìyī tái shèbèi (interface #0)."
msgid "Boot device must be first (interface #0)."
msgstr ""
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
msgstr "RX hé TX dōu xū yào liúliàng kòngzhì"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr "qǐ dòng shí àn xià le liǎng gè àn niǔ.\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
msgstr "liǎnggè yǐnjiǎo dōu bìxū zhīchí yìngjiàn zhōngduàn"
@ -675,12 +672,6 @@ msgstr "huǎnchōng qū bìxū dàxiǎo xiāngtóng"
msgid "Bus pin %d is already in use"
msgstr "Zǒngxiàn yǐnjiǎo %d yǐjīng zài shǐyòng zhōng"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr "qǐ dòng shí àn xià àn niǔ A.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
msgstr "Zìjié huǎnchōng qū bìxū shì 16 zìjié."
@ -814,10 +805,6 @@ msgstr "Wèi tígōng zìfú huǎncún xiěrù"
msgid "CircuitPython core code crashed hard. Whoops!\n"
msgstr "CircuitPython de héxīn chūxiàn gùzhàng. Āiyā!\n"
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap."
msgstr "CircuitPython wúfǎ fēnpèi duī."
#: shared-module/bitbangio/I2C.c
msgid "Clock stretch too long"
msgstr "shízhōng yánzhǎn guòcháng"
@ -856,10 +843,6 @@ msgstr "Wúfǎ qǐdòng zhōngduàn,RX máng"
msgid "Couldn't allocate decoder"
msgstr "wúfǎ fēnpèi jiěmǎ qì"
#: supervisor/shared/safe_mode.c
msgid "Crash into the HardFault_Handler."
msgstr "gu4zhang4, jin4ru4 HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "DAC tōngdào chūshǐhuà cuòwù"
@ -953,6 +936,10 @@ msgstr "wèi yú %d wèi zhì de MIDI liú zhōng de cuò wù"
msgid "Error in regex"
msgstr "Zhèngzé biǎodá shì cuòwù"
#: supervisor/shared/safe_mode.c
msgid "Error in safemode.py."
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "cuò wù: bǎng dìng shī bài"
@ -1026,8 +1013,8 @@ msgid "Failed to write internal flash."
msgstr "Wúfǎ xiě rù nèibù shǎncún."
#: supervisor/shared/safe_mode.c
msgid "Fatal error."
msgstr "zhì mìng cuò wù."
msgid "Fault detected by hardware."
msgstr ""
#: py/moduerrno.c
msgid "File exists"
@ -1118,6 +1105,15 @@ msgstr "Yìngjiàn máng, qǐng chángshì qítā zhēnjiǎo"
msgid "Hardware in use, try alternative pins"
msgstr "Shǐyòng de yìngjiàn, qǐng chángshì qítā yǐn jiǎo"
#: supervisor/shared/safe_mode.c
msgid "Heap allocation when VM not running."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"Heap was corrupted because the stack was too small. Increase stack size."
msgstr ""
#: extmod/vfs_posix_file.c py/objstringio.c
msgid "I/O operation on closed file"
msgstr "Wénjiàn shàng de I/ O cāozuò"
@ -1239,6 +1235,10 @@ msgstr "nèi bù cuò wù #%d"
msgid "Internal watchdog timer expired."
msgstr "Nèibù kān mén gǒu dìngshí qì chāoshí."
#: supervisor/shared/safe_mode.c
msgid "Interrupt error."
msgstr ""
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
msgid "Invalid %q"
msgstr "wú xiào %q"
@ -1287,10 +1287,6 @@ msgstr "wú xiào data_pins[%d]"
msgid "Invalid format chunk size"
msgstr "Géshì kuài dàxiǎo wúxiào"
#: supervisor/shared/safe_mode.c
msgid "Invalid memory access."
msgstr "Wúxiào de nèicún fǎngwèn."
#: ports/espressif/common-hal/wifi/Radio.c
msgid "Invalid multicast MAC address"
msgstr "wú xiào de duō bō MAC dì zhǐ"
@ -1580,10 +1576,6 @@ msgstr "Méiyǒu cǐ lèi wénjiàn/mùlù"
msgid "No timer available"
msgstr "Méiyǒu jìshí qì"
#: supervisor/shared/safe_mode.c
msgid "Nordic system firmware failure assertion."
msgstr "běi ōu xì tǒng gù jiàn gù zhàng duàn yán."
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Nordic system firmware out of memory"
msgstr "běi ōu xì tǒng gù jiàn chū nèi cún"
@ -2045,61 +2037,20 @@ msgid "Temperature read timed out"
msgstr "Wēndù dòu qǔ chāoshí"
#: supervisor/shared/safe_mode.c
msgid "The BOOT button was pressed at start up.\n"
msgstr "qǐ dòng shí àn xià le yǐn dǎo àn niǔ.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The CircuitPython heap was corrupted because the stack was too small.\n"
"Increase the stack size if you know how. If not:"
msgid "The `microcontroller` module was used to boot into safe mode."
msgstr ""
"diàn lù dàn duī bèi sǔn huài, yīn wéi duī zhàn tài xiǎo.\n"
"rú guǒ nín zhī dào rú hé zēng jiā duī zhàn dà xiǎo. rú guǒ méi yǒu:"
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "The SW38 button was pressed at start up.\n"
msgstr "qǐ dòng shí àn xià le SW38 àn niǔ .\n"
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "The VOLUME button was pressed at start up.\n"
msgstr "qǐ dòng shí àn xià yīn liàng àn niǔ.\n"
#: supervisor/shared/safe_mode.c
msgid ""
"The `microcontroller` module was used to boot into safe mode. Press reset to "
"exit safe mode."
msgstr ""
"`wēi kòng zhì qì` mó kuài yòng yú qǐ dòng dào ān quán mó shì. àn chóng zhì "
"tuì chū ān quán mó shì."
#: py/obj.c
msgid "The above exception was the direct cause of the following exception:"
msgstr "shàng shù yì cháng shì yǐ xià yì cháng de zhí jiē yuán yīn:"
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "The central button was pressed at start up.\n"
msgstr "qǐ dòng shí àn xià zhōng yāng àn niǔ.\n"
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "The left button was pressed at start up.\n"
msgstr "qǐ dòng shí àn xià zuǒ àn niǔ.\n"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "The length of rgb_pins must be 6, 12, 18, 24, or 30"
msgstr "Rgb_pins de chángdù bìxū wèi 6,12,18,24 huò 30"
#: supervisor/shared/safe_mode.c
msgid ""
"The microcontroller's power dipped. Make sure your power supply provides\n"
"enough power for the whole circuit and press reset (after ejecting "
"CIRCUITPY)."
msgid "The power dipped. Make sure you are providing enough power."
msgstr ""
"wēi kòng zhì qì de gōng lǜ xià jiàng. què bǎo diàn yuán tí gòng\n"
"zú gòu de gōng lǜ yòng yú zhěng gè diàn lù hé àn chóng zhì (tán chū "
"CIRCUITPY hòu)."
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's bits_per_sample does not match the mixer's"
@ -2117,6 +2068,10 @@ msgstr "Yàngběn de yàngběn sùdù yǔ hǔn yīn qì de xiāngchà bù pǐpè
msgid "The sample's signedness does not match the mixer's"
msgstr "Yàngběn de qiānmíng yǔ hǔn yīn qì de qiānmíng bù pǐpèi"
#: supervisor/shared/safe_mode.c
msgid "Third-party firmware fatal error."
msgstr ""
#: shared-module/imagecapture/ParallelImageCapture.c
msgid "This microcontroller does not support continuous capture."
msgstr "cǐ wēi kòng zhì qì bù zhī chí lián xù bǔ huò."
@ -2151,12 +2106,6 @@ msgstr "shí jiān yǐ jīng guò qù."
msgid "Timeout is too long: Maximum timeout length is %d seconds"
msgstr "Chāoshí shíjiān tài zhǎng: Zuìdà chāoshí shíjiān wèi%d miǎo"
#: supervisor/shared/safe_mode.c
msgid "To exit, please reset the board without requesting safe mode."
msgstr ""
"yào tuì chū, qǐng zài bù qǐng qiú ān quán mó shì de qíng kuàng xià chóng zhì "
"zhǔ bǎn."
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
msgid "Too many channels in sample"
msgstr "yàngběn zhōng de tōngdào tài duō"
@ -2201,6 +2150,10 @@ msgstr "UART qù chūshǐhuà"
msgid "UART init"
msgstr "UART chūshǐhuà"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART peripheral in use"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART re-init"
msgstr "UART chóngxīn qǐdòng"
@ -2248,6 +2201,10 @@ msgstr "UUID zhí bùshì str,int huò zì jié huǎnchōng qū"
msgid "Unable to allocate buffers for signed conversion"
msgstr "Wúfǎ fēnpèi huǎnchōng qū yòng yú qiānmíng zhuǎnhuàn"
#: supervisor/shared/safe_mode.c
msgid "Unable to allocate the heap."
msgstr ""
#: ports/espressif/common-hal/busio/I2C.c
msgid "Unable to create lock"
msgstr "Wúfǎ chuàngjiàn suǒ"
@ -2461,16 +2418,53 @@ msgstr "bèi jǐng bào chǎo xǐng.\n"
msgid "Writes not supported on Characteristic"
msgstr "Tèzhēng bù zhīchí xiě rù"
#: supervisor/shared/safe_mode.c
msgid "You are in safe mode because:\n"
msgstr "nín chǔ yú ān quán mó shì, yīn wéi:\n"
#: ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "You pressed both buttons at start up."
msgstr ""
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
#: ports/espressif/boards/m5stack_stick_c/mpconfigboard.h
msgid "You pressed button A at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid ""
"You pressed the reset button during boot. Press again to exit safe mode."
msgid "You pressed the BOOT button at start up"
msgstr ""
#: ports/espressif/boards/adafruit_huzzah32_breakout/mpconfigboard.h
msgid "You pressed the GPIO0 button at start up."
msgstr ""
#: ports/espressif/boards/adafruit_feather_esp32_v2/mpconfigboard.h
msgid "You pressed the SW38 button at start up."
msgstr ""
#: ports/espressif/boards/hardkernel_odroid_go/mpconfigboard.h
msgid "You pressed the VOLUME button at start up."
msgstr ""
#: ports/espressif/boards/m5stack_atom_echo/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_lite/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_matrix/mpconfigboard.h
#: ports/espressif/boards/m5stack_atom_u/mpconfigboard.h
msgid "You pressed the central button at start up."
msgstr ""
#: ports/nrf/boards/aramcon2_badge/mpconfigboard.h
msgid "You pressed the left button at start up."
msgstr ""
#: supervisor/shared/safe_mode.c
msgid "You pressed the reset button during boot."
msgstr ""
#: supervisor/shared/micropython.c
msgid "[truncated due to length]"
msgstr ""
"zài qǐ dòng guò chéng zhōng, nín àn xià le chóng zhì àn niǔ. zài cì àn xià "
"yǐ tuì chū ān quán mó shì."
#: py/objtype.c
msgid "__init__() should return None"
@ -4411,6 +4405,94 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid ""
#~ "\n"
#~ "Please file an issue with the contents of your CIRCUITPY drive at \n"
#~ "https://github.com/adafruit/circuitpython/issues\n"
#~ msgstr ""
#~ "\n"
#~ "Qǐng tōngguò https://github.com/adafruit/circuitpython/issues\n"
#~ "tíjiāo yǒuguān nín de CIRCUITPY qūdòngqì nèiróng de wèntí \n"
#~ msgid "Attempted heap allocation when VM not running."
#~ msgstr "shìtú zài xūnǐjī (VM) yùn xíng shí fēnpèi duī (heap)."
#~ msgid "Boot device must be first device (interface #0)."
#~ msgstr "yǐndǎo shèbèi bìxū shì dìyī tái shèbèi (interface #0)."
#~ msgid "Both buttons were pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià le liǎng gè àn niǔ.\n"
#~ msgid "Button A was pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià àn niǔ A.\n"
#~ msgid "CircuitPython was unable to allocate the heap."
#~ msgstr "CircuitPython wúfǎ fēnpèi duī."
#~ msgid "Crash into the HardFault_Handler."
#~ msgstr "gu4zhang4, jin4ru4 HardFault_Handler."
#~ msgid "Fatal error."
#~ msgstr "zhì mìng cuò wù."
#~ msgid "Invalid memory access."
#~ msgstr "Wúxiào de nèicún fǎngwèn."
#~ msgid "Nordic system firmware failure assertion."
#~ msgstr "běi ōu xì tǒng gù jiàn gù zhàng duàn yán."
#~ msgid "The BOOT button was pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià le yǐn dǎo àn niǔ.\n"
#~ msgid ""
#~ "The CircuitPython heap was corrupted because the stack was too small.\n"
#~ "Increase the stack size if you know how. If not:"
#~ msgstr ""
#~ "diàn lù dàn duī bèi sǔn huài, yīn wéi duī zhàn tài xiǎo.\n"
#~ "rú guǒ nín zhī dào rú hé zēng jiā duī zhàn dà xiǎo. rú guǒ méi yǒu:"
#~ msgid "The SW38 button was pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià le SW38 àn niǔ .\n"
#~ msgid "The VOLUME button was pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià yīn liàng àn niǔ.\n"
#~ msgid ""
#~ "The `microcontroller` module was used to boot into safe mode. Press reset "
#~ "to exit safe mode."
#~ msgstr ""
#~ "`wēi kòng zhì qì` mó kuài yòng yú qǐ dòng dào ān quán mó shì. àn chóng "
#~ "zhì tuì chū ān quán mó shì."
#~ msgid "The central button was pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià zhōng yāng àn niǔ.\n"
#~ msgid "The left button was pressed at start up.\n"
#~ msgstr "qǐ dòng shí àn xià zuǒ àn niǔ.\n"
#~ msgid ""
#~ "The microcontroller's power dipped. Make sure your power supply provides\n"
#~ "enough power for the whole circuit and press reset (after ejecting "
#~ "CIRCUITPY)."
#~ msgstr ""
#~ "wēi kòng zhì qì de gōng lǜ xià jiàng. què bǎo diàn yuán tí gòng\n"
#~ "zú gòu de gōng lǜ yòng yú zhěng gè diàn lù hé àn chóng zhì (tán chū "
#~ "CIRCUITPY hòu)."
#~ msgid "To exit, please reset the board without requesting safe mode."
#~ msgstr ""
#~ "yào tuì chū, qǐng zài bù qǐng qiú ān quán mó shì de qíng kuàng xià chóng "
#~ "zhì zhǔ bǎn."
#~ msgid "You are in safe mode because:\n"
#~ msgstr "nín chǔ yú ān quán mó shì, yīn wéi:\n"
#~ msgid ""
#~ "You pressed the reset button during boot. Press again to exit safe mode."
#~ msgstr ""
#~ "zài qǐ dòng guò chéng zhōng, nín àn xià le chóng zhì àn niǔ. zài cì àn "
#~ "xià yǐ tuì chū ān quán mó shì."
#~ msgid ""
#~ "esp32_camera.Camera requires reserved PSRAM to be configured. See the "
#~ "documentation for instructions."

67
main.c
View File

@ -358,7 +358,7 @@ STATIC void print_code_py_status_message(safe_mode_t safe_mode) {
} else {
serial_write_compressed(translate("Auto-reload is off.\n"));
}
if (safe_mode != NO_SAFE_MODE) {
if (safe_mode != SAFE_MODE_NONE) {
serial_write_compressed(translate("Running in safe mode! Not running saved code.\n"));
}
}
@ -384,11 +384,11 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
// Do the filesystem flush check before reload in case another write comes
// in while we're doing the flush.
if (safe_mode == NO_SAFE_MODE) {
if (safe_mode == SAFE_MODE_NONE) {
stack_resize();
filesystem_flush();
}
if (safe_mode == NO_SAFE_MODE && !autoreload_pending()) {
if (safe_mode == SAFE_MODE_NONE && !autoreload_pending()) {
static const char *const supported_filenames[] = {
"code.txt", "code.py", "main.py", "main.txt"
};
@ -510,7 +510,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
} else
#endif
if (_exec_result.return_code != PYEXEC_EXCEPTION) {
if (safe_mode == NO_SAFE_MODE) {
if (safe_mode == SAFE_MODE_NONE) {
color = ALL_DONE;
blink_count = ALL_DONE_BLINKS;
} else {
@ -730,8 +730,34 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
vstr_t *boot_output;
#if CIRCUITPY_SAFEMODE_PY
STATIC void __attribute__ ((noinline)) run_safemode_py(safe_mode_t safe_mode) {
// Don't run if we aren't in safe mode or we won't be able to find safemode.py.
// Also don't run if it's a user-initiated safemode (pressing button(s) during boot),
// since that's deliberate.
if (safe_mode == SAFE_MODE_NONE || safe_mode == SAFE_MODE_USER || !filesystem_present()) {
return;
}
supervisor_allocation *heap = allocate_remaining_memory();
start_mp(heap);
static const char *const safemode_py_filenames[] = {"safemode.py", "safemode.txt"};
maybe_run_list(safemode_py_filenames, MP_ARRAY_SIZE(safemode_py_filenames));
// If safemode.py itself caused an error, change the safe_mode state to indicate that.
if (_exec_result.exception != MP_OBJ_NULL &&
_exec_result.exception != MP_OBJ_SENTINEL) {
set_safe_mode(SAFE_MODE_SAFEMODE_PY_ERROR);
}
cleanup_after_vm(heap, _exec_result.exception);
_exec_result.exception = NULL;
}
#endif
STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
if (safe_mode == NO_HEAP) {
if (safe_mode == SAFE_MODE_NO_HEAP) {
return;
}
@ -739,7 +765,7 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
// There is USB setup to do even if boot.py is not actually run.
const bool ok_to_run = filesystem_present()
&& safe_mode == NO_SAFE_MODE
&& safe_mode == SAFE_MODE_NONE
&& MP_STATE_VM(vfs_mount_table) != NULL;
static const char *const boot_py_filenames[] = {"boot.py", "boot.txt"};
@ -913,7 +939,7 @@ STATIC int run_repl(void) {
int __attribute__((used)) main(void) {
// initialise the cpu and peripherals
safe_mode_t safe_mode = port_init();
set_safe_mode(port_init());
// Turn on RX and TX LEDs if we have them.
init_rxtx_leds();
@ -929,8 +955,8 @@ int __attribute__((used)) main(void) {
serial_early_init();
// Wait briefly to give a reset window where we'll enter safe mode after the reset.
if (safe_mode == NO_SAFE_MODE) {
safe_mode = wait_for_safe_mode_reset();
if (get_safe_mode() == SAFE_MODE_NONE) {
set_safe_mode(wait_for_safe_mode_reset());
}
stack_init();
@ -956,8 +982,8 @@ int __attribute__((used)) main(void) {
// Check whether CIRCUITPY is available. No need to reset to get safe mode
// since we haven't run user code yet.
if (!filesystem_init(safe_mode == NO_SAFE_MODE, false)) {
safe_mode = NO_CIRCUITPY;
if (!filesystem_init(get_safe_mode() == SAFE_MODE_NONE, false)) {
set_safe_mode(SAFE_MODE_NO_CIRCUITPY);
}
#if CIRCUITPY_ALARM
@ -982,16 +1008,23 @@ int __attribute__((used)) main(void) {
supervisor_set_run_reason(RUN_REASON_STARTUP);
// If not in safe mode turn on autoreload by default but before boot.py in case it wants to change it.
if (safe_mode == NO_SAFE_MODE) {
if (get_safe_mode() == SAFE_MODE_NONE) {
autoreload_enable();
}
// By default our internal flash is readonly to local python code and
// writable over USB. Set it here so that boot.py can change it.
// writable over USB. Set it here so that safemode.py or boot.py can change it.
filesystem_set_internal_concurrent_write_protection(true);
filesystem_set_internal_writable_by_usb(CIRCUITPY_USB == 1);
run_boot_py(safe_mode);
#if CIRCUITPY_SAFEMODE_PY
// Run safemode.py if we ARE in safe mode.
// If safemode.py does not do a hard reset, and exits normally, we will continue on
// and report the safe mode as usual.
run_safemode_py(get_safe_mode());
#endif
run_boot_py(get_safe_mode());
supervisor_workflow_start();
@ -1016,7 +1049,7 @@ int __attribute__((used)) main(void) {
// If code.py did a fake deep sleep, pretend that we
// are running code.py for the first time after a hard
// reset. This will preserve any alarm information.
skip_repl = run_code_py(safe_mode, &simulate_reset);
skip_repl = run_code_py(get_safe_mode(), &simulate_reset);
} else {
skip_repl = false;
}
@ -1076,14 +1109,14 @@ void gc_collect(void) {
}
void NORETURN nlr_jump_fail(void *val) {
reset_into_safe_mode(MICROPY_NLR_JUMP_FAIL);
reset_into_safe_mode(SAFE_MODE_NLR_JUMP_FAIL);
while (true) {
}
}
#ifndef NDEBUG
static void NORETURN __fatal_error(const char *msg) {
reset_into_safe_mode(MICROPY_FATAL_ERROR);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
}
}

View File

@ -23,7 +23,7 @@
#define CALIBRATE_CRYSTALLESS 1
// Explanation of how a user got into safe mode.
#define BOARD_USER_SAFE_MODE_ACTION translate("Both buttons were pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed both buttons at start up.")
// Increase stack size slightly due to CPX library import nesting
#define CIRCUITPY_DEFAULT_STACK_SIZE (4248) // divisible by 8

View File

@ -23,7 +23,7 @@
#define CALIBRATE_CRYSTALLESS 1
// Explanation of how a user got into safe mode.
#define BOARD_USER_SAFE_MODE_ACTION translate("Both buttons were pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed both buttons at start up.")
// Increase stack size slightly due to CPX library import nesting
#define CIRCUITPY_DEFAULT_STACK_SIZE (4248) // divisible by 8

View File

@ -23,7 +23,7 @@
#define CALIBRATE_CRYSTALLESS 1
// Explanation of how a user got into safe mode.
#define BOARD_USER_SAFE_MODE_ACTION translate("Both buttons were pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed both buttons at start up.")
// Increase stack size slightly due to CPX library import nesting.
#define CIRCUITPY_DEFAULT_STACK_SIZE (4248) // divisible by 8

View File

@ -6,7 +6,7 @@
#define CALIBRATE_CRYSTALLESS 1
// Explanation of how a user got into safe mode.
#define BOARD_USER_SAFE_MODE_ACTION translate("Both buttons were pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed both buttons at start up.")
#define DEFAULT_I2C_BUS_SCL (&pin_PA01)
#define DEFAULT_I2C_BUS_SDA (&pin_PA00)

View File

@ -37,6 +37,7 @@ CIRCUITPY_USB_MIDI = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0
CIRCUITPY_BITMAPTOOLS = 0
CIRCUITPY_GIFIO = 0
CIRCUITPY_WATCHDOG = 0
CIRCUITPY_AUDIOIO = 1
@ -55,8 +56,11 @@ CIRCUITPY_DISPLAY_FONT = $(TOP)/ports/atmel-samd/boards/ugame10/brutalist-6.bdf
OPTIMIZATION_FLAGS = -Os
# We don't have room for the fonts for terminalio for certain languages,
# so turn off terminalio and force a clean build.
# so turn off terminalio, and if it's off and displayio is on,
# force a clean build.
# Note that we cannot test $(CIRCUITPY_DISPLAYIO) directly with an
# ifeq, because it's not set yet.
ifneq (,$(filter $(TRANSLATION),ja ko ru))
CIRCUITPY_TERMINALIO = 0
RELEASE_NEEDS_CLEAN_BUILD = 1
RELEASE_NEEDS_CLEAN_BUILD = $(CIRCUITPY_DISPLAYIO)
endif

View File

@ -51,9 +51,8 @@ void common_hal_mcu_disable_interrupts(void) {
void common_hal_mcu_enable_interrupts(void) {
if (nesting_count == 0) {
// This is very very bad because it means there was mismatched disable/enables so we
// "HardFault".
HardFault_Handler();
// This is very very bad because it means there was mismatched disable/enables.
reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {
@ -76,7 +75,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
_bootloader_dbl_tap = DBL_TAP_MAGIC_QUICK_BOOT;
}
if (runmode == RUNMODE_SAFE_MODE) {
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
}
}

View File

@ -57,6 +57,7 @@ CIRCUITPY_ZLIB = 0
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
CIRCUITPY_ONEWIREIO ?= 0
CIRCUITPY_SAFEMODE_PY ?= 0
CIRCUITPY_USB_IDENTIFICATION ?= 0
endif
@ -77,10 +78,8 @@ SUPEROPT_VM = 0
CIRCUITPY_LTO_PARTITION = one
ifeq ($(CIRCUITPY_FULL_BUILD),0)
# On the smallest boards, this saves about 180 bytes. On other boards, it may -increase- space used.
# On smaller builds this saves about 180 bytes. On other boards, it may -increase- space used, so use with care.
CFLAGS_BOARD = -fweb -frename-registers
endif
endif # samd21
######################################################################

View File

@ -368,20 +368,20 @@ safe_mode_t port_init(void) {
#ifdef SAMD21
if (PM->RCAUSE.bit.BOD33 == 1 || PM->RCAUSE.bit.BOD12 == 1) {
return BROWNOUT;
return SAFE_MODE_BROWNOUT;
}
#endif
#ifdef SAM_D5X_E5X
if (RSTC->RCAUSE.bit.BODVDD == 1 || RSTC->RCAUSE.bit.BODCORE == 1) {
return BROWNOUT;
return SAFE_MODE_BROWNOUT;
}
#endif
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;
return SAFE_MODE_USER;
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_port(void) {
@ -720,7 +720,7 @@ __attribute__((used)) void HardFault_Handler(void) {
REG_MTB_MASTER = 0x00000000 + 6;
#endif
reset_into_safe_mode(HARD_CRASH);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}

View File

@ -46,7 +46,7 @@ void common_hal_mcu_disable_interrupts(void) {
void common_hal_mcu_enable_interrupts(void) {
if (nesting_count == 0) {
// reset_into_safe_mode(LOCKING_ERROR);
// reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {

View File

@ -78,10 +78,10 @@ safe_mode_t port_init(void) {
// Check brownout.
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;
return SAFE_MODE_USER;
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_port(void) {

View File

@ -74,7 +74,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
if (runmode == RUNMODE_BOOTLOADER) {
mp_raise_ValueError(translate("Cannot reset into bootloader because no bootloader is present"));
} else if (runmode == RUNMODE_SAFE_MODE) {
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
}
}

View File

@ -66,10 +66,10 @@ safe_mode_t port_init(void) {
heap_size = size / sizeof(uint32_t);
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;
return SAFE_MODE_USER;
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_cpu(void) {

View File

@ -47,7 +47,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO38)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The SW38 button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the SW38 button at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -6,4 +6,5 @@ IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESPCAMERA = 0

View File

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

View File

@ -0,0 +1,42 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 Dan Halbert for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "Adafruit HUZZAH32 Breakout"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_LED_STATUS (&pin_GPIO13)
// For entering safe mode, use GPIO0 button
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the GPIO0 button at start up.")
// UART pins
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x0000239A
CIRCUITPY_CREATION_ID = 0x00320004
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESPCAMERA = 0

View File

@ -0,0 +1,49 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_IO22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_IO23), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_IO25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_IO26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_IO27), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_IO32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_IO33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_IO34), MP_ROM_PTR(&pin_GPIO34) },
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_IO39), MP_ROM_PTR(&pin_GPIO39) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,20 @@
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
CONFIG_ESP32_SPIRAM_SUPPORT=n
# 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=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -35,7 +35,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The VOLUME button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the VOLUME button at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -38,7 +38,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the central button at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -42,7 +42,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the central button at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -42,7 +42,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the central button at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -41,7 +41,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the central button at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -42,7 +42,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("Button A was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed button A at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -43,7 +43,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("Button A was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed button A at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -39,7 +39,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO37)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("Button A was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed button A at start up.")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)

View File

@ -5,6 +5,6 @@ USB_MANUFACTURER = "Waveshare Electronics"
IDF_TARGET = esp32s2
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_MODE = qio
CIRCUITPY_ESP_FLASH_FREQ = 80m
CIRCUITPY_ESP_FLASH_SIZE = 4MB

View File

@ -1,9 +1,11 @@
#
# SPI RAM config
#
CONFIG_ESP32S2_SPIRAM_SUPPORT=y
CONFIG_DEFAULT_PSRAM_CLK_IO=30
CONFIG_DEFAULT_PSRAM_CS_IO=26
CONFIG_SPIRAM_TYPE_ESPPSRAM64=y
CONFIG_SPIRAM_SIZE=8388608
CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM=y
CONFIG_SPIRAM_BOOT_INIT=y

View File

@ -108,7 +108,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
break;
case RUNMODE_SAFE_MODE:
// enter safe mode on next boot
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
break;
case RUNMODE_BOOTLOADER:
// DFU download

View File

@ -318,25 +318,25 @@ safe_mode_t port_init(void) {
}
if (heap == NULL) {
heap_size = 0;
return NO_HEAP;
return SAFE_MODE_NO_HEAP;
}
esp_reset_reason_t reason = esp_reset_reason();
switch (reason) {
case ESP_RST_BROWNOUT:
return BROWNOUT;
return SAFE_MODE_BROWNOUT;
case ESP_RST_PANIC:
return HARD_CRASH;
return SAFE_MODE_HARD_FAULT;
case ESP_RST_INT_WDT:
// The interrupt watchdog is used internally to make sure that latency sensitive
// interrupt code isn't blocked. User watchdog resets come through ESP_RST_WDT.
return WATCHDOG_RESET;
return SAFE_MODE_WATCHDOG;
case ESP_RST_WDT:
default:
break;
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_port(void) {

View File

@ -70,9 +70,8 @@ void common_hal_mcu_disable_interrupts(void) {
__attribute__((section(".ramtext")))
void common_hal_mcu_enable_interrupts(void) {
if (nesting_count == 0) {
// This is very very bad because it means there was mismatched disable/enables so we
// "HardFault".
asm ("ebreak");
// This is very very bad because it means there was mismatched disable/enables.
reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {
@ -83,7 +82,7 @@ void common_hal_mcu_enable_interrupts(void) {
void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
if (runmode == RUNMODE_SAFE_MODE) {
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
}
}

View File

@ -71,7 +71,7 @@ safe_mode_t port_init(void) {
irq_setmask(0);
irq_setie(1);
tick_init();
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
extern uint32_t _ebss;

View File

@ -52,12 +52,10 @@ void common_hal_mcu_disable_interrupts(void) {
nesting_count++;
}
void HardFault_Handler(void);
void common_hal_mcu_enable_interrupts(void) {
if (nesting_count == 0) {
// This is very very bad because it means there was mismatched disable/enables so we
// "HardFault".
HardFault_Handler();
// This is very very bad because it means there was mismatched disable/enables
reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {
@ -80,7 +78,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
DBL_TAP_REG = DBL_TAP_MAGIC_QUICK_BOOT;
}
if (runmode == RUNMODE_SAFE_MODE) {
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
}
}

View File

@ -259,10 +259,10 @@ safe_mode_t port_init(void) {
// run yet, which uses `never_reset` to protect critical pins from being reset by `reset_port`.
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;
return SAFE_MODE_USER;
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_port(void) {
@ -419,7 +419,7 @@ void port_idle_until_interrupt(void) {
*/
void MemManage_Handler(void);
__attribute__((used)) void MemManage_Handler(void) {
reset_into_safe_mode(MEM_MANAGE);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}
@ -430,7 +430,7 @@ __attribute__((used)) void MemManage_Handler(void) {
*/
void BusFault_Handler(void);
__attribute__((used)) void BusFault_Handler(void) {
reset_into_safe_mode(MEM_MANAGE);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}
@ -441,7 +441,7 @@ __attribute__((used)) void BusFault_Handler(void) {
*/
void UsageFault_Handler(void);
__attribute__((used)) void UsageFault_Handler(void) {
reset_into_safe_mode(MEM_MANAGE);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}
@ -452,7 +452,7 @@ __attribute__((used)) void UsageFault_Handler(void) {
*/
void HardFault_Handler(void);
__attribute__((used)) void HardFault_Handler(void) {
reset_into_safe_mode(HARD_CRASH);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}

View File

@ -52,7 +52,7 @@
#define CIRCUITPY_BOOT_BUTTON (&pin_P0_29)
#define BOARD_USER_SAFE_MODE_ACTION translate("The left button was pressed at start up.\n")
#define BOARD_USER_SAFE_MODE_ACTION translate("You pressed the left button at start up.")
#define CIRCUITPY_INTERNAL_NVM_SIZE (4096)

View File

@ -91,7 +91,7 @@ const nvm_bytearray_obj_t common_hal_bleio_nvm_obj = {
};
STATIC void softdevice_assert_handler(uint32_t id, uint32_t pc, uint32_t info) {
reset_into_safe_mode(NORDIC_SOFT_DEVICE_ASSERT);
reset_into_safe_mode(SAFE_MODE_SDK_FATAL_ERROR);
}
bleio_connection_internal_t bleio_connections[BLEIO_TOTAL_CONNECTION_COUNT];

View File

@ -68,9 +68,8 @@ void common_hal_mcu_disable_interrupts() {
void common_hal_mcu_enable_interrupts() {
if (nesting_count == 0) {
// This is very very bad because it means there was mismatched disable/enables so we
// crash.
reset_into_safe_mode(HARD_CRASH);
// This is very very bad because it means there was mismatched disable/enables.
reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {
@ -88,7 +87,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
sd_power_gpregret_set(0,0);
}
if (runmode == RUNMODE_SAFE_MODE) {
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
}
}

View File

@ -75,7 +75,7 @@ void port_internal_flash_flush(void) {
// Skip if data is the same
if (memcmp(_flash_cache, (void *)_flash_page_addr, FLASH_PAGE_SIZE) != 0) {
if (!nrf_nvm_safe_flash_page_write(_flash_page_addr, _flash_cache)) {
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
}
}

View File

@ -77,7 +77,7 @@ extern void qspi_disable(void);
#endif
static void power_warning_handler(void) {
reset_into_safe_mode(BROWNOUT);
reset_into_safe_mode(SAFE_MODE_BROWNOUT);
}
uint32_t reset_reason_saved = 0;
@ -204,11 +204,11 @@ safe_mode_t port_init(void) {
// If USB is connected, then the user might be editing `code.py`,
// in which case we should reboot into Safe Mode.
if (usb_reg & POWER_USBREGSTATUS_VBUSDETECT_Msk) {
return WATCHDOG_RESET;
return SAFE_MODE_WATCHDOG;
}
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_port(void) {
@ -399,7 +399,7 @@ void port_idle_until_interrupt(void) {
extern void HardFault_Handler(void);
void HardFault_Handler(void) {
reset_into_safe_mode(HARD_CRASH);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}

View File

@ -111,7 +111,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
uint8_t uart_id = ((((tx != NULL) ? tx->number : rx->number) + 4) / 8) % NUM_UARTS;
if (uart_status[uart_id] != STATUS_FREE) {
mp_raise_RuntimeError(translate("All UART peripherals are in use"));
mp_raise_ValueError(translate("UART peripheral in use"));
}
// These may raise exceptions if pins are already in use.
self->tx_pin = pin_init(uart_id, tx, 0);

View File

@ -60,7 +60,7 @@ void common_hal_mcu_disable_interrupts(void) {
void common_hal_mcu_enable_interrupts(void) {
if (nesting_count == 0) {
// reset_into_safe_mode(LOCKING_ERROR);
// reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {
@ -79,7 +79,7 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
next_reset_to_bootloader = true;
break;
case RUNMODE_SAFE_MODE:
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
break;
default:
break;

View File

@ -161,10 +161,10 @@ safe_mode_t port_init(void) {
}
#endif
if (board_requests_safe_mode()) {
return USER_SAFE_MODE;
return SAFE_MODE_USER;
}
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void reset_port(void) {
@ -312,7 +312,7 @@ __attribute__((used)) void HardFault_Handler(void) {
REG_MTB_MASTER = 0x00000000 + 6;
#endif
reset_into_safe_mode(HARD_CRASH);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}

View File

@ -105,8 +105,7 @@ STATIC int next_filter(canio_can_obj_t *can) {
return i;
}
}
reset_into_safe_mode(MICROPY_FATAL_ERROR);
return -1;
mp_raise_msg_varg(&mp_type_RuntimeError, translate("%q"), MP_QSTR_Listener);
}
// IDE = "extended ID" flag of packet header. We always add this bit to the

View File

@ -61,9 +61,8 @@ void common_hal_mcu_disable_interrupts(void) {
void common_hal_mcu_enable_interrupts(void) {
if (nesting_count == 0) {
// This is very very bad because it means there was mismatched disable/enables so we
// "HardFault".
asm ("bkpt");
// This is very very bad because it means there was mismatched disable/enables.
reset_into_safe_mode(SAFE_MODE_INTERRUPT_ERROR);
}
nesting_count--;
if (nesting_count > 0) {
@ -77,7 +76,7 @@ static bool next_reset_to_bootloader = false;
void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
if (runmode == RUNMODE_SAFE_MODE) {
safe_mode_on_next_reset(PROGRAMMATIC_SAFE_MODE);
safe_mode_on_next_reset(SAFE_MODE_PROGRAMMATIC);
}
if (runmode == RUNMODE_BOOTLOADER) {
next_reset_to_bootloader = true;

View File

@ -215,7 +215,7 @@ void port_internal_flash_flush(void) {
EraseInitStruct.NbSectors = 1;
#endif
if (sector_size > sizeof(_flash_cache) || sector_start_addr == 0xffffffff) {
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
// Skip if data is the same
@ -228,7 +228,7 @@ void port_internal_flash_flush(void) {
if (HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError) != HAL_OK) {
// error occurred during sector erase
HAL_FLASH_Lock(); // lock the flash
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
uint32_t *cache_addr = (uint32_t *)_flash_cache;
@ -240,7 +240,7 @@ void port_internal_flash_flush(void) {
(uint32_t)cache_addr) != HAL_OK) {
// error occurred during flash write
HAL_FLASH_Lock(); // lock the flash
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
// RAM memory is by word (4 byte), but flash memory is by byte
cache_addr += 8;
@ -253,7 +253,7 @@ void port_internal_flash_flush(void) {
*(uint64_t *)cache_addr) != HAL_OK) {
// error occurred during flash write
HAL_FLASH_Lock(); // lock the flash
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
// RAM memory is by word (4 byte), but flash memory is by byte
cache_addr += 2;
@ -267,7 +267,7 @@ void port_internal_flash_flush(void) {
(uint64_t)*cache_addr) != HAL_OK) {
// error occurred during flash write
HAL_FLASH_Lock(); // lock the flash
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
// RAM memory is by word (4 byte), but flash memory is by byte
cache_addr += 1;
@ -335,7 +335,7 @@ mp_uint_t supervisor_flash_write_blocks(const uint8_t *src, uint32_t block_num,
// Fail for any sector outside what's supported by the cache
if (sector_size > sizeof(_flash_cache)) {
reset_into_safe_mode(FLASH_WRITE_FAIL);
reset_into_safe_mode(SAFE_MODE_FLASH_WRITE_FAIL);
}
// Find how many blocks are left in the sector

View File

@ -211,7 +211,7 @@ safe_mode_t port_init(void) {
// Turn off SysTick
SysTick->CTRL = 0;
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void HAL_Delay(uint32_t delay_ms) {
@ -357,28 +357,28 @@ uint32_t port_get_saved_word(void) {
}
__attribute__((used)) void MemManage_Handler(void) {
reset_into_safe_mode(MEM_MANAGE);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}
}
__attribute__((used)) void BusFault_Handler(void) {
reset_into_safe_mode(MEM_MANAGE);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}
}
__attribute__((used)) void UsageFault_Handler(void) {
reset_into_safe_mode(MEM_MANAGE);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}
}
__attribute__((used)) void HardFault_Handler(void) {
reset_into_safe_mode(HARD_CRASH);
reset_into_safe_mode(SAFE_MODE_HARD_FAULT);
while (true) {
asm ("nop;");
}

View File

@ -26,7 +26,6 @@ CFLAGS += -DCIRCUITPY_QRIO=1
$(BUILD)/lib/quirc/lib/%.o: CFLAGS += -Wno-shadow -Wno-sign-compare -include shared-module/qrio/quirc_alloc.h
SRC_BITMAP := \
$(patsubst ../../%,%,$(wildcard ../../shared-bindings/gifio/*.c ../../shared-module/gifio/*.c)) \
shared/runtime/context_manager_helpers.c \
displayio_min.c \
shared-bindings/aesio/aes.c \

View File

@ -530,6 +530,11 @@ $(filter $(SRC_PATTERNS), \
wifi/Packet.c \
)
ifeq ($(CIRCUITPY_SAFEMODE_PY),1)
SRC_BINDINGS_ENUMS += \
supervisor/SafeModeReason.c
endif
SRC_BINDINGS_ENUMS += \
util.c
@ -592,6 +597,7 @@ SRC_SHARED_MODULE_ALL = \
getpass/__init__.c \
gifio/__init__.c \
gifio/GifWriter.c \
gifio/OnDiskGif.c \
imagecapture/ParallelImageCapture.c \
ipaddress/IPv4Address.c \
ipaddress/__init__.c \
@ -697,6 +703,13 @@ SRC_MOD += $(addprefix lib/protomatter/src/, \
$(BUILD)/lib/protomatter/src/core.o: CFLAGS += -include "shared-module/rgbmatrix/allocator.h" -DCIRCUITPY -Wno-missing-braces -Wno-missing-prototypes
endif
ifeq ($(CIRCUITPY_GIFIO),1)
SRC_MOD += $(addprefix lib/AnimatedGIF/, \
gif.c \
)
$(BUILD)/lib/AnimatedGIF/gif.o: CFLAGS += -DCIRCUITPY
endif
ifeq ($(CIRCUITPY_ZLIB),1)
SRC_MOD += $(addprefix lib/uzlib/, \
tinflate.c \

View File

@ -248,7 +248,8 @@ CIRCUITPY_GETPASS ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_GETPASS=$(CIRCUITPY_GETPASS)
ifeq ($(CIRCUITPY_DISPLAYIO),1)
CIRCUITPY_GIFIO ?= $(CIRCUITPY_CAMERA)
#CIRCUITPY_GIFIO ?= $(CIRCUITPY_CAMERA)
CIRCUITPY_GIFIO ?= 1
else
CIRCUITPY_GIFIO ?= 0
endif
@ -372,6 +373,10 @@ CFLAGS += -DCIRCUITPY_ROTARYIO_SOFTENCODER=$(CIRCUITPY_ROTARYIO_SOFTENCODER)
CIRCUITPY_RTC ?= 1
CFLAGS += -DCIRCUITPY_RTC=$(CIRCUITPY_RTC)
# Enable support for safemode.py
CIRCUITPY_SAFEMODE_PY ?= 1
CFLAGS += -DCIRCUITPY_SAFEMODE_PY=$(CIRCUITPY_SAFEMODE_PY)
# CIRCUITPY_SAMD is handled in the atmel-samd tree.
# Only for SAMD chips.
# Assume not a SAMD build.

View File

@ -518,7 +518,7 @@ void *gc_alloc(size_t n_bytes, unsigned int alloc_flags, bool long_lived) {
}
if (MP_STATE_MEM(gc_pool_start) == 0) {
reset_into_safe_mode(GC_ALLOC_OUTSIDE_VM);
reset_into_safe_mode(SAFE_MODE_GC_ALLOC_OUTSIDE_VM);
}
GC_ENTER();
@ -712,7 +712,7 @@ void gc_free(void *ptr) {
GC_EXIT();
} else {
if (MP_STATE_MEM(gc_pool_start) == 0) {
reset_into_safe_mode(GC_ALLOC_OUTSIDE_VM);
reset_into_safe_mode(SAFE_MODE_GC_ALLOC_OUTSIDE_VM);
}
// get the GC block number corresponding to this pointer
assert(VERIFY_PTR(ptr));

View File

@ -0,0 +1,205 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2023 Mark Komus
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/gifio/OnDiskGif.h"
#include <stdint.h>
#include "py/runtime.h"
#include "py/objproperty.h"
#include "supervisor/shared/translate/translate.h"
#include "shared-bindings/gifio/OnDiskGif.h"
//| class OnDiskGif:
//| """Loads one frame of a GIF into memory at a time.
//|
//| .. code-block:: Python
//|
//| import board
//| import gifio
//| import displayio
//| import time
//|
//| splash = displayio.Group()
//| board.DISPLAY.show(splash)
//|
//| odg = gifio.OnDiskGif('/sample.gif')
//| odg.next_frame() # Load the first frame
//| face = displayio.TileGrid(odg, pixel_shader=displayio.ColorConverter(input_colorspace=displayio.Colorspace.RGB565))
//| splash.append(face)
//| board.DISPLAY.refresh()
//|
//| # Wait forever
//| while True:
//| gif.next_frame()
//| time.sleep(0.1)"""
//|
//| def __init__(self, file: str) -> None:
//| """Create an OnDiskGif object with the given file.
//|
//| :param file file: The name of the GIF file.
//|
//| """
//| ...
STATIC mp_obj_t gifio_ondiskgif_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
mp_arg_check_num(n_args, n_kw, 1, 1, false);
mp_obj_t arg = all_args[0];
if (mp_obj_is_str(arg)) {
arg = mp_call_function_2(MP_OBJ_FROM_PTR(&mp_builtin_open_obj), arg, MP_ROM_QSTR(MP_QSTR_rb));
}
if (!mp_obj_is_type(arg, &mp_type_fileio)) {
mp_raise_TypeError(translate("file must be a file opened in byte mode"));
}
gifio_ondiskgif_t *self = m_new_obj(gifio_ondiskgif_t);
self->base.type = &gifio_ondiskgif_type;
common_hal_gifio_ondiskgif_construct(self, MP_OBJ_TO_PTR(arg));
return MP_OBJ_FROM_PTR(self);
}
//| width: int
//| """Width of the gif. (read only)"""
STATIC mp_obj_t gifio_ondiskgif_obj_get_width(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_gifio_ondiskgif_get_width(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_width_obj, gifio_ondiskgif_obj_get_width);
MP_PROPERTY_GETTER(gifio_ondiskgif_width_obj,
(mp_obj_t)&gifio_ondiskgif_get_width_obj);
//| height: int
//| """Height of the gif. (read only)"""
STATIC mp_obj_t gifio_ondiskgif_obj_get_height(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_gifio_ondiskgif_get_height(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_height_obj, gifio_ondiskgif_obj_get_height);
MP_PROPERTY_GETTER(gifio_ondiskgif_height_obj,
(mp_obj_t)&gifio_ondiskgif_get_height_obj);
//| bitmap: displayio.Bitmap
//| """The bitmap used to hold the current frame."""
STATIC mp_obj_t gifio_ondiskgif_obj_get_bitmap(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return common_hal_gifio_ondiskgif_get_bitmap(self);
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_bitmap_obj, gifio_ondiskgif_obj_get_bitmap);
MP_PROPERTY_GETTER(gifio_ondiskgif_bitmap_obj,
(mp_obj_t)&gifio_ondiskgif_get_bitmap_obj);
//| def next_frame(self) -> float:
//| """Loads the next frame. Returns expected delay before the next frame in seconds."""
STATIC mp_obj_t gifio_ondiskgif_obj_next_frame(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return mp_obj_new_float((float)common_hal_gifio_ondiskgif_next_frame(self, true) / 1000);
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_next_frame_obj, gifio_ondiskgif_obj_next_frame);
//| duration: float
//| """Returns the total duration of the GIF in seconds. (read only)"""
STATIC mp_obj_t gifio_ondiskgif_obj_get_duration(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return mp_obj_new_float((float)common_hal_gifio_ondiskgif_get_duration(self) / 1000);
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_duration_obj, gifio_ondiskgif_obj_get_duration);
MP_PROPERTY_GETTER(gifio_ondiskgif_duration_obj,
(mp_obj_t)&gifio_ondiskgif_get_duration_obj);
//| frame_count: int
//| """Returns the number of frames in the GIF. (read only)"""
STATIC mp_obj_t gifio_ondiskgif_obj_get_frame_count(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(common_hal_gifio_ondiskgif_get_frame_count(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_frame_count_obj, gifio_ondiskgif_obj_get_frame_count);
MP_PROPERTY_GETTER(gifio_ondiskgif_frame_count_obj,
(mp_obj_t)&gifio_ondiskgif_get_frame_count_obj);
//| min_delay: float
//| """The minimum delay found between frames. (read only)"""
STATIC mp_obj_t gifio_ondiskgif_obj_get_min_delay(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return mp_obj_new_float((float)common_hal_gifio_ondiskgif_get_min_delay(self) / 1000);
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_min_delay_obj, gifio_ondiskgif_obj_get_min_delay);
MP_PROPERTY_GETTER(gifio_ondiskgif_min_delay_obj,
(mp_obj_t)&gifio_ondiskgif_get_min_delay_obj);
//| max_delay: float
//| """The maximum delay found between frames. (read only)"""
//|
STATIC mp_obj_t gifio_ondiskgif_obj_get_max_delay(mp_obj_t self_in) {
gifio_ondiskgif_t *self = MP_OBJ_TO_PTR(self_in);
return mp_obj_new_float((float)common_hal_gifio_ondiskgif_get_max_delay(self) / 1000);
}
MP_DEFINE_CONST_FUN_OBJ_1(gifio_ondiskgif_get_max_delay_obj, gifio_ondiskgif_obj_get_max_delay);
MP_PROPERTY_GETTER(gifio_ondiskgif_max_delay_obj,
(mp_obj_t)&gifio_ondiskgif_get_max_delay_obj);
STATIC const mp_rom_map_elem_t gifio_ondiskgif_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&gifio_ondiskgif_height_obj) },
{ MP_ROM_QSTR(MP_QSTR_bitmap), MP_ROM_PTR(&gifio_ondiskgif_bitmap_obj) },
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&gifio_ondiskgif_width_obj) },
{ MP_ROM_QSTR(MP_QSTR_next_frame), MP_ROM_PTR(&gifio_ondiskgif_next_frame_obj) },
{ MP_ROM_QSTR(MP_QSTR_duration), MP_ROM_PTR(&gifio_ondiskgif_duration_obj) },
{ MP_ROM_QSTR(MP_QSTR_frame_count), MP_ROM_PTR(&gifio_ondiskgif_frame_count_obj) },
{ MP_ROM_QSTR(MP_QSTR_min_delay), MP_ROM_PTR(&gifio_ondiskgif_min_delay_obj) },
{ MP_ROM_QSTR(MP_QSTR_max_delay), MP_ROM_PTR(&gifio_ondiskgif_max_delay_obj) },
};
STATIC MP_DEFINE_CONST_DICT(gifio_ondiskgif_locals_dict, gifio_ondiskgif_locals_dict_table);
const mp_obj_type_t gifio_ondiskgif_type = {
{ &mp_type_type },
.name = MP_QSTR_OnDiskGif,
.make_new = gifio_ondiskgif_make_new,
.locals_dict = (mp_obj_dict_t *)&gifio_ondiskgif_locals_dict,
};

View File

@ -0,0 +1,48 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2023 Mark Komus
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_ONDISKGIF_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_ONDISKGIF_H
#include "shared-module/gifio/OnDiskGif.h"
#include "extmod/vfs_fat.h"
extern const mp_obj_type_t gifio_ondiskgif_type;
void common_hal_gifio_ondiskgif_construct(gifio_ondiskgif_t *self, pyb_file_obj_t *file);
uint32_t common_hal_gifio_ondiskgif_get_pixel(gifio_ondiskgif_t *bitmap,
int16_t x, int16_t y);
uint16_t common_hal_gifio_ondiskgif_get_height(gifio_ondiskgif_t *self);
mp_obj_t common_hal_gifio_ondiskgif_get_bitmap(gifio_ondiskgif_t *self);
uint16_t common_hal_gifio_ondiskgif_get_width(gifio_ondiskgif_t *self);
uint8_t common_hal_gifio_ondiskgif_next_frame(gifio_ondiskgif_t *self, bool setDirty);
int32_t common_hal_gifio_ondiskgif_get_duration(gifio_ondiskgif_t *self);
int32_t common_hal_gifio_ondiskgif_get_frame_count(gifio_ondiskgif_t *self);
int32_t common_hal_gifio_ondiskgif_get_min_delay(gifio_ondiskgif_t *self);
int32_t common_hal_gifio_ondiskgif_get_max_delay(gifio_ondiskgif_t *self);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_DISPLAYIO_ONDISKGIF_H

View File

@ -27,6 +27,7 @@
#include "py/runtime.h"
#include "py/mphal.h"
#include "shared-bindings/gifio/GifWriter.h"
#include "shared-bindings/gifio/OnDiskGif.h"
#include "shared-bindings/util.h"
//| """Access GIF-format images
@ -34,6 +35,7 @@
STATIC const mp_rom_map_elem_t gifio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_gifio) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_GifWriter), MP_ROM_PTR(&gifio_gifwriter_type)},
{ MP_ROM_QSTR(MP_QSTR_OnDiskGif), MP_ROM_PTR(&gifio_ondiskgif_type) },
};
STATIC MP_DEFINE_CONST_DICT(gifio_module_globals, gifio_module_globals_table);

View File

@ -42,7 +42,7 @@ MAKE_ENUM_VALUE(mcu_reset_reason_type, reset_reason, RESCUE_DEBUG, RESET_REASON_
//| """The reason the microntroller was last reset"""
//|
//| POWER_ON: object
//| """The microntroller was started from power off."""
//| """The microcontroller was started from power off."""
//|
//| BROWNOUT: object
//| """The microntroller was reset due to too low a voltage."""

View File

@ -32,6 +32,7 @@
#include "shared-bindings/supervisor/RunReason.h"
#include "shared-bindings/supervisor/Runtime.h"
#include "shared-bindings/supervisor/SafeModeReason.h"
#include "supervisor/shared/reload.h"
#include "supervisor/shared/stack.h"
@ -106,7 +107,7 @@ void supervisor_set_run_reason(supervisor_run_reason_t run_reason) {
}
//| run_reason: RunReason
//| """Why CircuitPython started running this particular time."""
//| """Why CircuitPython started running this particular time (read-only)."""
STATIC mp_obj_t supervisor_runtime_get_run_reason(mp_obj_t self) {
return cp_enum_find(&supervisor_run_reason_type, _run_reason);
}
@ -115,6 +116,23 @@ MP_DEFINE_CONST_FUN_OBJ_1(supervisor_runtime_get_run_reason_obj, supervisor_runt
MP_PROPERTY_GETTER(supervisor_runtime_run_reason_obj,
(mp_obj_t)&supervisor_runtime_get_run_reason_obj);
//| safe_mode_reason: SafeModeReason
//| """Why CircuitPython went into safe mode this particular time (read-only).
//|
//| **Limitations**: Raises ``NotImplementedError`` on builds that do not implement ``safemode.py``.
//| """
STATIC mp_obj_t supervisor_runtime_get_safe_mode_reason(mp_obj_t self) {
#if CIRCUITPY_SAFEMODE_PY
return cp_enum_find(&supervisor_safe_mode_reason_type, get_safe_mode());
#else
mp_raise_NotImplementedError(NULL);
#endif
}
MP_DEFINE_CONST_FUN_OBJ_1(supervisor_runtime_get_safe_mode_reason_obj, supervisor_runtime_get_safe_mode_reason);
MP_PROPERTY_GETTER(supervisor_runtime_safe_mode_reason_obj,
(mp_obj_t)&supervisor_runtime_get_safe_mode_reason_obj);
//| autoreload: bool
//| """Whether CircuitPython may autoreload based on workflow writes to the filesystem."""
//|
@ -218,6 +236,7 @@ STATIC const mp_rom_map_elem_t supervisor_runtime_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_serial_connected), MP_ROM_PTR(&supervisor_runtime_serial_connected_obj) },
{ MP_ROM_QSTR(MP_QSTR_serial_bytes_available), MP_ROM_PTR(&supervisor_runtime_serial_bytes_available_obj) },
{ MP_ROM_QSTR(MP_QSTR_run_reason), MP_ROM_PTR(&supervisor_runtime_run_reason_obj) },
{ MP_ROM_QSTR(MP_QSTR_safe_mode_reason), MP_ROM_PTR(&supervisor_runtime_safe_mode_reason_obj) },
{ MP_ROM_QSTR(MP_QSTR_autoreload), MP_ROM_PTR(&supervisor_runtime_autoreload_obj) },
{ MP_ROM_QSTR(MP_QSTR_ble_workflow), MP_ROM_PTR(&supervisor_runtime_ble_workflow_obj) },
{ MP_ROM_QSTR(MP_QSTR_next_stack_limit), MP_ROM_PTR(&supervisor_runtime_next_stack_limit_obj) },

View File

@ -31,12 +31,16 @@
#include "py/obj.h"
#include "shared-bindings/supervisor/RunReason.h"
#include "shared-bindings/supervisor/SafeModeReason.h"
extern const mp_obj_type_t supervisor_runtime_type;
supervisor_run_reason_t supervisor_get_run_reason(void);
void supervisor_set_run_reason(supervisor_run_reason_t run_reason);
safe_mode_t supervisor_get_safe_mode(void);
void supervisor_set_safe_mode(safe_mode_t safe_mode);
bool common_hal_supervisor_runtime_get_serial_connected(void);
bool common_hal_supervisor_runtime_get_serial_bytes_available(void);

View File

@ -0,0 +1,158 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2023 Dan Halbert for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "py/enum.h"
#include "shared-bindings/supervisor/SafeModeReason.h"
// Reuse the non-Python safe_mode_t enum
#include "supervisor/shared/safe_mode.h"
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, NONE, SAFE_MODE_NONE);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, BROWNOUT, SAFE_MODE_BROWNOUT);
// alphabetical from here down
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, FLASH_WRITE_FAIL, SAFE_MODE_FLASH_WRITE_FAIL);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, GC_ALLOC_OUTSIDE_VM, SAFE_MODE_GC_ALLOC_OUTSIDE_VM);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, HARD_FAULT, SAFE_MODE_HARD_FAULT);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, INTERRUPT_ERROR, SAFE_MODE_INTERRUPT_ERROR);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, NLR_JUMP_FAIL, SAFE_MODE_NLR_JUMP_FAIL);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, NO_CIRCUITPY, SAFE_MODE_NO_CIRCUITPY);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, NO_HEAP, SAFE_MODE_NO_HEAP);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, PROGRAMMATIC, SAFE_MODE_PROGRAMMATIC);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, SDK_FATAL_ERROR, SAFE_MODE_SDK_FATAL_ERROR);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, STACK_OVERFLOW, SAFE_MODE_STACK_OVERFLOW);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, USB_BOOT_DEVICE_NOT_INTERFACE_ZERO, SAFE_MODE_USB_BOOT_DEVICE_NOT_INTERFACE_ZERO);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, USB_TOO_MANY_ENDPOINTS, SAFE_MODE_USB_TOO_MANY_ENDPOINTS);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, USB_TOO_MANY_INTERFACE_NAMES, SAFE_MODE_USB_TOO_MANY_INTERFACE_NAMES);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, USER, SAFE_MODE_USER);
MAKE_ENUM_VALUE(supervisor_safe_mode_reason_type, safe_mode_reason, WATCHDOG, SAFE_MODE_WATCHDOG);
//| class SafeModeReason:
//| """The reason that CircuitPython went into safe mode.
//|
//| **Limitations**: Class not available on builds that do not implement ``safemode.py``.
//| """
//|
MAKE_ENUM_MAP(supervisor_safe_mode_reason) {
//| NONE: object
//| """CircuitPython is not in safe mode."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, NONE),
//| BROWNOUT: object
//| """The microcontroller voltage dropped too low."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, BROWNOUT),
// alphabetical from here down
//| FLASH_WRITE_FAIL: object
//| """Could not write to flash memory."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, FLASH_WRITE_FAIL),
//| GC_ALLOC_OUTSIDE_VM: object
//| """CircuitPython tried to allocate storage when its virtual machine was not running."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, GC_ALLOC_OUTSIDE_VM),
//| HARD_FAULT: object
//| """The microcontroller detected a fault, such as an out-of-bounds memory write."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, HARD_FAULT),
//| INTERRUPT_ERROR: object
//| """Internal error related to interrupts."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, INTERRUPT_ERROR),
//| NLR_JUMP_FAIL: object
//| """An error occurred during exception handling, possibly due to memory corruption."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, NLR_JUMP_FAIL),
//| NO_CIRCUITPY: object
//| """The CIRCUITPY drive was not available."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, NO_CIRCUITPY),
//| NO_HEAP: object
//| """Heap storage was not present."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, NO_HEAP),
//| PROGRAMMATIC: object
//| """The program entered safe mode using the `supervisor` module."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, PROGRAMMATIC),
//| SDK_FATAL_ERROR: object
//| """Third party firmware reported a fatal error."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, SDK_FATAL_ERROR),
//| STACK_OVERFLOW: object
//| """The CircuitPython heap was corrupted because the stack was too small."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, STACK_OVERFLOW),
//| USB_BOOT_DEVICE_NOT_INTERFACE_ZERO: object
//| """The USB HID boot device was not set up to be the first device, on interface #0."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, USB_BOOT_DEVICE_NOT_INTERFACE_ZERO),
//| USB_TOO_MANY_ENDPOINTS: object
//| """USB devices need more endpoints than are available."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, USB_TOO_MANY_ENDPOINTS),
//| USB_TOO_MANY_INTERFACE_NAMES: object
//| """USB devices specify too many interface names."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, USB_TOO_MANY_INTERFACE_NAMES),
//| USER: object
//| """The user pressed one or more buttons to enter safe mode.
//| This safe mode does **not** cause ``safemode.py`` to be run, since its purpose
//| is to prevent all user code from running.
//| This allows errors in ``safemode.py`` to be corrected easily.
//| """
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, USER),
//| SAFE_MODE_WATCHDOG: object
//| """An internal watchdog timer expired."""
//|
MAKE_ENUM_MAP_ENTRY(safe_mode_reason, WATCHDOG),
};
STATIC MP_DEFINE_CONST_DICT(supervisor_safe_mode_reason_locals_dict, supervisor_safe_mode_reason_locals_table);
MAKE_PRINTER(supervisor, supervisor_safe_mode_reason);
MAKE_ENUM_TYPE(supervisor, SafeModeReason, supervisor_safe_mode_reason);

View File

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

View File

@ -336,6 +336,11 @@ STATIC const mp_rom_map_elem_t supervisor_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_runtime), MP_ROM_PTR(&common_hal_supervisor_runtime_obj) },
{ MP_ROM_QSTR(MP_QSTR_reload), MP_ROM_PTR(&supervisor_reload_obj) },
{ MP_ROM_QSTR(MP_QSTR_RunReason), MP_ROM_PTR(&supervisor_run_reason_type) },
#if CIRCUITPY_SAFEMODE_PY
{ MP_ROM_QSTR(MP_QSTR_SafeModeReason), MP_ROM_PTR(&supervisor_safe_mode_reason_type) },
#else
{ MP_ROM_QSTR(MP_QSTR_SafeModeReason), MP_ROM_NONE },
#endif
{ MP_ROM_QSTR(MP_QSTR_set_next_code_file), MP_ROM_PTR(&supervisor_set_next_code_file_obj) },
{ MP_ROM_QSTR(MP_QSTR_ticks_ms), MP_ROM_PTR(&supervisor_ticks_ms_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_previous_traceback), MP_ROM_PTR(&supervisor_get_previous_traceback_obj) },

View File

@ -0,0 +1,204 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2023 Mark Komus
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/gifio/OnDiskGif.h"
#include "shared-bindings/displayio/Bitmap.h"
#include <string.h>
#include "py/mperrno.h"
#include "py/runtime.h"
static int32_t GIFReadFile(GIFFILE *pFile, uint8_t *pBuf, int32_t iLen) {
// mp_printf(&mp_plat_print, "GifReadFile len %d ", iLen);
uint32_t iBytesRead;
iBytesRead = iLen;
pyb_file_obj_t *f = pFile->fHandle;
// Note: If you read a file all the way to the last byte, seek() stops working
if ((pFile->iSize - pFile->iPos) < iLen) {
iBytesRead = pFile->iSize - pFile->iPos - 1; // <-- ugly work-around
}
if (iBytesRead <= 0) {
return 0;
}
UINT bytes_read;
if (f_read(&f->fp, pBuf, iBytesRead, &bytes_read) != FR_OK) {
mp_raise_OSError(MP_EIO);
}
pFile->iPos = f->fp.fptr;
// mp_printf(&mp_plat_print, " now at %d\n", pFile->iPos);
return bytes_read;
} /* GIFReadFile() */
static int32_t GIFSeekFile(GIFFILE *pFile, int32_t iPosition) {
// mp_printf(&mp_plat_print, "GifSeekFile %d ", iPosition);
pyb_file_obj_t *f = pFile->fHandle;
f_lseek(&f->fp, iPosition);
pFile->iPos = f->fp.fptr;
// mp_printf(&mp_plat_print, " now at %d\n", pFile->iPos);
return pFile->iPos;
} /* GIFSeekFile() */
static void GIFDraw(GIFDRAW *pDraw) {
// Called for every scan line of the image as it decodes
// The pixels delivered are the 8-bit native GIF output
// The palette is either RGB565 or the original 24-bit RGB values
// depending on the pixel type selected with gif.begin()
displayio_bitmap_t *bitmap = (displayio_bitmap_t *)pDraw->pUser;
uint8_t *s;
uint16_t *d;
int iWidth = pDraw->iWidth;
if (iWidth + pDraw->iX > bitmap->width) {
iWidth = bitmap->width - pDraw->iX;
}
if (pDraw->iY + pDraw->y >= bitmap->height || pDraw->iX >= bitmap->width || iWidth < 1) {
return;
}
int32_t row_start = (pDraw->y + pDraw->iY) * bitmap->stride;
uint32_t *row = bitmap->data + row_start;
s = pDraw->pPixels;
d = (uint16_t *)row;
uint16_t *pPal;
pPal = (uint16_t *)pDraw->pPalette;
if (pDraw->ucDisposalMethod == 2) { // restore to background color
// Not supported currently. Need to reset the area the previous frame occupied
// to the background color before the previous frame was drawn
// See: https://github.com/bitbank2/AnimatedGIF/issues/3
// To workaround clear the gif.bitmap object yourself as required.
}
uint8_t c, ucTransparent = pDraw->ucTransparent;
d += pDraw->iX;
if (pDraw->ucHasTransparency == 1) {
for (int x = 0; x < iWidth; x++)
{
c = *s++;
if (c != ucTransparent) {
*d = pPal[c];
}
d++;
}
} else {
for (int x = 0; x < iWidth; x++)
{
c = *s++;
*d++ = pPal[c];
}
}
}
void common_hal_gifio_ondiskgif_construct(gifio_ondiskgif_t *self, pyb_file_obj_t *file) {
// mp_printf(&mp_plat_print, "Begin OnDiskGif\n");
self->file = file;
GIF_begin(&self->gif, GIF_PALETTE_RGB565_BE);
self->gif.iError = GIF_SUCCESS;
self->gif.pfnRead = GIFReadFile;
self->gif.pfnSeek = GIFSeekFile;
self->gif.pfnDraw = GIFDraw;
self->gif.pfnClose = NULL;
self->gif.pfnOpen = NULL;
self->gif.GIFFile.fHandle = self->file;
f_rewind(&self->file->fp);
self->gif.GIFFile.iSize = (int32_t)f_size(&self->file->fp);
int result = GIF_init(&self->gif);
if (result != 1) {
mp_arg_error_invalid(MP_QSTR_file);
}
displayio_bitmap_t *bitmap = m_new_obj(displayio_bitmap_t);
bitmap->base.type = &displayio_bitmap_type;
common_hal_displayio_bitmap_construct(bitmap, self->gif.iCanvasWidth, self->gif.iCanvasHeight, 16);
self->bitmap = bitmap;
GIFINFO info;
GIF_getInfo(&self->gif, &info);
self->duration = info.iDuration;
self->frame_count = info.iFrameCount;
self->min_delay = info.iMinDelay;
self->max_delay = info.iMaxDelay;
// mp_printf(&mp_plat_print, "GIF_init returned %d %x\n", result, bitmap->data);
}
uint16_t common_hal_gifio_ondiskgif_get_height(gifio_ondiskgif_t *self) {
return (uint16_t)self->gif.iCanvasHeight;
}
uint16_t common_hal_gifio_ondiskgif_get_width(gifio_ondiskgif_t *self) {
return (uint16_t)self->gif.iCanvasWidth;
}
mp_obj_t common_hal_gifio_ondiskgif_get_bitmap(gifio_ondiskgif_t *self) {
return MP_OBJ_FROM_PTR(self->bitmap);
}
int32_t common_hal_gifio_ondiskgif_get_duration(gifio_ondiskgif_t *self) {
return self->duration;
}
int32_t common_hal_gifio_ondiskgif_get_frame_count(gifio_ondiskgif_t *self) {
return self->frame_count;
}
int32_t common_hal_gifio_ondiskgif_get_min_delay(gifio_ondiskgif_t *self) {
return self->min_delay;
}
int32_t common_hal_gifio_ondiskgif_get_max_delay(gifio_ondiskgif_t *self) {
return self->max_delay;
}
uint8_t common_hal_gifio_ondiskgif_next_frame(gifio_ondiskgif_t *self, bool setDirty) {
int nextDelay = 0;
int result = GIF_playFrame(&self->gif, &nextDelay, self->bitmap);
if ((result >= 0) && (setDirty)) {
displayio_area_t dirty_area = {
.x1 = 0,
.y1 = 0,
.x2 = self->bitmap->width,
.y2 = self->bitmap->height,
};
displayio_bitmap_set_dirty_area(self->bitmap, &dirty_area);
}
return nextDelay;
}

View File

@ -0,0 +1,51 @@
/*
* This file is part of the Micro Python project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2023 Mark Komus
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_ONDISKGIF_H
#define MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_ONDISKGIF_H
#include <stdbool.h>
#include <stdint.h>
#include "py/obj.h"
#include "lib/AnimatedGIF/AnimatedGIF_circuitpy.h"
#include "shared-module/displayio/Bitmap.h"
#include "extmod/vfs_fat.h"
typedef struct {
mp_obj_base_t base;
GIFIMAGE gif;
pyb_file_obj_t *file;
displayio_bitmap_t *bitmap;
int32_t duration;
int32_t frame_count;
int32_t min_delay;
int32_t max_delay;
} gifio_ondiskgif_t;
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_ONDISKGIF_H

View File

@ -1,99 +0,0 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_SUPERVISOR_MESSAGES_DEFAULT_H
#define MICROPY_SUPERVISOR_MESSAGES_DEFAULT_H
#ifndef MSG_OUTPUT_SUFFIX
#define MSG_OUTPUT_SUFFIX " output:\r\n"
#endif
#ifndef MSG_NEWLINE
#define MSG_NEWLINE "\r\n"
#endif
#ifndef MSG_AUTORELOAD_ON
#define MSG_AUTORELOAD_ON "Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.\r\n"
#endif
#ifndef MSG_AUTORELOAD_OFF
#define MSG_AUTORELOAD_OFF "Auto-reload is off.\r\n"
#endif
#ifndef MSG_SAFE_MODE_ON
#define MSG_SAFE_MODE_ON "Running in safe mode! Auto-reload is off.\r\n"
#endif
#ifndef MSG_SAFE_MODE_NO_MAIN
#define MSG_SAFE_MODE_NO_MAIN "Running in safe mode! Not running saved code.\r\n"
#endif
#ifndef MSG_SAFE_MODE_USER_REQUESTED
#define MSG_SAFE_MODE_USER_REQUESTED "You requested starting safe mode by "
#endif
#ifndef MSG_SAFE_MODE_USER_EXIT
#define MSG_SAFE_MODE_USER_EXIT "To exit, please reset the board without "
#endif
#ifndef MSG_BAD_SAFE_MODE
#define MSG_BAD_SAFE_MODE "You are running in safe mode which means something really bad happened."
#endif
#ifndef MSG_SAFE_MODE_CRASH
#define MSG_SAFE_MODE_CRASH "Looks like our core CircuitPython code crashed hard. Whoops!"
#endif
#ifndef MSG_SAFE_MODE_FILE_ISSUE
#define MSG_SAFE_MODE_FILE_ISSUE "Please file an issue here with the contents of your CIRCUITPY drive:"
#endif
#ifndef MSG_SAFE_MODE_ISSUE_LINK
#define MSG_SAFE_MODE_ISSUE_LINK "https://github.com/adafruit/circuitpython/issues"
#endif
#ifndef MSG_SAFE_MODE_BROWN_OUT_LINE_1
#define MSG_SAFE_MODE_BROWN_OUT_LINE_1 "The microcontroller's power dipped. Please make sure your power supply provides"
#endif
#ifndef MSG_SAFE_MODE_BROWN_OUT_LINE_2
#define MSG_SAFE_MODE_BROWN_OUT_LINE_2 "enough power for the whole circuit and press reset (after ejecting CIRCUITPY)."
#endif
#ifndef MSG_WAIT_BEFORE_REPL
#define MSG_WAIT_BEFORE_REPL "Press any key to enter the REPL. Use CTRL-D to reload."
#endif
// Be careful, some tools depend on this.
#ifndef MSG_SOFT_REBOOT
#define MSG_SOFT_REBOOT "soft reboot"
#endif
#ifndef MSG_DOUBLE_FILE_EXTENSION
#define MSG_DOUBLE_FILE_EXTENSION "WARNING: Your code filename has two extensions\r\n"
#endif
#endif // MICROPY_SUPERVISOR_MESSAGES_DEFAULT_H

View File

@ -43,20 +43,28 @@
#define SAFE_MODE_DATA_GUARD 0xad0000af
#define SAFE_MODE_DATA_GUARD_MASK 0xff0000ff
static safe_mode_t current_safe_mode;
static safe_mode_t _safe_mode;
safe_mode_t get_safe_mode(void) {
return _safe_mode;
}
void set_safe_mode(safe_mode_t safe_mode) {
_safe_mode = safe_mode;
}
safe_mode_t wait_for_safe_mode_reset(void) {
uint32_t reset_state = port_get_saved_word();
safe_mode_t safe_mode = NO_SAFE_MODE;
safe_mode_t safe_mode = SAFE_MODE_NONE;
if ((reset_state & SAFE_MODE_DATA_GUARD_MASK) == SAFE_MODE_DATA_GUARD) {
safe_mode = (reset_state & ~SAFE_MODE_DATA_GUARD_MASK) >> 8;
}
if (safe_mode != NO_SAFE_MODE) {
if (safe_mode != SAFE_MODE_NONE) {
port_set_saved_word(SAFE_MODE_DATA_GUARD);
current_safe_mode = safe_mode;
_safe_mode = safe_mode;
return safe_mode;
} else {
current_safe_mode = 0;
_safe_mode = SAFE_MODE_NONE;
}
const mcu_reset_reason_t reset_reason = common_hal_mcu_processor_get_reset_reason();
@ -64,12 +72,12 @@ safe_mode_t wait_for_safe_mode_reset(void) {
reset_reason != RESET_REASON_RESET_PIN &&
reset_reason != RESET_REASON_UNKNOWN &&
reset_reason != RESET_REASON_SOFTWARE) {
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
#if CIRCUITPY_SKIP_SAFE_MODE_WAIT
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
#endif
port_set_saved_word(SAFE_MODE_DATA_GUARD | (MANUAL_SAFE_MODE << 8));
port_set_saved_word(SAFE_MODE_DATA_GUARD | (SAFE_MODE_USER << 8));
// Wait for a while to allow for reset.
#if CIRCUITPY_STATUS_LED
@ -106,11 +114,11 @@ safe_mode_t wait_for_safe_mode_reset(void) {
status_led_deinit();
#endif
if (boot_in_safe_mode) {
return USER_SAFE_MODE;
return SAFE_MODE_USER;
}
// Restore the original state of the saved word if no reset occured during our wait period.
port_set_saved_word(reset_state);
return NO_SAFE_MODE;
return SAFE_MODE_NONE;
}
void safe_mode_on_next_reset(safe_mode_t reason) {
@ -119,7 +127,7 @@ void safe_mode_on_next_reset(safe_mode_t reason) {
// Don't inline this so it's easy to break on it from GDB.
void __attribute__((noinline,)) reset_into_safe_mode(safe_mode_t reason) {
if (current_safe_mode > BROWNOUT && reason > BROWNOUT) {
if (_safe_mode > SAFE_MODE_BROWNOUT && reason > SAFE_MODE_BROWNOUT) {
while (true) {
// This very bad because it means running in safe mode didn't save us. Only ignore brownout
// because it may be due to a switch bouncing.
@ -133,105 +141,95 @@ void __attribute__((noinline,)) reset_into_safe_mode(safe_mode_t reason) {
void print_safe_mode_message(safe_mode_t reason) {
if (reason == NO_SAFE_MODE) {
if (reason == SAFE_MODE_NONE) {
return;
}
serial_write("\r\n");
serial_write_compressed(translate("You are in safe mode because:\n"));
serial_write_compressed(translate("\nYou are in safe mode because:\n"));
const compressed_string_t *message = NULL;
// First check for safe mode reasons that do not necessarily reflect bugs.
switch (reason) {
case USER_SAFE_MODE:
case SAFE_MODE_BROWNOUT:
message = translate("The power dipped. Make sure you are providing enough power.");
break;
case SAFE_MODE_USER:
#if defined(BOARD_USER_SAFE_MODE_ACTION)
message = BOARD_USER_SAFE_MODE_ACTION;
#elif defined(CIRCUITPY_BOOT_BUTTON)
message = translate("The BOOT button was pressed at start up.\n");
#endif
#if defined(BOARD_USER_SAFE_MODE_ACTION) || defined(CIRCUITPY_BOOT_BUTTON)
// Output a user safe mode string if it's set.
serial_write_compressed(message);
message = translate("To exit, please reset the board without requesting safe mode.");
// The final piece is printed below.
message = translate("You pressed the BOOT button at start up");
#else
message = translate("You pressed the reset button during boot.");
#endif
break;
case MANUAL_SAFE_MODE:
message = translate("You pressed the reset button during boot. Press again to exit safe mode.");
case SAFE_MODE_NO_CIRCUITPY:
message = translate("CIRCUITPY drive could not be found or created.");
break;
case PROGRAMMATIC_SAFE_MODE:
message = translate("The `microcontroller` module was used to boot into safe mode. Press reset to exit safe mode.");
case SAFE_MODE_PROGRAMMATIC:
message = translate("The `microcontroller` module was used to boot into safe mode.");
break;
case BROWNOUT:
message = translate("The microcontroller's power dipped. Make sure your power supply provides\nenough power for the whole circuit and press reset (after ejecting CIRCUITPY).");
#if CIRCUITPY_SAFEMODE_PY
case SAFE_MODE_SAFEMODE_PY_ERROR:
message = translate("Error in safemode.py.");
break;
case USB_TOO_MANY_ENDPOINTS:
#endif
case SAFE_MODE_STACK_OVERFLOW:
message = translate("Heap was corrupted because the stack was too small. Increase stack size.");
break;
case SAFE_MODE_USB_TOO_MANY_ENDPOINTS:
message = translate("USB devices need more endpoints than are available.");
break;
case USB_TOO_MANY_INTERFACE_NAMES:
case SAFE_MODE_USB_TOO_MANY_INTERFACE_NAMES:
message = translate("USB devices specify too many interface names.");
break;
case USB_BOOT_DEVICE_NOT_INTERFACE_ZERO:
message = translate("Boot device must be first device (interface #0).");
case SAFE_MODE_USB_BOOT_DEVICE_NOT_INTERFACE_ZERO:
message = translate("Boot device must be first (interface #0).");
break;
case WATCHDOG_RESET:
case SAFE_MODE_WATCHDOG:
message = translate("Internal watchdog timer expired.");
break;
case NO_CIRCUITPY:
message = translate("CIRCUITPY drive could not be found or created.");
break;
default:
break;
}
if (message) {
// Non-crash safe mode.
serial_write_compressed(message);
serial_write("\r\n");
return;
} else {
// Something worse happened.
serial_write_compressed(translate("CircuitPython core code crashed hard. Whoops!\n"));
switch (reason) {
case SAFE_MODE_GC_ALLOC_OUTSIDE_VM:
message = translate("Heap allocation when VM not running.");
break;
case SAFE_MODE_FLASH_WRITE_FAIL:
message = translate("Failed to write internal flash.");
break;
case SAFE_MODE_HARD_FAULT:
message = translate("Fault detected by hardware.");
break;
case SAFE_MODE_INTERRUPT_ERROR:
message = translate("Interrupt error.");
break;
case SAFE_MODE_NLR_JUMP_FAIL:
message = translate("NLR jump failed. Likely memory corruption.");
break;
case SAFE_MODE_NO_HEAP:
message = translate("Unable to allocate the heap.");
break;
case SAFE_MODE_SDK_FATAL_ERROR:
message = translate("Third-party firmware fatal error.");
break;
default:
message = translate("Unknown reason.");
break;
}
serial_write_compressed(message);
serial_write_compressed(translate("\nPlease file an issue with your program at https://github.com/adafruit/circuitpython/issues."));
}
// Something worse happened.
serial_write_compressed(translate("CircuitPython core code crashed hard. Whoops!\n"));
switch (reason) {
case HARD_CRASH:
message = translate("Crash into the HardFault_Handler.");
break;
case MICROPY_NLR_JUMP_FAIL:
message = translate("NLR jump failed. Likely memory corruption.");
break;
case MICROPY_FATAL_ERROR:
message = translate("Fatal error.");
break;
case NO_HEAP:
message = translate("CircuitPython was unable to allocate the heap.");
break;
case HEAP_OVERWRITTEN:
message = translate("The CircuitPython heap was corrupted because the stack was too small.\nIncrease the stack size if you know how. If not:");
break;
case GC_ALLOC_OUTSIDE_VM:
message = translate("Attempted heap allocation when VM not running.");
break;
#ifdef SOFTDEVICE_PRESENT
// defined in ports/nrf/bluetooth/bluetooth_common.mk
// will print "Unknown reason" if somehow encountered on other ports
case NORDIC_SOFT_DEVICE_ASSERT:
message = translate("Nordic system firmware failure assertion.");
break;
#endif
case FLASH_WRITE_FAIL:
message = translate("Failed to write internal flash.");
break;
case MEM_MANAGE:
message = translate("Invalid memory access.");
break;
default:
message = translate("Unknown reason.");
break;
}
serial_write_compressed(message);
serial_write_compressed(translate("\nPlease file an issue with the contents of your CIRCUITPY drive at \nhttps://github.com/adafruit/circuitpython/issues\n"));
// Always tell user how to get out of safe mode.
serial_write_compressed(translate("\nPress reset to exit safe mode.\n"));
}

View File

@ -30,27 +30,32 @@
#include "py/mpconfig.h"
typedef enum {
NO_SAFE_MODE = 0,
BROWNOUT,
HARD_CRASH,
USER_SAFE_MODE,
HEAP_OVERWRITTEN,
MANUAL_SAFE_MODE,
MICROPY_NLR_JUMP_FAIL,
MICROPY_FATAL_ERROR,
GC_ALLOC_OUTSIDE_VM,
PROGRAMMATIC_SAFE_MODE,
NORDIC_SOFT_DEVICE_ASSERT,
FLASH_WRITE_FAIL,
MEM_MANAGE,
WATCHDOG_RESET,
USB_TOO_MANY_ENDPOINTS,
USB_TOO_MANY_INTERFACE_NAMES,
USB_BOOT_DEVICE_NOT_INTERFACE_ZERO,
NO_HEAP,
NO_CIRCUITPY,
SAFE_MODE_NONE = 0,
// BROWNOUT should be lowest after SAFE_MODE_NONE.
SAFE_MODE_BROWNOUT,
// alphabetical from here down
SAFE_MODE_FLASH_WRITE_FAIL,
SAFE_MODE_GC_ALLOC_OUTSIDE_VM,
SAFE_MODE_HARD_FAULT,
SAFE_MODE_INTERRUPT_ERROR,
SAFE_MODE_MANUAL,
SAFE_MODE_NLR_JUMP_FAIL,
SAFE_MODE_NO_CIRCUITPY,
SAFE_MODE_NO_HEAP,
SAFE_MODE_PROGRAMMATIC,
SAFE_MODE_SAFEMODE_PY_ERROR,
SAFE_MODE_SDK_FATAL_ERROR,
SAFE_MODE_STACK_OVERFLOW,
SAFE_MODE_USB_BOOT_DEVICE_NOT_INTERFACE_ZERO,
SAFE_MODE_USB_TOO_MANY_ENDPOINTS,
SAFE_MODE_USB_TOO_MANY_INTERFACE_NAMES,
SAFE_MODE_USER,
SAFE_MODE_WATCHDOG,
} safe_mode_t;
safe_mode_t get_safe_mode(void);
void set_safe_mode(safe_mode_t safe_mode);
safe_mode_t wait_for_safe_mode_reset(void);
void safe_mode_on_next_reset(safe_mode_t reason);

View File

@ -74,7 +74,7 @@ inline bool stack_ok(void) {
inline void assert_heap_ok(void) {
if (!stack_ok()) {
reset_into_safe_mode(HEAP_OVERWRITTEN);
reset_into_safe_mode(SAFE_MODE_STACK_OVERFLOW);
}
}

View File

@ -228,7 +228,7 @@ static void usb_build_configuration_descriptor(void) {
if (usb_hid_boot_device() > 0 && descriptor_counts.current_interface > 0) {
// Hosts using boot devices generally to expect them to be at interface zero,
// and will not work properly otherwise.
reset_into_safe_mode(USB_BOOT_DEVICE_NOT_INTERFACE_ZERO);
reset_into_safe_mode(SAFE_MODE_USB_BOOT_DEVICE_NOT_INTERFACE_ZERO);
}
descriptor_buf_remaining += usb_hid_add_descriptor(
descriptor_buf_remaining, &descriptor_counts, &current_interface_string,
@ -258,14 +258,14 @@ static void usb_build_configuration_descriptor(void) {
if (descriptor_counts.current_endpoint > USB_NUM_ENDPOINT_PAIRS ||
descriptor_counts.num_in_endpoints > USB_NUM_IN_ENDPOINTS ||
descriptor_counts.num_out_endpoints > USB_NUM_OUT_ENDPOINTS) {
reset_into_safe_mode(USB_TOO_MANY_ENDPOINTS);
reset_into_safe_mode(SAFE_MODE_USB_TOO_MANY_ENDPOINTS);
}
}
// str must not be on the heap.
void usb_add_interface_string(uint8_t interface_string_index, const char str[]) {
if (interface_string_index > MAX_INTERFACE_STRINGS) {
reset_into_safe_mode(USB_TOO_MANY_INTERFACE_NAMES);
reset_into_safe_mode(SAFE_MODE_USB_TOO_MANY_INTERFACE_NAMES);
}
collected_interface_strings[interface_string_index].char_str = str;

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