Lots of additions and improvements; support for STM32F2 and F7 MCUs. py core: - make showbc decode UNPACK_EX, and use correct range for unop/binop - use wrapper to check self argument of builtin methods, to prevent seg faults - remove mp_load_const_str and replace uses with inlined version - remove mp_load_const_bytes and instead load precreated bytes object - improve mp_import_name() debug logging - catch case when relative import happens without active package - fix running package submodule with -m - add TimeoutError exception subclassed from OSError - allow to build with debugging and bytearray but no array - modstruct: Raise NotImplementedError for unsupported repeat specification - REPL: Fix case where shorter names are shadowed by longer names - prevent many extra vstr allocations by preallocating room for null byte - improve allocation policy of qstr data (saves RAM) - modbuiltins: Implement round() to precision - make qstr hash size configurable, defaults to 2 bytes - implement memoryview slice assignment, eg m1[0:3] = m2[2:5] - viper: allow functions to take up to 4 arguments - vipre: issue an error when compiling functions with more than 4 args - raise SyntaxError when str hex escape sequence is malformed - fix handling of parsing empty input so it raises an exception - viper: compile errors now have traceback with function and filename - REPL: don't look inside strings for unmatched brackets/quotes - give more precise line number for compile errors (incl viper functions) - make list += accept all arguments and add test - makeversionhdr.py: Fallback to using docs version if no git repo extmod: - ubinascii: add a2b_base64 and b2a_base64 functions - machine: implement physical memory access using /dev/mem (Linux, etc) lib: - readline: add emacs control chars for cursor movement (disabled by default) drivers: - onewire: fix ds18x20.read_temp so it works when no rom given tools: - update upip to 0.5.4: recognize and handle "package not found" error - make-frozen.py: make Python2 compatibile - pydfu.py: fix to work with old and new versions of PyUSB - pyboard.py: fix parsing of returned error so last chr is not lost - pyboard.py: make enter_raw_repl stricter and more reliable - pyboard.py: speed up reading of chars by decreasing sleep period - pyboard.py: add telnet support - pyboard.py: make Python2 compatible tests: - add testcase for open(..., "a") - adapt basics/memoryerror.py for ports with lower heap sizes - adapt misc/features.py tests for ports without floating point - add support for the WiPy in run-tests script (use --target to specify it) - split out json float tests to separate files - add test for relative import without package context - skip parser test if "compile" builtin is not available - use PTY when running REPL tests - add test for pyboard SPI in slave mode, recv with no master - test REPL emacs keys, but only if present - always use forward slashes for paths (for Windows tests) - fix exceptions when running cmdline tests on Windows - Remove over-specification of startup banner unix port: - add O_WRONLY | O_CREAT to open call when opening file for append ("a") - socket.getaddrinfo: accept family & socktype arguments - socket.getaddrinfo: port is unsigned value - modsocket: implement sendto(), recvfrom(), inet_pton() - set MICROPY_PY_SYS_PLATFORM to "darwin" if compiled on OSX stmhal port: - modify dma_init() to accept init struct as an argument, making it more generic - add config option for storage to use second flash segment (disable by default) - add I2S support to make-pins.py - add qstr definition for ifconfig when building for WizNet - move HAL Cube files to f4/ subdir, keeping only those we use - add STM32CubeF2 version 1.1.0, in hal/f2 directory - add CMSIS device header files for STM32F2xx series - allow DAC.write_timed to take Timer object in place of freq - allow ADC.read_timed to take Timer object in place of freq - check if user block device is mounted before accessing it - put fs_user_mount pointer in root ptr section of global state (fixes crash) - add hal and cmsis files from STM32Cube_FW_F7_V1.1.0 - add STM32F7DISC support - factor out USRSW boot-up code and support boards with 1 LED - factor GPIO clock enable logic into mp_hal_gpio_clock_enable - add capability to print out info about a hard fault (disabled by default) - fix make-pins.py to allow Port K - add better support for UART having Tx and Rx on different ports - add support for USART1 and conditional pins in make-pins.py - add STM32F7 support for USB serial and storage - enable I2C support for F7 MCUs - enable SPI support for F7 MCUs - fix hardfault when configured as a SPI slave - generate modstm constants per build cc3200 port: - in Timer.callback() only use value param if in edge count mode - create tools folder and add update-wipy.py script - add deploy target and improve robustness of update-wipy.py - enable more features to improve compatibility with stmhal - add `Pin.name()` method - adapt update-wipy.py timing to improve stability - correct socket settimeout time format - add CA, certificate and key files to the updater list - add socket.timeout and socket.error exceptions - raise an exception if trying to scan for networks in AP mode - optimize check for WLAN AP mode - set WLAN date/time via the rtc.datetime method() - add modussl, ssl sockets subclassed from normal sockets - time.sleep() now receives seconds, like CPython - fix socket recv and recvfrom return value type - enable base64 methods from modubinascii - increment interrupt stack size from 2K to 3K - create /flash/sys and /flash/lib directories while booting - translate simplelink's socket error numbers to POSIX values - use alternative HAL_Delay also when interrupts are disabled - correct udelay us to ticks calculation - increment telnet Tx retry delay on every try - add struct weak link for ustruct - set simplelink time and date when enabling WLAN - refactor and clean-up socket closing code - implement new OTA mechanism with 2 firmware update slots - create /flash/cert folder if it doesn't exist - make socket stream methods return POSIX error codes - add socket.sendall() (aliases to send()) - rename pins from GPIO to just GP - add socket.makefile() - switch to 1 byte hash for QSTRs - on ssl.read() or ssl.readall() ignore ssl layer closed error - append last 2 bytes of the MAC address to the default SSID - make I2C and SPI API the same as in stmhal - add nic.iwconfig() to set/get WLAN configuration - improve support for WEP security - enable bootloader safe boot on latest firmware - fix bug in ffconf regarding '/flash' string length - add script to program the WiPy via UniFlash (windows only...) - add factory smoke test as part of the tools - speed up file system checking during start-up - on the first boot, always make AP ssid='wipy-wlan' - make ADC API compatible with the pyboard esp8266 port: - move scan() from esp module to network - update the README.md to reflect what works - move status() from esp module to network - make pyb.RTC a type, and pyb.RTC() constructs an RTC object - allow to easily override programming baudrate docs: - add more documentation for the CC3200 in the pyb module - add "reference" directory for putting docs about the language - add reference for Thumb2 inline assembler - make index link point to "index.html" irrespective of port - fix duplicate label error for network.WLAN - update safe boot comments to match actual behaviour - update pyb.Accel doc to reflect changes and explain filtered_xyz - correct nic.ifconfig() quickref example - add i2c keywork arguments only indication