- 04 4月, 2020 1 次提交
-
-
由 Damien George 提交于
This commit changes the esp8266 boards to use littlefs v2 as the filesystem, rather than FAT. Since the esp8266 doesn't expose the filesystem to the PC over USB there's no strong reason to keep it as FAT. Littlefs is smaller in code size, is more efficient in use of flash to store data, is resilient over power failure, and using it saves about 4k of heap RAM, which can now be used for other things. This is a backwards incompatible change because all existing esp8266 boards will need to update their filesystem after installing new firmware (eg backup old files, install firmware, restore files to new filesystem). As part of this commit the memory layout of the default board (GENERIC) has changed. It now allocates all 1M of memory-mapped flash to the firmware, so the filesystem area starts at the 2M point. This is done to allow more frozen bytecode to be stored in the 1M of memory-mapped flash. This requires an esp8266 module with 2M or more of flash to work, so a new board called GENERIC_1M is added which has the old memory-mapping (but still changed to use littlefs for the filesystem). In summary there are now 3 esp8266 board definitions: - GENERIC_512K: for 512k modules, doesn't have a filesystem. - GENERIC_1M: for 1M modules, 572k for firmware+frozen code, 396k for filesystem (littlefs). - GENERIC: for 2M (or greater) modules, 968k for firmware+frozen code, 1M+ for filesystem (littlefs), FAT driver also included in firmware for use on, eg, external SD cards.
-
- 28 3月, 2020 1 次提交
-
-
由 Damien George 提交于
Using new options enabled in the uncrustify configuration.
-
- 25 3月, 2020 1 次提交
-
-
由 Damien George 提交于
Only included in GENERIC build.
-
- 24 3月, 2020 3 次提交
-
-
由 Zoltán Vörös 提交于
This function is not used by the core but having it as part of the build allows it to be used by user C modules, or board extensions. The linker won't include it in the final firmware if it remains unused.
-
由 Damien George 提交于
Fixes issue #5780.
-
由 Damien George 提交于
Using new options enabled in the uncrustify configuration.
-
- 22 3月, 2020 1 次提交
-
-
由 Jim Mussared 提交于
-
- 20 3月, 2020 1 次提交
-
-
由 Damien George 提交于
Fixes issue #5764.
-
- 10 3月, 2020 1 次提交
-
-
由 Damien George 提交于
Otherwise ets_loop_iter may be reentered. Related to issue #5714.
-
- 28 2月, 2020 2 次提交
-
-
由 Damien George 提交于
This is run with uncrustify 0.70.1, and black 19.10b0.
-
由 Damien George 提交于
This string is recognised by uncrustify, to disable formatting in the region marked by these comments. This is necessary in the qstrdef*.h files to prevent modification of the strings within the Q(...). In other places it is used to prevent excessive reformatting that would make the code less readable.
-
- 13 2月, 2020 1 次提交
-
-
由 Damien George 提交于
This commit adds mp_raise_msg_varg(type, fmt, ...) as a helper for nlr_raise(mp_obj_new_exception_msg_varg(type, fmt, ...)). It makes the C-level API for raising exceptions more consistent, and reduces code size on most ports: bare-arm: +28 +0.042% minimal x86: +100 +0.067% unix x64: -56 -0.011% unix nanbox: -300 -0.068% stm32: -204 -0.054% PYBV10 cc3200: +0 +0.000% esp8266: -64 -0.010% GENERIC esp32: -104 -0.007% GENERIC nrf: -136 -0.094% pca10040 samd: +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
-
- 07 2月, 2020 2 次提交
-
-
由 Damien George 提交于
It was originally in IRAM due to the linker script specification, but since the function moved from lib/utils/interrupt_char.c to py/scheduler.c it needs to be put back in IRAM.
-
由 Damien George 提交于
Previous behaviour is when this argument is set to "true", in which case the function will raise any pending exception. Setting it to "false" will cancel any pending exception.
-
- 31 1月, 2020 1 次提交
-
-
由 Damien George 提交于
The ability to change the host is a frequently requested feature, so explicitly document how it can be achieved using the existing code. See issues #2121, #4385, #4622, #5122, #5536.
-
- 14 1月, 2020 1 次提交
-
-
由 JensDiemer 提交于
Prior to this commit, if the flash filesystem was not formatted then it would error: "AttributeError: 'FlashBdev' object has no attribute 'mount'". That is due to it not being able to detect the filesystem on the block device and just trying to mount the block device directly. This commit fixes the issue by just catching all exceptions. Also it's not needed to try the mount if `flashbdev.bdev` is None.
-
- 27 12月, 2019 1 次提交
-
-
由 David Lechner 提交于
Many ports already allow overriding CROSS_COMPILE. This modifies the remaining ports to allow it as well.
-
- 20 12月, 2019 1 次提交
-
-
由 Jim Mussared 提交于
Move webrepl support code from ports/esp8266/modules into extmod/webrepl (to be alongside extmod/modwebrepl.c), and use frozen manifests to include it in the build on esp8266 and esp32. A small modification is made to webrepl.py to make it work on non-ESP ports, i.e. don't call dupterm_notify if not available.
-
- 12 12月, 2019 1 次提交
-
-
由 Damien George 提交于
Implements text, rodata and bss generalised relocations, as well as generic qstr-object linking. This allows importing dynamic native modules on all supported architectures in a unified way.
-
- 11 11月, 2019 1 次提交
-
-
由 Damien George 提交于
This commit removes the Makefile-level MICROPY_FATFS config and moves the MICROPY_VFS_FAT config to the Makefile level to replace it. It also moves the include of the oofatfs source files in the build from each port to a central place in extmod/extmod.mk. For a port to enabled VFS FAT support it should now set MICROPY_VFS_FAT=1 at the level of the Makefile. This will include the relevant oofatfs files in the build and set MICROPY_VFS_FAT=1 at the C (preprocessor) level.
-
- 07 11月, 2019 2 次提交
-
-
由 Damien George 提交于
With this commit an esp8266-based board can now be built with littlefs support via, eg "make MICROPY_VFS_LFS2=1".
-
由 Damien George 提交于
-
- 05 11月, 2019 1 次提交
-
-
由 Damien George 提交于
This helper function was added a while ago and these are the remaining cases to convert, to save a bit of code size.
-
- 29 10月, 2019 1 次提交
-
-
由 Damien George 提交于
Also rename SEC_COUNT to BLOCK_COUNT and SEC_SIZE to BLOCK_SIZE.
-
- 22 10月, 2019 1 次提交
-
-
由 Damien George 提交于
This commit implements automatic module weak links for all built-in modules, by searching for "ufoo" in the built-in module list if "foo" cannot be found. This means that all modules named "ufoo" are always available as "foo". Also, a port can no longer add any other weak links, which makes strict the definition of a weak link. It saves some code size (about 100-200 bytes) on ports that previously had lots of weak links. Some changes from the previous behaviour: - It doesn't intern the non-u module names (eg "foo" is not interned), which saves code size, but will mean that "import foo" creates a new qstr (namely "foo") in RAM (unless the importing module is frozen). - help('modules') no longer lists non-u module names, only the u-variants; this reduces duplication in the help listing. Weak links are effectively the same as having a set of symbolic links on the filesystem that is searched last. So an "import foo" will search built-in modules first, then all paths in sys.path, then weak links last, importing "ufoo" if it exists. Thus a file called "foo.py" somewhere in sys.path will still have precedence over the weak link of "foo" to "ufoo". See issues: #1740, #4449, #5229, #5241.
-
- 21 10月, 2019 3 次提交
-
-
由 Damien George 提交于
A release also sets: UART_OS = -1
-
由 Jim Mussared 提交于
-
由 Jim Mussared 提交于
When loading a manifest file, e.g. by include(), it will chdir first to the directory of that manifest. This means that all file operations within a manifest are relative to that manifest's location. As a consequence of this, additional environment variables are needed to find absolute paths, so the following are added: $(MPY_LIB_DIR), $(PORT_DIR), $(BOARD_DIR). And rename $(MPY) to $(MPY_DIR) to be consistent. Existing manifests are updated to match.
-
- 15 10月, 2019 2 次提交
-
-
由 Damien George 提交于
Removes symlinks in modules directory, all frozen code is now specified by manifest.py.
-
由 Damien George 提交于
-
- 10 10月, 2019 2 次提交
-
-
由 Damien George 提交于
Fixes issue #5189.
-
由 Mike Causer 提交于
The specific board can be selected with the BOARD makefile variable. This defaults (if not specified) to BOARD=GENERIC, which is the original default firmware build. For the 512k target use BOARD=GENERIC_512K.
-
- 05 9月, 2019 1 次提交
-
-
由 Damien George 提交于
-
- 04 9月, 2019 1 次提交
-
-
由 Damien George 提交于
-
- 30 8月, 2019 1 次提交
-
-
由 Damien George 提交于
-
- 21 8月, 2019 1 次提交
-
-
由 Damien George 提交于
Via the standard tx/rx arguments: UART(0, 115200, tx=Pin(15), rx=Pin(13)). Resolves issue #4718.
-
- 06 8月, 2019 1 次提交
-
-
由 Damien George 提交于
-
- 03 7月, 2019 1 次提交
-
-
由 Damien George 提交于
Since the esp8266 has a small stack this buffer is kept in the BSS.
-
- 01 7月, 2019 2 次提交
-
-
由 Damien George 提交于
So that the timeout for machine.time_pulse_us() can be large. Fixes issue #2775.
-
由 Damien George 提交于
-