立即注册

micropython-microbit 中文社区

查看: 100|回复: 1

micropython升级到v1.11

[复制链接]
  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2019-5-29 15:55:36 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    MicroPython升级到了v1.11,下面是本次更新的主要变化:

    Improved mpy format with support for native code, and new JavaScript port

    In this release the mpy file format has been moved to version 4 and has some significant improvements: mpy file size is reduced on average by about 35%, loading time of mpy files is reduced by about 40%, and they now have support to save native, viper and inline assembler code (or machine code generated from any other source). Size reduction of mpy files was achieved by adding a qstr window to reuse past qstrs when encoding them, by packing qstrs directly in the bytecode, and by defining a static qstr set.
    Some VM opcodes were also changed to fix a bug when doing a break/continue out of a finally block, and to make some simplifications. In particular POP_BLOCK and POP_EXCEPT opcodes were replaced with POP_EXCEPT_JUMP.
    Most uppercase macros have been converted to lowercase to make a more consistent C API, including all MP_OBJ_IS_xxx and MP_xxx_SLOT_IS_FILLED macros.
    The default PYTHON makefile variable is now changed from "python" to "python3", but Python 2 is still supported via "make PYTHON=python2".
    The mpy-cross compiler supports the new mpy version 4 and has new command line options: "-march=" to select the native emitter, and "--version" to print the MicroPython version and the mpy version. Also mpy-tool.py has support for freezing native code.
    A module system for external, user C modules has been implemented and documentation for this is available in the new "docs/develop" section.
    A new "javascript" port has been added which targets JavaScript as the machine via Emscripten. This allows to run MicroPython as an application within node.js, and to run it within a browser (among other things).
    All bare-metal ports have the following improvements: machine.sleep() is now machine.lightsleep(), and both lightsleep() and deepsleep() now take an optional argument which is the maximum time to sleep in milliseconds. These ports also now allow freezing of boot.py and main.py using the usual methods. And a new I2C method i2c.writevto(addr, vect) is added which can be used to write a tuple/list of buffers all at once to an I2C device.
    The stm32 port now has a fully integrated Ethernet MAC driver (see the network.LAN class) using lwIP for the TCP/IP stack, and sockets were made significantly more robust. Support for F413 MCUs was added. There are also some minor user-facing changes to this port:

    • machine.UART (and pyb.UART) now defaults to timeout=0 (was 1000ms) which gives UARTs a non-blocking behaviour.
    • The USB REPL is now configurable using uos.dupterm, and by default pyb.USB_VCP(0) is put on dupterm slot 1 before boot.py is executed. To disable the default REPL use: uos.dupterm(None, 1).
    • pyb.DAC(id) will now only reset the DAC the first time it is called; to get the old behaviour pass the bits parameter like: pyb.DAC(id, bits).
    • pyb.DAC.noise() and pyb.DAC.triangle() now output at full scale.
    • The system will not recreate boot.py if it's missing (it will only create it if the filesystem is corrupt, or when doing a factory reset).



    For the esp32 port, the build process has been updated to align better with the ESP IDF and now uses sdkconfig to configure features. Dual core mode is now enabled by default, SPIRAM is in memory-mapped mode so all of it can be used for the MicroPython heap, there is support to change the CPU frequency, and the WDT now panics and resets the device if it times out.
    A detailed list of changes follows.

    py core:
    • remove calls to file reader functions when these are disabled
    • add optional support for 2-argument version of built-in next()
    • compile: swap order of pop_block/pop_except in "except as" handler
    • warning: support categories for warnings
    • builtinhelp: only print help re FS modules if external import enabled
    • downcase all MP_OBJ_IS_xxx macros to make a more consistent C API
    • downcase MP_xxx_SLOT_IS_FILLED inline functions
    • mkenv.mk: change default PYTHON variable from "python" to "python3"
    • qstr: evaluate find_qstr only once then pass to Q_GET_HASH macro
    • obj.h: remove obsolete mp_obj_new_fun_viper() declaration
    • objfun: make fun_data arg of mp_obj_new_fun_asm() a const pointer
    • eliminate warnings about unused arguments when debugging disabled
    • compile: fix handling of unwinding BaseException in async with
    • compile: add optimisation to compile OrderedDict inplace
    • objexcept: fix hash of exc str created in mp_obj_new_exception_msg
    • py.mk: update lwip build config to work with latest lwip version
    • fix VM crash with unwinding jump out of a finally block
    • vm: remove currently_in_except_block variable
    • replace POP_BLOCK and POP_EXCEPT opcodes with POP_EXCEPT_JUMP
    • persistentcode: add a qstr window to save mpy files more efficiently
    • persistentcode: pack qstrs directly in bytecode to reduce mpy size
    • persistentcode: define static qstr set to reduce size of mpy files
    • add independent config for debugging sentinel object values
    • emitnative: consolidate where HASCONSTS is set to load-const-obj fun
    • emitnative: provide concentrated points of qstr emit
    • emitnative: adjust accounting of size of const_table
    • emitglue: remove union in mp_raw_code_t to combine bytecode & native
    • add support to save native, viper and asm code to .mpy files
    • persistentcode: bump .mpy version to 4
    • allow registration of modules at their definition
    • implement a module system for external, user C modules
    • update and rework build system for including external C modules
    • move mp_native_type_from_qstr() from emitnative.c to nativeglue.c
    • nativeglue: rename native convert funs to match other native helpers
    • compile: add support to select the native emitter at runtime
    • compile: support multiple inline asm emitters
    • compile: check that arch is set when compiling native, viper or asm
    • runtime: remove long-obsolete MICROPY_FSUSERMOUNT init code
    • scheduler: convert micropythyon.schedule() to a circular buffer
    • nlrthumb: add support for iOS where the C func is _nlr_push_tail
    • makedefs: use io.open with utf-8 encoding when processing source
    • runtime: optimise to not create temp float for int to power negative
    • runtime: fix mp_unpack_ex so seq can't be reclaimed by GC during use
    • mpprint: support printing %ld and %lu formats on 64-bit archs
    • asmthumb: support asm_thumb code running on normal ARM processors
    • native: improve support for bool type in viper functions
    • remove "if (0)" and "if (false)" branches
    • objgenerator: fix handling of None passed as 2nd arg to throw()
    • objgenerator: remove unneeded forward decl and clean up white space
    • misc.h: rename _MP_STRINGIFY to not use leading underscore in ident
    • persistentcode: change "len" type to size_t for mp_obj_str_get_data
    • objarray: add support for memoryview.itemsize attribute
    • objarray: add decode method to bytearray
    • update makefiles to use $(CAT) variable instead of hard coded "cat"
    • update makefiles to use $(TOUCH) instead of hard coded "touch"
    extmod:
    • moduzlib: update to uzlib 2.9.2
    • modlwip: add support for polling UDP sockets for writability
    • moduhashlib: include implementation of sha256 only when required
    • convert legacy uppercase macro names to lowercase
    • moduwebsocket: refactor websocket to uwebsocket
    • modlwip: change #ifdef to #if for check of MICROPY_PY_LWIP
    • modlwip: fix bug when polling listening socket with backlog=1
    • modlwip: add concurrency protection macros
    • modwebrepl: fix logic to handle a put of file of size 0
    • vfs_fat: update for new oofatfs version
    • modlwip: fix case where concurrency lock isn't released on error
    • moduselect: adjust select_select and poll_register to use size_t
    • vfs_fat: fallback to FAT32 if standard FAT16/SFD format fails
    • modlwip: handle case of connection closing while on accept queue
    • modlwip: handle case of accept callback called with null PCB
    • modlwip: protect socket.accept with lwIP concurrency lock
    • modlwip: free any stored incoming bufs/connections on TCP error
    • modlwip: use correct listening socket object in accept callback
    • modlwip: abort TCP conns that didn't close cleanly in a while
    • modurandom: add init method to seed the Yasmarang generator
    • machine_signal: fix fault when no args are passed to Signal()
    • modussl_mbedtls: support non-blocking handshake
    • modussl_axtls: add non-blocking mode support
    • moducryptolib: add optional AES-CTR support
    • modujson: handle parsing of floats with + in the exponent
    • machine_i2c: change C-level API to allow split I2C transactions
    • machine_i2c: remove need for temporary memory in writemem() call
    • machine_i2c: add i2c.writevto() that can write a vector of bufs
    • modlwip: free any incoming bufs/connections before closing PCB
    • modlwip: register TCP close-timeout callback before closing PCB
    lib:
    • utils/pyexec: implement paste mode with event driven REPL
    • utils/printf: exclude __GI_vsnprintf alias for gcc 9 and above
    • utils/gchelper_m3: add license header and clean up code
    • utils/gchelper_m3: add gc_helper_get_sp() function
    • utils/gchelper: add gchelper.h header file for assembler functions
    • netutils: add function to print tracing info for Ethernet frames
    • oofatfs: update oofatfs library to R0.13c working branch
    • oofatfs: update ffconf.h config for new oofatfs version
    • oofatfs: update oofatfs library to fix issue with logic not
    • stm32lib: update library to fix F7 MMC capacity calculation
    • utils/pyexec: add pyexec_file_if_exists() helper function
    • utils: make pyexec_file_if_exists run frozen scripts if they exist
    • utils/interrupt_char: invalidate interrupt char at start up
    • stm32lib: update library to fix UART9/10 baudrate on F4 MCUs
    • nrfx: upgrade nrfx to v1.7.1 plus a UART bug fix
    drivers:
    • memory/spiflash: rework wait_sr to fix uninit'd variable 'sr'
    • display/ssd1306.py: change to use new i2c.writevto() method
    tools:
    • mpy-tool.py: add support for freezing native code
    • upip.py: use "raise arg" instead of no-arg raise form, for native
    • pyboard.py: add missing line from example usage comments
    • mpy-tool.py: adjust use of super() to make it work with Python 2
    • mpy-tool.py: fix init of QStrWindow, and remove unused variable
    • pyboard.py: don't accumulate output data if data_consumer used
    • upip.py: add support for multiple index URLs with custom default
    tests:
    • basics: add tests for try-except-else and try-except-else-finally
    • run-tests: support running native tests via mpy
    • import: add test for importing x64 native code
    • extmod: add test for FAT filesystem on a very large block device
    • run-tests: ignore exception in process kill when ending repl test
    • micropython: add some tests for failed heap allocation
    • skip tests needing machine module if (u)machine doesn't exist
    • ussl_basic: disable setblocking() calls
    • basics/sys1.py: add test for calling sys.exit() without any args
    • pyb: update UART expected output now that default timeout is 0
    • basics: add coverage tests for memoryview attributes
    mpy-cross:
    • enable building of x64 native .mpy files
    • add "-march=" option to select native emitter
    • support compiling with MICROPY_PY___FILE__ enabled
    • automatically select ARMV6 arch when running on such a host
    • add --version command line option to print version info
    all ports:
    • change PYB message prefix to MPY
    • convert legacy uppercase macro names to lowercase
    • update to work with new oofatfs version
    • {stm32,esp8266}: set mpy-cross native arch for frozen native code
    • convert to use pyexec_file_if_exists() to execute boot/main.py
    unix port:
    • mpthreadport: add thread deinit code to stop threads on exit
    • mpthreadport: cleanup used memory on thread exit
    • mpthreadport: remove busy wait loop in thread garbage collection
    • modmachine: handle repeated /dev/mem open errors
    • modffi: eliminate unused-argument warning when debugging disabled
    • Makefile: update coverage tests to match those in Travis
    • mpthreadport: use named semaphores on Mac OS X
    • gcollect: make sure stack/regs get captured properly for GC
    • coverage: add test for printing literal % character
    • modusocket: fix use of setsockopt in usocket.settimeout impl
    • modusocket: raise ETIMEDOUT when connect or accept has timeout
    windows port:
    • fix line wrapping behaviour on the REPL
    qemu-arm port:
    • rework to run bare-metal on boards with Cortex-M CPUs
    • use gchelper code to get registers for GC scanning
    stm32 port:
    • implement machine.lightsleep()
    • rtc: check RTCEN=1 when testing if RTC is already running on boot
    • usbdev: add USB config option for board being self powered
    • usbdev: add USB config option for max power drawn by the board
    • main: make board-defined UART REPL use a static object and buffer
    • boards/stm32f429_af.csv: fix typos in UART defs Tx->TX and Rx->RX
    • mboot: add option to autodetect the USB port that DFU uses
    • sdcard: don't use SD clock bypass on F7 MCUs
    • usb: add flow control option for USB VCP data received from host
    • boards/make-pins.py: add basic support for STM32H7 ADC periphs
    • boards/stm32h743_af.csv: add ADC entries to pin capability table
    • adc: add basic support for ADC on a pin on STM32H7 MCUs
    • mboot: use USB HS as main USB device regardless of USB_HS_IN_FS
    • mboot: add support for STM32F769 MCUs
    • mboot: add support for GPIO ports G, H, I and J
    • mboot: allow deploying via deploy-stlink
    • usb: use USB HS as main USB device regardless of USB_HS_IN_FS
    • usbd_conf: fully support USB HS with external PHY
    • modmachine: make bootloader() enter custom loader if it's enabled
    • boards/STM32F769DISC: support the use of USB HS with external PHY
    • boards/STM32F769DISC: configure for use with mboot by default
    • systick: rename sys_tick_XXX functions to systick_XXX
    • systick: make periodic systick callbacks use a cyclic func table
    • pendsv: clean up pendsv IRQ handler and eliminate duplicate code
    • pendsv: add ability to schedule callbacks at pendsv IRQ level
    • systick: provide better compile-time configurability of slots
    • modnetwork: change lwIP polling to be based on background systick
    • move gchelper assembler code to lib/utils for use by other ports
    • gccollect: use gchelper.h header instead of explicit declaration
    • pendsv: fix inline asm constant and prefix with # character
    • mboot/Makefile: support specifying BOARD_DIR for custom board
    • boards/NUCLEO_L476RG: add support for RNG, DAC and CAN1
    • boards/make-pins.py: add cmdline options to support use by mboot
    • mboot/Makefile: generate all pin header files from board pins.csv
    • mboot/mphalport.h: include genhdr/pins.h for access to pin names
    • qspi: use static af functions for pin configuration
    • mboot: add support for loading gzip'd firmware from a filesystem
    • mboot: move some BSS vars to new section that isn't zeroed out
    • mboot: add support script which can program mboot and application
    • modmachine: add ability to pass through user data to mboot
    • mboot: add hook to run board-specific code early on startup
    • boards/stm32f429.ld: increase uPy heap size by 64k for F429 MCU
    • extint: fix ExtInt to work with non-GPIO pins
    • extint: fix RTC Alarm/FS USB EXTI constants for L4
    • make-stmconst.py: improve regex to parse more constants
    • extint: add non-GPIO EXTI IRQ sources for F0
    • extint: remove unused (and incorrect) EXTI defines
    • stm32_it: fix RTC IRQ handler to handle all EXTI IRQs on F0 MCUs
    • sdram: increase GPIO speed for SDRAM interface to "very high"
    • boards/NUCLEO_F767ZI: fix up comments about HCLK computation
    • mphalport: add mp_hal_get_mac() helper function
    • eth: add low-level Ethernet MAC driver
    • network_lan: add high-level network.LAN interface to ETH driver
    • mpconfigport.h: enable lwIP concurrency protection mechanism
    • modnetwork: don't call NIC callback if it's NULL
    • boards/NUCLEO_F767ZI: enable lwIP and Ethernet peripheral
    • boards/STM32F7DISC: enable lwIP and Ethernet peripheral
    • boards/STM32F769DISC: enable lwIP and Ethernet peripheral
    • boards/NUCLEO_F429ZI: enable lwIP and Ethernet peripheral
    • qspi: enable sample shift and disable timeout counter
    • Makefile: allow a board to specify its linker sections for FW
    • boards/STM32F769DISC: use external QSPI flash to store some code
    • use global lwip build config and support building without lwip
    • boards: update to use new build config for lwip component
    • add compile-time option to use HSI as clock source
    • mboot: update to match latest oofatfs version
    • allow to build with threading with the GIL disabled
    • qspi: set pin speed to very-high and allow to config some options
    • usb: allow to override USB strings & VID/PID in app and mboot
    • stm32_it: guard UART7_IRQHandler with check for UART7 define
    • mboot: set USE_MBOOT=1 by default in the Makefile
    • system_stm32: provide default value for HSI calibration
    • mpconfigport.h: remove malloc/free/realloc helper macros
    • boards/STM32L476DISC: enable servo support on STM32L476DISC board
    • Makefile: allow to override CROSS_COMPILE with included Makefile
    • make default USB_VCP stream go through uos.dupterm for main REPL
    • timer: expose the PWM BRK capability of Timer 1 and 8
    • uart: handle correctly the char overrun case of RXNE=0 and ORE=1
    • rename MICROPY_HW_HAS_SDCARD to MICROPY_HW_ENABLE_SDCARD
    • add support for MMC driver, exposed via pyb.MMCard class
    • moduos: allow to compile again without USB enabled
    • network_wiznet5k: add ability to trace Ethernet TX and RX frames
    • network_wiznet5k: add ability to set the MAC address
    • network_wiznet5k: automatically set MAC if device doesn't have one
    • i2cslave: add support for H7 MCUs
    • usbd_conf: add support for USB HS peripheral on H7 MCUs
    • mboot: add support for H7 MCUs, with H743 flash layout
    • boards/NUCLEO_H743ZI: add config options to support mboot
    • boards/NUCLEO_L432KC: disable complex nos and default frozen mods
    • rtc: add auto-LSE-bypass detection with fallback to LSE then LSI
    • rtc: remove unused LSE detection code
    • rtc: remove non-ASCII mu-character from source code comment
    • timer: correctly initialise extended break settings on F7/H7/L4
    • system_stm32f0: enable PWR clock on startup
    • system_stm32f0: add support for using HSE and PLL as SYSCLK
    • powerctrl: enable EIWUP to ensure RTC wakes device from standby
    • dac: rework DAC driver to use direct register access
    • usbdev: make USB device descriptors at runtime rather than static
    • usb: add USB device mode for VCP+VCP without MSC
    • powerctrl: deselect PLLSAI as 48MHz src before turning off PLLSAI
    • usb: remove mp_hal_set_interrupt_char now that it's reset at boot
    • main: increase default UART REPL rx buffer from 64 to 260 bytes
    • powerctrl: support changing frequency when HSI is clock source
    • flash: fix bug computing page number for L432 page erase
    • add support for F413 MCUs
    • boards: add NUCLEO_F413ZH board configuration
    • machine_uart: change default UART timeout to 0, for non blocking
    • move factory reset files and code to separate source file
    • usbd_cdc_interface: don't retransmit chars if USB is reconnected
    • rtc: allow overriding startup timeouts from mpconfigboard
    • dma: initialise all members of DMA structs for H7 MCUs
    • dma: always reset and configure the H7 DMA peripheral
    • spi: enable SPI IRQs and add IRQHandlers for H7 MCUs
    • irq: fix IRQ_ENABLE_STATS stats config to work on all MCUs
    • boards/NUCLEO_H743ZI: enable SPI3 on this board
    • modmachine: create dedicated asm function to branch to bootloader
    • adc: fix VBAT_DIV to be 4 for STM32F411
    • machine_i2c: update to support new C-level I2C API
    • i2c: make timeout for hardware I2C configurable
    • machine_i2c: simplify ROM initialisation of static HW I2C objects
    • i2c: support setting the I2C TIMINGR value via keyword arg
    • sdcard: add switch break to ensure only correct SD/MMC IRQ is run
    • sdram: update MPU settings to block invalid region, change attrs
    • mboot/README: fix some typos, describe bootloader and fwupdate.py
    • modmachine: in bootloader() disable caches before reset of periphs
    cc3200 port:
    • mods/modussl: fix ca_certs arg validation in mod_ssl_wrap_socket
    • modmachine: rename machine.sleep to machine.lightsleep
    • use common gchelper_m3.s code from lib/utils
    • mpconfigport.h: disable compiler optimisation of OrderedDict
    esp8266 port:
    • modmachine: implement optional time_ms arg to machine.deepsleep
    • modmachine: rename machine.sleep to machine.lightsleep
    • modmachine: implement simple machine.lightsleep function
    • modmachine: in lightsleep, only waiti if wifi is turned off
    • modmachine: call ets_event_poll after waiti in machine.idle
    • modmachine: handle overflow of timer to get longer periods
    • fix ticks_ms to correctly handle wraparound of system counter
    esp32 port:
    • don't put py/scheduler.o in iRAM, it's no longer needed
    • Makefile: put all IDF compenents in .a libs to use IDF ld script
    • update to latest ESP IDF using sdkconfig and new ldgen procedure
    • machine_timer: deinit all active timers on soft reset
    • Makefile: make sure that directory exists for sdkconfig.h
    • boards: use auto xtal freq config instead of default 40MHz
    • modsocket: fix crashes when connect/bind can't resolve given addr
    • modmachine: rename machine.sleep to machine.lightsleep
    • use SPIRAM in mem-map mode so all of it can be used for uPy heap
    • modmachine: add support for changing the CPU frequency
    • modsocket: fix usocket.send to accept anything with buffer proto
    • modsocket: change socket.socket to be socket type rather than fun
    • network_lan: add arg to constructor to set clock mode for ETH PHY
    • modnetwork: catch and report Ethernet events
    • network_lan: make power arg to constructor optional
    • modnetwork: fix wifi.isconnected to return False after disconnect
    • modnetwork: implement RSSI for WiFi STA via WLAN.status('rssi')
    • modnetwork: remove redundant esp_log include
    • Makefile: add some missing IDF source files to bootloader and app
    • mphalport: use ets_delay_us for mp_hal_delay_us_fast
    • machine_pin: make it so None as pull value disables pull up/down
    • machine_pin: add new PULL_HOLD pin pull mode
    • machine_pin: rework pull mode config to fix GPIO hold feature
    • mpthreadport: exit vPortCleanUpTCB early if threading not init'd
    • boards: enable dual core support by default
    • boards/sdkconfig: disable WDT check of idle task on CPU1
    • README: add info about pyparsing and the correct Python version
    • machine_wdt: add timeout arg to select interval, make WDT panic
    • modnetwork: change type to size_t for uses of mp_obj_str_get_data
    • machine_uart: implement UART.deinit() method
    • network_ppp: add a timeout for closing PPP connection
    • machine_touchpad: use HW timer for FSM to enable wake-on-touch
    • modsocket: raise EAGAIN when accept fails in non-blocking mode
    javascript port:
    • add new port targeting JavaScript via Emscripten
    • fix Emscripten async load, and to compile with modern clang
    • library: use Buffer.alloc() since new Buffer() is deprecated
    • pass (error) exit value out from script to process caller
    • Makefile: fix unrepresentable float error by using clamp
    • library: print data as raw bytes to stdout so unicode works
    nrf port:
    • modmachine: rename machine.sleep to machine.lightsleep
    • uart: use formula instead of switch for baudrate calculation
    • uart: remove unused machine.UART() parameters
    • shrink " does not exist" error messages
    • pin: cleanup Pin.str to print relevant information
    • pin: print pull information in Pin.str
    • ticker: remove duplicate NRFX_IRQ_PRIORITY_SET
    • timer: fix disabling Timer 1 when using soft PWM
    • readme: update link to nrfjprog download
    • bluetooth: improve advertisment behavior for nrf52 targets
    • bluetooth: resolve compilation warning in ble_drv.c
    • readme: update make flash command when defining board
    • pwm: remove superfluous NULL in machine_hard_pwm_instances
    • bluetooth: add support for SoftDevice s132 version 6.1.1
    • board: migrate all nrf52832 targets to new BLE stack
    • bluetooth: deprecate use of SoftDevice s132 v6.0.0
    • bluetooth: add support for SoftDevice s140 version 6.1.1
    • board: migrate nrf52840 target to new BLE stack
    • bluetooth: deprecate use of SoftDevice s140 v6.0.0
    • readme: add section about LTO
    • Makefile: update to match latest oofatfs version
    • boards: add support for BLYST Nano module based boards
    • change types to size_t for all uses of mp_obj_str_get_data
    • machine/i2c: update to support new C-level I2C API
    • nrfx_glue: adapt to nrfx v.1.7.1
    • uart: change UART driver to be non-blocking and use IRQs
    • mpconfigport.h: enable MICROPY_KBD_EXCEPTION by default
    • uart: make UART print output something, and add write method
    • mphalport: use wfi to save power while waiting at the UART REPL
    zephyr port:
    • modzephyr: revamp stacks_analyze() call
    • modzsensor: rename "TEMP" sensor channel to "DIE_TEMP"
    • prj_minimal.conf: switch to CONFIG_STDOUT_CONSOLE
    • Makefile: proxy ram_report, rom_report targets from Zephyr
    • prj_frdm_k64f.conf: add fxos8700 sensor
    • prj_frdm_kw41z.conf: add new board configuration
    • i2c: add support for hardware i2c
    • CMakeLists.txt: set AR to point to the Zephyr toolchain exe
    • machine_i2c: update to support new C-level I2C API
    • switch back to enabling I2C in board-specific configs
    docs:
    • machine: change sleep to lightsleep and add timeout arguments
    • convert all cases of machine.sleep to machine.lightsleep
    • ure: fix match.group signature to indicate index param is required
    • uos: document extra requirements on stream objs passed to dupterm
    • pyboard: add link to pyboard v1.1 schematic and layout PDF
    • pyboard: make pyboard v1.1 pinout the default shown in quickref
    • develop: fix typos in C-module example for example_add_ints
    • library/machine.Pin: add PULL_HOLD constant to possible pin pulls
    • esp32: add a note to quickref about use of Pin.PULL_HOLD
    • esp32: add example for pin isolation in combination with deepsleep
    • develop: remove paragraph that was copied in error from other doc
    • cmodules: fix example to globally define MODULE_EXAMPLE_ENABLED
    • cmodules: note the various ways MODULE_EXAMPLE_ENABLED can be set
    • esp8266: add tutorial for APA102 LEDs
    • esp32: correct quickref for ESP32 hardware SPI with non-default IO
    • machine.I2C: add writevto method to write a vector of byte bufs
    • pyboard/quickref: refer to new machine.I2C instead of old pyb.I2C
    travis:
    • update to use Ubuntu 16.04 Xenial for CI builds
    • enable test for running native code via mpy

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-5-29 16:01:07 | 显示全部楼层
    下面是机器翻译,可能部分地方不准确,仅作参考

    改进的mpy格式,支持本机代码和新的JavaScript端口

    在此版本中,mpy文件格式已移至版本4并有一些重大改进:mpy文件大小平均减少约35%,mpy文件的加载时间为减少了大约40%,现在他们支持保存本机,viper和内联汇编代码(或从任何其他源生成的机器代码)。通过添加qstr窗口以在编码时重用过去的qstrs,通过直接在字节码中打包qstrs,以及通过定义静态qstr集来实现mpy文件的大小减小。
    一些VM操作码也被更改以修复在执行break / continue out finally块时的错误,并进行一些简化。特别是POP_BLOCK和POP_EXCEPT操作码被POP_EXCEPT_JUMP替换。
    大多数大写宏已转换为小写以生成更一致的C API,包括所有MP_OBJ_IS_xxx和MP_xxx_SLOT_IS_FILLED宏。
    现在,默认的PYTHON makefile变量从“python”变为“python3”,但仍然通过“make PYTHON = python2”支持Python 2。
    mpy-cross编译器支持新的mpy版本4并具有新的命令行选项:“ - march =”选择本机发射器,“ - version”打印MicroPython版本和mpy版本。此外,mpy-tool.py支持冻结本机代码。
    已经实现了用于外部用户C模块的模​​块系统,并且在新的“docs / develop”部分中提供了用于此的文档。
    添加了一个新的“javascript”端口,它通过Emscripten将JavaScript作为机器。这允许将MicroPython作为node.js中的应用程序运行,并在浏览器中运行它(以及其他内容)。
    所有裸机端口都有以下改进:machine.sleep()现在是machine.lightsleep(),而lightleep()和deepsleep()现在都采用可选参数,这是以毫秒为单位的最长休眠时间。这些端口现在还允许使用常用方法冻结boot.py和main.py。并添加了一个新的I2C方法i2c.writevto(addr,vect),可用于将一个元组/列表的缓冲区一次性写入I2C设备。
    stm32端口现在具有完全集成的以太网MAC驱动程序(请参阅network.LAN类),使用lwIP作为TCP / IP堆栈,并且套接字更加强大。增加了对F413 MCU的支持。此端口还有一些面向用户的小改动:

    • machine.UART(和pyb.UART)现在默认为timeout = 0(1000ms),这为UART提供了非阻塞行为。
    • USB REPL现在可以使用uos.dupterm进行配置,默认情况下,pyb.USB_VCP(0)在执行boot.py之前被置于dupterm插槽1上。要禁用默认REPL,请使用:uos.dupterm(None,1)。
    • pyb.DAC(id)现在只在第一次调用时重置DAC; 获取旧行为传递bits参数,如:pyb.DAC(id,bits)。
    • pyb.DAC.noise()和pyb.DAC.triangle()现在以满量程输出。
    • 如果缺少boot.py,系统将不会重新创建它(它只会在文件系统损坏或进行出厂重置时创建它)。



    对于esp32端口,已更新构建过程以更好地与ESP IDF对齐,现在使用sdkconfig配置功能。双核模式现在默认启用,SPIRAM处于内存映射模式,因此所有这些都可用于MicroPython堆,支持更改CPU频率,WDT现在会在设备超时时重置并重置设备。
    下面是详细的更改列表。

    py核心:
    • 禁用这些功能时删除对文件读取器功能的调用
    • 为2-argument版本的内置next()添加可选支持
    • 编译:pop_block / pop_except在“除了”处理程序中的交换顺序
    • 警告:支持警告类别
    • builtinhelp:如果启用了外部导入,则仅打印帮助重新启用FS模块
    • 对所有MP_OBJ_IS_xxx宏进行缩减以生成更一致的C API
    • downcase MP_xxx_SLOT_IS_FILLED内联函数
    • mkenv.mk:将默认的PYTHON变量从“python”更改为“python3”
    • qstr:只计算一次find_qstr,然后传递给Q_GET_HASH宏
    • obj.h:删除过时的mp_obj_new_fun_viper()声明
    • objfun:make fun_data arg of mp_obj_new_fun_asm()一个const指针
    • 禁用调试时消除有关未使用参数的警告
    • compile:修复异步中解除BaseException的处理
    • compile:添加优化以编译OrderedDict inplace
    • objexcept:修复mp_obj_new_exception_msg中创建的exc str的哈希值
    • py.mk:更新lwip build config以使用最新的lwip版本
    • 通过展开跳出finally块来修复VM崩溃
    • vm:删除current_in_except_block变量
    • 用POP_EXCEPT_JUMP替换POP_BLOCK和POP_EXCEPT操作码
    • persistentcode:添加一个qstr窗口以更有效地保存mpy文件
    • persistentcode:直接在字节码中打包qstrs以减少mpy大小
    • persistentcode:定义static qstr set以减小mpy文件的大小
    • 添加独立配置以调试sentinel对象值
    • emitnative:合并HASCONSTS设置为load-const-obj fun的地方
    • emitnative:提供qstr发射的集中点
    • emitnative:调整const_table大小的会计
    • emitglue:在mp_raw_code_t中删除union以组合字节码和本机
    • 添加支持以将本机,viper和asm代码保存到.mpy文件
    • persistentcode:将.mpy版本更改为4
    • 允许在定义时注册模块
    • 为外部用户C模块实现模块系统
    • 更新和返工构建系统以包含外部C模块
    • 将mpnative_type_from_qstr()从emitnative.c移动到nativeglue.c
    • nativeglue:重命名native native funs以匹配其他本机助手
    • compile:添加支持以在运行时选择本机发射器
    • compile:支持多个内联asm发射器
    • 编译:检查在编译native,viper或asm时是否设置了arch
    • runtime:删除长期过时的MICROPY_FSUSERMOUNT初始化代码
    • scheduler:将micropythyon.schedule()转换为循环缓冲区
    • nlrthumb:添加对iOS的支持,其中C func为_nlr_push_tail
    • makedefs:处理源时使用带有utf-8编码的io.open
    • 运行时:优化以不为int创建temp浮点数以使其为负数
    • runtime:修复mp_unpack_ex,因此在使用过程中GC无法回收seq
    • mpprint:支持在64位arch上打印%ld和%lu格式
    • asmthumb:支持在普通ARM处理器上运行的asm_thumb代码
    • native:改进对viper函数中bool类型的支持
    • 删除“if(0)”和“if(false)”分支
    • objgenerator:修复处理无传递为第二个arg到throw()
    • objgenerator:删除不需要的前向decl并清理空白区域
    • misc.h:重命名_MP_STRINGIFY以不在ident中使用前导下划线
    • persistentcode:将mp_obj_str_get_data的“len”类型更改为size_t
    • objarray:添加对memoryview.itemsize属性的支持
    • objarray:将解码方法添加到bytearray
    • 更新makefile以使用$(CAT)变量而不是硬编码“cat”
    • 更新makefile使用$(TOUCH)而不是硬编码“touch”
    extmod:
    • moduzlib:更新到uzlib 2.9.2
    • modlwip:添加支持轮询UDP套接字以实现可写性
    • moduhashlib:仅在需要时包含sha256的实现
    • 将旧的大写宏名称转换为小写
    • moduwebsocket:refactor websocket to uwebsocket
    • modlwip:将#ifdef更改为#if以检查MICROPY_PY_LWIP
    • modlwip:使用backlog = 1轮询监听套接字时修复bug
    • modlwip:添加并发保护宏
    • modwebrepl:修复逻辑以处理大小为0的文件
    • vfs_fat:更新新的oofatfs版本
    • modlwip:修复错误时未释放并发锁的情况
    • moduselect:调整select_select和poll_register以使用size_t
    • vfs_fat:如果标准FAT16 / SFD格式失败,则回退到FAT32
    • modlwip:处理接受队列时连接关闭的情况
    • modlwip:处理使用null PCB调用的accept回调的情况
    • modlwip:使用lwIP并发锁保护socket.accept
    • modlwip:在TCP错误上释放任何存储的传入bufs /连接
    • modlwip:在accept回调中使用正确的侦听套接字对象
    • modlwip:abort TCP conns,它在一段时间内没有干净地关闭
    • modurandom:添加init方法来播种Yasmarang生成器
    • machine_signal:当没有args传递给Signal()时修复错误
    • modussl_mbedtls:支持非阻塞握手
    • modussl_axtls:添加非阻塞模式支持
    • moducryptolib:添加可选的AES-CTR支持
    • modujson:用指数中的+处理浮点数的解析
    • machine_i2c:更改C级API以允许拆分I2C事务
    • machine_i2c:在writemem()调用中删除对临时内存的需求
    • machine_i2c:添加可以编写bufs向量的i2c.writevto()
    • modlwip:在关闭PCB之前释放任何传入的bufs /连接
    • modlwip:在关闭PCB之前注册TCP close-timeout回调
    lib:
    • utils / pyexec:使用事件驱动的REPL实现粘贴模式
    • utils / printf:为gcc 9及更高版本排除__GI_vsnprintf别名
    • utils / gchelper_m3:添加许可证头并清理代码
    • utils / gchelper_m3:添加gc_helper_get_sp()函数
    • utils / gchelper:为汇编程序函数添加gchelper.h头文件
    • netutils:添加打印以太网帧跟踪信息的功能
    • oofatfs:将oofatfs库更新到R0.13c工作分支
    • oofatfs:为新的oofatfs版本更新ffconf.h配置
    • oofatfs:更新oofatfs库以解决逻辑问题
    • stm32lib:更新库以修复F7 MMC容量计算
    • utils / pyexec:添加pyexec_file_if_exists()辅助函数
    • utils:make pyexec_file_if_exists运行已冻结的脚本(如果存在)
    • utils / interrupt_char:启动时使中断字符无效
    • stm32lib:更新库以修复F4 MCU上的UART9 / 10波特率
    • nrfx:将nrfx升级到v1.7.1以及UART错误修复
    驱动:
    • 内存/ spiflash:返工wait_sr来修复uninit'd变量'sr'
    • display / ssd1306.py:更改为使用新的i2c.writevto()方法
    工具:
    • mpy-tool.py:添加对冻结本机代码的支持
    • upip.py:使用“raise arg”代替no-arg raise form,原生代
    • pyboard.py:从示例用法注释中添加缺少的行
    • mpy-tool.py:调整super()的使用,使其适用于Python 2
    • mpy-tool.py:修复QStrWindow的init,并删除未使用的变量
    • pyboard.py:如果使用了data_consumer,则不会累积输出数据
    • upip.py:使用自定义默认值添加对多个索引URL的支持
    测试:
    • 基础知识:为try-except-else和try-except-else-finally添加测试
    • run-tests:支持通过mpy运行本机测试
    • import:添加用于导入x64本机代码的测试
    • extmod:在非常大的块设备上添加FAT文件系统的测试
    • run-tests:在结束repl测试时忽略进程kill中的异常
    • micropython:为失败的堆分配添加一些测试
    • 如果(u)机器不存在,则跳过需要机器模块的测试
    • ussl_basic:禁用setblocking()调用
    • basics / sys1.py:为没有任何args调用sys.exit()添加测试
    • pyb:现在更新UART预期输出,默认超时为0
    • 基础知识:为memoryview属性添加覆盖测试
    MPY交叉:
    • 启用x64本机.mpy文件的构建
    • 添加“-march =”选项以选择本机发射器
    • 支持使用MICROPY_PY___FILE__进行编译
    • 在这样的主机上运行时自动选择ARMV6 arch
    • 添加--version命令行选项以打印版本信息
    所有port:
    • 将PYB消息前缀更改为MPY
    • 将旧的大写宏名称转换为小写
    • 更新以使用新的oofatfs版本
    • {stm32,esp8266}:为冻结的本机代码设置mpy-cross native arch
    • 转换为使用pyexec_file_if_exists()来执行boot / main.py
    unix:
    • mpthreadport:添加线程deinit代码以在退出时停止线程
    • mpthreadport:清理线程退出时使用的内存
    • mpthreadport:删除线程垃圾收集中的忙等待循环
    • modmachine:处理重复/ dev / mem打开错误
    • modffi:禁用调试时消除unused-argument警告
    • Makefile:更新覆盖测试以匹配Travis中的测试
    • mpthreadport:在Mac OS X上使用命名信号量
    • gcollect:确保为GC正确捕获stack / regs
    • coverage:为打印文字%字符添加测试
    • modusocket:修复usocket.settimeout impl中setsockopt的使用
    • modusocket:当connect或accept超时时引发ETIMEDOUT
    windows:
    • 修复REPL上的换行行为
    qemu-arm:
    • 返工在带有Cortex-M CPU的主板上运行裸机
    • 使用gchelper代码获取GC扫描的寄存器
    stm32:
    • 实现machine.lightsleep()
    • rtc:在测试RTC是否已在启动时运行时检查RTCEN = 1
    • usbdev:为自供电的主板添加USB配置选项
    • usbdev:添加USB配置选项,以获得电路板绘制的最大功率
    • main:make board-defined UART REPL使用静态对象和缓冲区
    • boards / stm32f429_af.csv:修复UART中的拼写错误defs Tx-> TX和Rx-> RX
    • mboot:添加选项以自动检测DFU使用的USB端口
    • SD卡:不要在F7 MCU上使用SD时钟旁路
    • usb:为从主机接收的USB VCP数据添加流量控制选项
    • boards / make-pins.py:为STM32H7 ADC外设添加基本支持
    • boards / stm32h743_af.csv:将ADC条目添加到引脚功能表
    • adc:在STM32H7 MCU的引脚上添加对ADC的基本支持
    • mboot:无论USB_HS_IN_FS如何,都使用USB HS作为主USB设备
    • mboot:添加对STM32F769 MCU的支持
    • mboot:添加对GPIO端口G,H,I和J的支持
    • mboot:允许通过deploy-stlink进行部署
    • usb:无论USB_HS_IN_FS如何,都使用USB HS作为主USB设备
    • usbd_conf:完全支持带外部PHY的USB HS
    • modmachine:make bootloader()如果启用,则输入自定义加载程序
    • 板/ STM32F769DISC:支持USB HS与外部PHY的使用
    • boards / STM32F769DISC:默认配置为与mboot一起使用
    • systick:将sys_tick_XXX函数重命名为systick_XXX
    • systick:make periodic systick callbacks使用循环func表
    • pendsv:清理pendsv IRQ处理程序并消除重复代码
    • pendsv:添加在pendsv IRQ级别安排回调的功能
    • systick:提供更好的编译时插槽可配置性
    • modnetwork:将lwIP轮询更改为基于背景标注
    • 将gchelper汇编程序代码移动到lib / utils以供其他端口使用
    • gccollect:使用gchelper.h头而不是显式声明
    • pendsv:修复内联asm常量和前缀#字符
    • mboot / Makefile:支持为自定义板指定BOARD_DIR
    • 板/ NUCLEO_L476RG:增加对RNG,DAC和CAN1的支持
    • boards / make-pins.py:添加cmdline选项以支持mboot使用
    • mboot / Makefile:从board pins.csv生成所有引脚头文件
    • mboot / mphalport.h:包含genhdr / pins.h,用于访问引脚名称
    • qspi:使用静态af函数进行引脚配置
    • mboot:添加对从文件系统加载gzip'd固件的支持
    • mboot:将一些BSS变量移动到未归零的新部分
    • mboot:添加可以编程mboot和应用程序的支持脚本
    • modmachine:添加将用户数据传递给mboot的功能
    • mboot:添加钩子以在启动时尽早运行特定于板的代码
    • boards / stm32f429.ld:为F429 MCU增加uPy堆大小64k
    • extint:修复ExtInt以使用非GPIO引脚
    • extint:修复L4的RTC Alarm / FS USB EXTI常量
    • make-stmconst.py:改进正则表达式来解析更多常量
    • extint:为F0添加非GPIO EXTI IRQ源
    • extint:删除未使用的(和不正确的)EXTI定义
    • stm32_it:修复RTC IRQ处理程序以处理F0 MCU上的所有EXTI IRQ
    • sdram:将SDRAM接口的GPIO速度提高到“非常高”
    • boards / NUCLEO_F767ZI:修正关于HCLK计算的评论
    • mphalport:添加mp_hal_get_mac()辅助函数
    • eth:添加低级以太网MAC驱动程序
    • network_lan:为ETH驱动程序添加高级network.LAN接口
    • mpconfigport.h:启用lwIP并发保护机制
    • modnetwork:如果它为NULL,则不要调用NIC回调
    • 板/ NUCLEO_F767ZI:启用lwIP和以太网外设
    • 板/ STM32F7DISC:启用lwIP和以太网外设
    • 板/ STM32F769DISC:启用lwIP和以太网外设
    • 板/ NUCLEO_F429ZI:启用lwIP和以太网外设
    • qspi:启用样本移位并禁用超时计数器
    • Makefile:允许板为FW指定其链接器部分
    • 板/ STM32F769DISC:使用外部QSPI闪存存储一些代码
    • 使用全局lwip构建配置并支持没有lwip的构建
    • board:更新为lwip组件使用新的构建配置
    • 添加编译时选项以使用HSI作为时钟源
    • mboot:更新以匹配最新的oofatfs版本
    • 允许在禁用GIL的情况下使用线程构建
    • qspi:将引脚速度设置为非常高,并允许配置一些选项
    • usb:允许在app和mboot中覆盖USB字符串和VID / PID
    • stm32_it:保护UART7_IRQHandler并检查UART7定义
    • mboot:默认情况下在Makefile中设置USE_MBOOT = 1
    • system_stm32:为HSI校准提供默认值
    • mpconfigport.h:删除malloc / free / realloc帮助程序宏
    • 板/ STM32L476DISC:在STM32L476DISC板上启用伺服支持
    • Makefile:允许使用包含的Makefile覆盖CROSS_COMPILE
    • 使默认USB_VCP流通过uos.dupterm进行主REPL
    • 定时器:暴露定时器1和8的PWM BRK功能
    • uart:正确处理RXNE = 0和ORE = 1的char溢出情况
    • 将MICROPY_HW_HAS_SDCARD重命名为MICROPY_HW_ENABLE_SDCARD
    • 添加对通过pyb.MMCard类公开的MMC驱动程序的支持
    • moduos:允许在没有启用USB的情况下再次编译
    • network_wiznet5k:添加跟踪以太网TX和RX帧的能力
    • network_wiznet5k:添加设置MAC地址的功能
    • network_wiznet5k:如果设备没有MAC,则自动设置MAC
    • i2cslave:增加对H7 MCU的支持
    • usbd_conf:在H7 MCU上添加对USB HS外设的支持
    • mboot:增加对H7 MCU的支持,采用H743闪存布局
    • 板/ NUCLEO_H743ZI:添加配置选项以支持mboot
    • 板/ NUCLEO_L432KC:禁用复杂的nos和默认的冻结模块
    • rtc:添加自动LSE旁路检测,后退到LSE,然后是LSI
    • rtc:删除未使用的LSE检测代码
    • rtc:从源代码注释中删除非ASCII mu-character
    • 定时器:正确初始化F7 / H7 / L4上的扩展中断设置
    • system_stm32f0:启动时启用PWR时钟
    • system_stm32f0:添加对使用HSE和PLL作为SYSCLK的支持
    • powerctrl:启用EIWUP以确保RTC将设备从待机状态唤醒
    • dac:返工DAC驱动程序使用直接寄存器访问
    • usbdev:在运行时而不是静态创建USB设备描述符
    • usb:为没有MSC的VCP + VCP添加USB设备模式
    • powerctrl:在关闭PLLSAI之前取消选择PLLSAI作为48MHz src
    • usb:删除mp_hal_set_interrupt_char,因为它在启动时被重置
    • main:将默认UART REPL rx缓冲区从64字节增加到260字节
    • powerctrl:支持HSI为时钟源时的频率变化
    • flash:修复L432页面擦除的错误计算页码
    • 增加对F413 MCU的支持
    • 板:添加NUCLEO_F413ZH板配置
    • machine_uart:将默认UART超时更改为0,用于非阻塞
    • 将出厂重置文件和代码移动到单独的源文件中
    • usbd_cdc_interface:如果重新连接USB,请不要重新传输字符
    • rtc:允许从mpconfigboard覆盖启动超时
    • dma:初始化H7 MCU的所有DMA结构成员
    • dma:始终复位并配置H7 DMA外设
    • spi:启用SPI IRQ并为H7 MCU添加IRQHandler
    • irq:修复IRQ_ENABLE_STATS统计配置以适用于所有MCU
    • 板/ NUCLEO_H743ZI:在该板上启用SPI3
    • modmachine:创建专用的asm函数来分支到bootloader
    • adc:将STM32F411的VBAT_DIV修复为4
    • machine_i2c:更新以支持新的C级I2C API
    • i2c:使硬件I2C超时可配置
    • machine_i2c:简化静态HW I2C对象的ROM初始化
    • i2c:支持通过关键字arg设置I2C TIMINGR值
    • sdcard:添加switch break以确保只运行正确的SD / MMC IRQ
    • sdram:更新MPU设置以阻止无效区域,更改attrs
    • mboot / README:修复一些拼写错误,描述bootloader和fwupdate.py
    • modmachine:在bootloader()中,在重置外设之前禁用缓存
    cc3200:
    • mods / modussl:修复mod_ssl_wrap_socket中的ca_certs arg验证
    • modmachine:将machine.sleep重命名为machine.lightsleep
    • 使用lib / utils中常用的gchelper_m3.s代码
    • mpconfigport.h:禁用OrderedDict的编译器优化
    esp8266:
    • modmachine:为machine.deepsleep实现可选的time_ms arg
    • modmachine:将machine.sleep重命名为machine.lightsleep
    • modmachine:实现简单的machine.lightsleep函数
    • modmachine:在lightsleep中,只有在关闭wifi时才会等待
    • modmachine:在machine.idle中等待后调用ets_event_poll
    • modmachine:处理定时器的溢出以获得更长的时间
    • 修复ticks_ms以正确处理系统计数器的环绕
    esp32:
    • 不要将py / scheduler.o放在iRAM中,不再需要它
    • Makefile:将所有IDF标记放在.a libs中以使用IDF ld脚本
    • 使用sdkconfig和新的ldgen过程更新到最新的ESP IDF
    • machine_timer:在软复位时取消所有活动的定时器
    • Makefile:确保sdkconfig.h存在该目录
    • board:使用auto xtal freq config而不是默认的40MHz
    • modsocket:当connect / bind无法解析给定的addr时修复崩溃
    • modmachine:将machine.sleep重命名为machine.lightsleep
    • 在mem-map模式下使用SPIRAM,因此所有这些都可以用于uPy堆
    • modmachine:添加对更改CPU频率的支持
    • modsocket:修复usocket.send接受缓冲区原型的任何东西
    • modsocket:将socket.socket改为socket类型而不是fun
    • network_lan:将arg添加到构造函数以设置ETH PHY的时钟模式
    • modnetwork:捕获并报告以太网事件
    • network_lan:make power arg to constructor optional
    • modnetwork:修复wifi.isconnected以在断开连接后返回False
    • modnetwork:通过WLAN.status('rssi')实现WiFi STA的RSSI
    • modnetwork:删除多余的esp_log包含
    • Makefile:将一些丢失的IDF源文件添加到bootloader和app
    • mphalport:对mp_hal_delay_us_fast使用ets_delay_us
    • machine_pin:使其为无拉取值禁用上拉/下拉
    • machine_pin:添加新的PULL_HOLD引脚拉模式
    • machine_pin:返工拉模式配置以修复GPIO保持功能
    • mpthreadport:如果线程未初始化,请提前退出vPortCleanUpTCB
    • 板:默认启用双核支持
    • boards / sdkconfig:禁止对CPU1上的空闲任务进行WDT检查
    • 自述文件:添加有关pyparsing和正确Python版本的信息
    • machine_wdt:添加超时arg以选择间隔,使WDT发生混乱
    • modnetwork:将类型更改为size_t以使用mp_obj_str_get_data
    • machine_uart:实现UART.deinit()方法
    • network_ppp:为关闭PPP连接添加超时
    • machine_touchpad:使用硬件计时器进行FSM以启用触摸唤醒
    • modsocket:在非阻塞模式下接受失败时提高EAGAIN
    javascript:
    • 通过Emscripten添加新的端口定位JavaScript
    • 修复Emscripten异步加载,并使用现代clang进行编译
    • library:使用Buffer.alloc(),因为不推荐使用新的Buffer()
    • 从脚本传递(错误)退出值以处理调用者
    • Makefile:使用clamp修复不可表示的浮点错误
    • library:将数据作为原始字节打印到stdout,以便unicode工作
    nrf:
    • modmachine:将machine.sleep重命名为machine.lightsleep
    • uart:使用公式代替开关进行波特率计算
    • uart:删除未使用的machine.UART()参数
    • 收缩“不存在”错误消息
    • pin:cleanup Pin.str打印相关信息
    • pin:在Pin.str中打印拉取信息
    • 自动收报机:删除重复的NRFX_IRQ_PRIORITY_SET
    • 定时器:使用软PWM时修复禁用定时器1
    • 自述文件:更新nrfjprog下载链接
    • 蓝牙:改善nrf52目标的广告行为
    • bluetooth:解决ble_drv.c中的编译警告
    • 自述文件:在定义板时更新make flash命令
    • pwm:删除machine_hard_pwm_instances中的多余NULL
    • 蓝牙:添加对SoftDevice s132版本6.1.1的支持
    • board:将所有nrf52832目标迁移到新的BLE堆栈
    • 蓝牙:弃用SoftDevice s132 v6.0.0
    • 蓝牙:添加对SoftDevice s140版本6.1.1的支持
    • board:将nrf52840目标迁移到新的BLE堆栈
    • 蓝牙:弃用SoftDevice s140 v6.0.0
    • 自述文件:添加有关LTO的部分
    • Makefile:更新以匹配最新的oofatfs版本
    • 板:增加对基于BLYST Nano模块的板的支持
    • 将类型更改为size_t以用于mp_obj_str_get_data的所有用途
    • machine / i2c:更新以支持新的C级I2C API
    • nrfx_glue:适应nrfx v.1.7.1
    • uart:将UART驱动程序更改为非阻塞并使用IRQ
    • mpconfigport.h:默认启用MICROPY_KBD_EXCEPTION
    • uart:make UART打印输出的东西,并添加write方法
    • mphalport:在UART REPL等待时使用wfi来节省电量
    zephyr
    • modzephyr:revamp stacks_analyze()调用
    • modzsensor:将“TEMP”传感器通道重命名为“DIE_TEMP”
    • prj_minimal.conf:切换到CONFIG_STDOUT_CONSOLE
    • Makefile:代理ram_report,来自Zephyr的rom_report目标
    • prj_frdm_k64f.conf:添加fxos8700传感器
    • prj_frdm_kw41z.conf:添加新的板配置
    • i2c:添加对硬件i2c的支持
    • CMakeLists.txt:将AR设置为指向Zephyr工具链exe
    • machine_i2c:更新以支持新的C级I2C API
    • 切换回在板特定配置中启用I2C
    文档:
    • machine:将sleep更改为lightsleep并添加超时参数
    • 将machine.sleep的所有情况转换为machine.lightsleep
    • ure:修复match.group签名以指示索引参数是必需的
    • uos:记录传递给dupterm的流objs的额外要求
    • pyboard:添加指向pyboard v1.1原理图和布局PDF的链接
    • pyboard:使pyboard v1.1 pinout成为quickref中显示的默认值
    • develop:修复example_add_ints的C模块示例中的拼写错误
    • library / machine.Pin:将PULL_HOLD常量添加到可能的引脚拉出
    • esp32:在quickref中添加一条关于使用Pin.PULL_HOLD的注释
    • esp32:添加与deepsleep结合使用的引脚隔离示例
    • develop:删除从其他doc中错误复制的段落
    • cmodules:修复示例以全局定义MODULE_EXAMPLE_ENABLED
    • cmodules:注意可以设置MODULE_EXAMPLE_ENABLED的各种方法
    • esp8266:为APA102 LED添加教程
    • esp32:使用非默认IO对ESP32硬件SPI进行正确的quickref
    • machine.I2C:添加writevto方法来写一个字节bufs的向量
    • pyboard / quickref:引用new machine.I2C而不是旧的pyb.I2C
    travis
    • 更新以使用Ubuntu 16.04 Xenial进行CI构建
    • 通过mpy启用运行本机代码的测试

    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 立即注册

    Archiver|手机版|小黑屋|micropython-microbit 中文社区

    GMT+8, 2019-9-23 15:27 , Processed in 0.099996 second(s), 20 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表