MicroPython 升级至 1.8.6

v1.8.6SP8266 port uses SDK 2.0, has more heap, has support for 512k devicesA detailed list of changes follows. py core: – py.mk: automatically add frozen.c to source list if FROZEN_DIR is defined – be more specific with MP_DECLARE_CONST_FUN_OBJ macros – specialise builtin funcs to use separate type for fixed arg count – modbuiltins,obj: use MP_PYTHON_PRINTER where possible – modbuiltins: add builtin "slice", pointing to existing slice type – add "delattr" builtin, conditional on MICROPY_CPYTHON_COMPAT – sequence: fix reverse slicing of lists – fix null pointer dereference in mpz.c, fix missing va_end in warning.c – remove asserts that are always true in emitbc.c – fix wrong assumption that m_renew will not move if shrinking – change config default so m_malloc0 uses memset if GC not enabled – add MICROPY_FLOAT_CONST macro for defining float constants – move frozen bytecode Makefile rules from ports to common mk files – strip leading dirs from frozen mpy files, so any path can be usedextmod: – vfs_fat_file: check fatfs f_sync() and f_close() returns for errors – vfs_fat_file: make file.close() a no-op if file already closed – utime_mphal: ticks_diff(): switch arg order, return signed value – utime_mphal: add MP_THREAD_GIL_EXIT/ENTER warppers for sleep functions – utime_mphal: implement ticks_add(), add to all maintained ports – utime_mphal: allow ticks functions period be configurable by a portlib: – utils/pyhelp.c: use mp_printf() instead of printf() – utils/pyexec: add mp_hal_set_interrupt_char() prototype – libm: move Thumb-specific sqrtf function to separate filedrivers: – add "from micropython import const" when const is usedtools: – upgrade upip to 1.1.4: fix error on unix when installing to non-existing absolute path – pip-micropython: remove deprecated wrapper tool – check_code_size.sh: code size validation script for CI – replace upip tarball with just source file, to make its inclusion as frozen modules in multiple ports less magictests: – extmod/vfs_fat: improve VFS test coverage – basics/builtin_slice: add test for "slice" builtin name – basics: add test for builtin "delattr" – extmod/vfs_fat_fsusermount: improve fsusermount test coverage – extmod/vfs_fat_oldproto: test old block device protocol – basics/gc1: garbage collector threshold() coverage – extmod/uhashlib_sha1: coverage for SHA1 algorithm – extmod/uhashlib_sha256: rename sha256.py test – btree1: fix out of memory error running on esp8266 – extmod/ticks_diff: test for new semantics of ticks_diff() – extmod/framebuf1: test framebuffer pixel clear, and text functionminimal port: – Makefile: split rule for firmware.bin generationunix port: – Makefile: remove references to deprecated pip-micropython – modtime: use ticks_diff() implementation from extmod/utime_mphal.c – mphalport.h: add warning of mp_hal_delay_ms() implementation – modtime: switch ticks/sleep_ms/us() to utime_mphal – fix symbol references for x86 Mac – replace upip tarball with just source filewindows port: – enable utime_mphal following unix, define mp_hal_ticks_* – fix utime_mphal compilation for msvc – implement mp_hal_ticks_cpu in terms of QueryPerformanceCounterqemu-arm port: – exclude ticks_diff test for qemu-arm port – exclude extmod/vfs_fat_fileio.py test – exclude new vfs_fat tests – enable software floating point support, and float testsstmhal port: – modutime: refactor to use extmod's version of ticks_cpu – refactor pin usage to use mp_hal_pin API – led: refactor LED to use mp_hal_pin_output() init function – Makefile: use standard rules for frozen module generation – modutime: consistently convert to MP_ROM_QSTR/MP_ROM_PTR – enable SD power save (disable CLK on idle)cc3200 port: – use mp_raise_XXX helper functions to reduce code size – mods/pybspi: allow "write" arg of read/readinto to be positional – enable loading of precompiled .mpy files – fix thread mutex's so threading works with interruptsteensy port: – update to provide new mp_hal_pin_XXX functions following stmhalesp8266 port: – Makefile: use latest esptool.py flash size auto-detection – esp_init_data: auto-initialize system params with vendor SDK 2.0.0 – esp8266.ld: move help.o to iROM – esp8266.ld: move modmachine.o to iROM – esp8266.ld: move main.o to iROM – add MP_FASTCODE modifier to put a function to iRAM – main: mark nlr_jump_fail() as MP_FASTCODE – modules/webrepl: enforce only one concurrent WebREPL connection – etshal.h: add few more ESP8266 vendor lib prototypes – modesp: add flash_user_start() function – add support for building firmware version for 512K modules – scripts: make neopixel/apa102 handle 4bpp LEDs with common code – modutime: consistently convert to MP_ROM_QSTR/MP_ROM_PTR – modnetwork: config(): fix copy-paste error in setting "mac" – scripts/port_diag: add descriptions for esf_buf types – modnetwork.c: allows AP reconnection without WiFi credentials – main: bump heap size to 36K – etshal.h: add prototypes for SPIRead/SPIWrite/SPIEraseSector – etshal.h: adjust size of MD5_CTX structure – modules: fix negative temperature in ds18x20 driver – rename "machine" module implementation to use contemporary naming – rework webrepl_setup to run over wired REPL – espneopixel.c: solve glitching LED issues with cpu at 80MHz – include upip as a standard frozen bytecode module – update docs for esptool 1.2.1/SDK 2.0 (–flash_size=detect) – modnetwork.c: expose configuration for station DHCP hostnamezephyr port: – implement utime module – use board/SoC values for startup banner based on Zephyr config – initial implementation of machine.Pin – zephyr_getchar: update for recent Zephyr refactor of console hooks – support time -> utime module "weaklink" – README: update for the current featureset, add more info – mpconfigport.h: move less important params to the bottom – Makefile: allow to adjust heap size from make command line – Makefile: update comments to the current state of affairs – Makefile: allow to override Zephyr config from make command line – Makefile: add minimal port – Makefile: add -fomit-frame-pointer to reduce code size – mphalport.h: update for new "unified" kernal API (sleep functions)docs: – machine.SPI: bring up to date with Hardware API, make vendor-neutral – machine.SPI: improve descriptions of xfer methods – library/builtins: add docs for delattr and slice – library/network: reword intro paragraph – library/network: typo fixes, consistent acronym capitalization – library/index: update TOCs so builtins sorted before modules – utime: document ticks_cpu() in more detail – utime: describe new semantics of ticks_diff() (signed ring arithmetics) – utime: add docs for ticks_add(), improvements for other ticks_*() – esp8266: update for new WebREPL setup procedure – */quickref.rst: use new semantics of ticks_diff() – library/machine.Pin: update Pin docs to align with new HW APItravis: – integrate tools/check_code_size.sh – minimal: Use CROSS=1, for binary size checkexamples: – http_server_simplistic: add "not suitable for real use" note – hwapi: example showing best practices for HW API usage in apps – hwapi: add hwconfig for DragonBoard 410c

Visit site:

MicroPython 升级至 1.8.6