- 15 Dec, 2016 2 commits
-
-
Damien George authored
-
Damien George authored
When printing exceptions from files sent to a target by pyboard.py the filename in the exception is <stdin>, which differs to when running the script on the PC. So we strip out the filename to make the outputs the same on all targets (see also misc/print_exception.py test).
-
- 14 Dec, 2016 7 commits
-
-
Lorenz Schmid authored
-
Lorenz Schmid authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
sys.exit() is an important function to terminate a program. In particular, the testsuite relies on it to skip tests (i.e. any other functionality may be disabled, but sys.exit() is required to at least report that properly).
-
Paul Sokolovsky authored
https://github.com/pfalcon/yaota8266 is a (WIP) OTA-enabled bootloader which doesn't require reserving space 2x size of a firmware.
-
Damien George authored
There's no need to force ports to copy-and-paste this initialisation code. If FSUSERMOUNT is enabled then this zeroing out must be done.
-
- 13 Dec, 2016 8 commits
-
-
Damien George authored
-
Rami Ali authored
-
Damien George authored
It can be overridden by a board if needed.
-
Rami Ali authored
With minor changes to adc.c and storage.c to support the F769.
-
Rami Ali authored
-
Rami Ali authored
-
Rami Ali authored
-
Damien George authored
This patch ensures that __init__.mpy files are imported if their containing directory is imported as a package.
-
- 12 Dec, 2016 2 commits
-
-
Rami Ali authored
-
Damien George authored
-
- 09 Dec, 2016 17 commits
-
-
Paul Sokolovsky authored
-
Paul Sokolovsky authored
CPython requires byteorder arg, make uPy compatible. As we support only "little", error out on anything else.
-
Damien George authored
-
Damien George authored
For all but the last pass the assembler only needs to count how much space is needed for the machine code, it doesn't actually need to emit anything. The dummy_data just uses unnecessary RAM and without it the code is not any more complex (and code size does not increase for Thumb and Xtensa archs).
-
Damien George authored
This patch moves some common code from the individual inline assemblers to the compiler, the code that calls the emit-glue to assign the machine code to the functions scope.
-
Damien George authored
These are generic methods that don't depend on the architecture and so can be handled directly by the compiler.
-
Damien George authored
This reduces fragmentation, and memory use by 1 word. But more importantly it means the emit_inline_asm_t struct now "derives" from mp_asm_base.
-
Damien George authored
With this patch, @micropython.asm_xtensa can be used on the esp8266 port.
-
Damien George authored
This patch adds the MICROPY_EMIT_INLINE_XTENSA option, which, when enabled, allows the @micropython.asm_xtensa decorator to be used. The following opcodes are currently supported (ax is a register, a0-a15): ret_n() callx0(ax) j(label) jx(ax) beqz(ax, label) bnez(ax, label) mov(ax, ay) movi(ax, imm) # imm can be full 32-bit, uses l32r if needed and_(ax, ay, az) or_(ax, ay, az) xor(ax, ay, az) add(ax, ay, az) sub(ax, ay, az) mull(ax, ay, az) l8ui(ax, ay, imm) l16ui(ax, ay, imm) l32i(ax, ay, imm) s8i(ax, ay, imm) s16i(ax, ay, imm) s32i(ax, ay, imm) l16si(ax, ay, imm) addi(ax, ay, imm) ball(ax, ay, label) bany(ax, ay, label) bbc(ax, ay, label) bbs(ax, ay, label) beq(ax, ay, label) bge(ax, ay, label) bgeu(ax, ay, label) blt(ax, ay, label) bnall(ax, ay, label) bne(ax, ay, label) bnone(ax, ay, label) Upon entry to the assembly function the registers a0, a12, a13, a14 are pushed to the stack and the stack pointer (a1) decreased by 16. Upon exit, these registers and the stack pointer are restored, and ret.n is executed to return to the caller (caller address is in a0). Note that the ABI for the Xtensa emitters is non-windowing.
-
Damien George authored
This patch refactors some code so that it is easier to integrate new inline assemblers for different architectures other than ARM Thumb.
-
Damien George authored
This patch allows esp8266 to use @micropython.native and @micropython.viper function decorators. By default the executable machine code is written to the space at the end of the iram1 region. The user can call esp.set_native_code_location() to make the code go to flash instead.
-
Damien George authored
The config option MICROPY_EMIT_XTENSA can now be enabled to target the Xtensa architecture with @micropython.native and @micropython.viper decorators.
-
Damien George authored
-
Damien George authored
If a port defines MP_PLAT_COMMIT_EXEC then this function is used to turn RAM data into executable code. For example a port may want to write the data to flash for execution. The function must return a pointer to the executable data.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
- 08 Dec, 2016 4 commits
-
-
Damien George authored
The 512k build recently overflowed because of the newly-enabled uselect module. uselect is arguable more important than framebuf for small devices so we disable framebuf to keep the 512k build within its limit.
-
Damien George authored
So that one can easily access the underlying data of the frame buffer, eg to write the data out to a display.
-
Damien George authored
-
Damien George authored
This is a pure refactoring (and simplification) of code so that stmhal uses the software SPI class provided in extmod, for the machine.SPI implementation.
-