文档章节

MicroPython升级到1.8.6

shaoziyang
 shaoziyang
发布于 2016/11/11 11:31
字数 1144
阅读 78
收藏 0

昨天(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

 

© 著作权归作者所有

共有 人打赏支持
shaoziyang
粉丝 12
博文 76
码字总数 25946
作品 0
武汉
程序员
私信 提问
人生苦短,用 RT-Thread MicroPython 享受编程的乐趣

在 i.MX RT1050 EVK 开发板上实现这样的一个读取板载的 6 轴传感器信息和系统 CPU 利用率等信息,实时显示到网页中效果,你猜需要多少代码? 事实上 RT-Thread 的同事利用 RT-Thread MicroP...

RTThread物联网操作系统
05/02
0
0
Python玩转单片机:从基础到进阶,几款主流的开发板大盘点!

Python俨然已成为当下最热门的编程语言(可以说没有之一)。Python火到什么程度?它将被加入小学生教材,纳入高考,估计在不远的将来可能会成为一项常用的技能。 学习python能做什么? 可以快...

bodasisiter
09/05
0
0
MicropPython的学习,如何从0到1?

是Java还是C++ ? 是Go还是Python? 你为你最爱或者最熟悉的编程语言打Call了吗? Python在国外是一门非常热门的编程语言,近些年在国内也被发掘与追捧, Python的开放、简洁、黏合正符合了现发...

bodasisiter
09/26
0
0
MicroPython入门:能跑MicroPython开发板大盘点!

相信对于很多刚刚接触MicroPython的DIY创客来说,首先是被一些大神的作品吸引,然后有冲动自己动手,却发现入门很难,特别是面对各式各样的开发板不知如何选择。目前市面上关于MicroPython开...

bodasisiter
07/06
0
0
MicroPython新货上架【TPYBoard新品合集】你想要的好玩意儿全在这!

八月火力全开! TPYBoard一大波新品隆重上市! 一次次的研发、尝试 无数次的改进、优化 新品强势来袭 发烧友们期待已久的 STM32F407系列也已全新上线啦~ 1.STM32F407开发板 https://item.tao...

bodasisiter
08/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据集可视化---张量场的可视表示

中国龙-扬科
1分钟前
0
0
JavaScript创建对象方法实例小结

本文实例讲述了JavaScript创建对象方法。分享给大家供大家参考,具体如下: 最简单的方式就是创建一个Object对象,并为其添加属性和方法。 //示例代码var person=new Object()person.name=...

peakedness丶
3分钟前
0
0
GO 读写锁实现原理剖析

前言 TODO:简单说明读写锁用法及规则。 读写锁数据结构 类型定义 TODO: 源码中数据结构 TODO:讲解每个成员作用 写锁阻止写锁 TODO:描述两个尝试写是如何避免的 写锁阻止读锁 TODO:描述获...

恋恋美食
7分钟前
0
0
Java核心(二)深入理解线程池ThreadPool

本文你将获得以下信息: 线程池源码解读 线程池执行流程分析 带返回值的线程池实现 延迟线程池实现 为了方便读者理解,本文会由浅入深,先从线程池的使用开始再延伸到源码解读和源码分析等高...

王磊的博客
8分钟前
1
0
web项目中的乱码问题原理分析

Java web开发过程经常遇到乱码,本篇我们探讨一下乱码产生的原因与解决思路。 一次完整的Web请求会有4次编解码转换,如下所示。 第一次:客户端(通常为浏览器)将字符转换成TCP字节流发向服...

fame_yao
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部