阅 2948|回 0
- 最后登录
- 2024-11-23
- 在线时间
- 4843 小时
- 威望
- 13434分
- 芯积分
- 3886分(兑换)
- E金币
- 1459枚(兑换)(兑换)
- 好友
- 60
版主
|
昨天(11月10日),micropython升级到1.8.6版本。
主要更新:
- v1.8.6 ESP8266 port uses SDK 2.0, has more heap, has support for 512k devices
-
- This release brings some code size reductions to the core as well as
- more tests and improved coverage which is now at 94.3%.
-
- The time.ticks_diff(a, b) function has changed: the order of the arguments
- has been swapped so that it behaves like "a - b", and it can now return a
- negative number if "a" came before "b" (modulo the period of the ticks
- functions).
-
- For the ESP8266 port the Espressif SDK has been updated to 2.0.0, the
- heap has been increased from 28k to 36k, and there is support for 512k
- devices via "make 512k". upip is included by default as frozen bytecode.
- The network module now allows access-point reconnection without WiFi
- credentials, and exposes configuration for the station DHCP hostname. The
- DS18B20 driver now handles negative temperatures, and NeoPixel and APA102
- drivers handle 4 bytes-per-pixel LEDs.
-
- For the CC3200 port there is now support for loading of precompiled .mpy
- files and threading now works properly with interrupts.
-
- A 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 used
-
- extmod:
- - 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 port
-
- lib:
- - 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 file
-
- drivers:
- - add "from micropython import const" when const is used
-
- tools:
- - 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 magic
-
- tests:
- - 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 function
-
- minimal port:
- - Makefile: split rule for firmware.bin generation
-
- unix 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 file
-
- windows port:
- - enable utime_mphal following unix, define mp_hal_ticks_*
- - fix utime_mphal compilation for msvc
- - implement mp_hal_ticks_cpu in terms of QueryPerformanceCounter
-
- qemu-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 tests
-
- stmhal 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 interrupts
-
- teensy port:
- - update to provide new mp_hal_pin_XXX functions following stmhal
-
- esp8266 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 hostname
-
- zephyr 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 API
-
- travis:
- - integrate tools/check_code_size.sh
- - minimal: Use CROSS=1, for binary size check
-
- examples:
- - 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
复制代码
|
|