aboutsummaryrefslogtreecommitdiff
path: root/qemu-arm/Makefile
AgeCommit message (Collapse)Author
2017-09-06ports: Make new ports/ sub-directory and move all ports there.Damien George
This is to keep the top-level directory clean, to make it clear what is core and what is a port, and to allow the repository to grow with new ports in a sustainable way.
2017-08-11all: Make use of $(TOP) variable in Makefiles, instead of "..".Damien George
$(TOP) is defined in py/mkenv.mk and should be used to refer to the top level of this repository.
2017-06-15qemu-arm/Makefile: Include relevant sources in list for qstr extraction.Damien George
2017-06-15stmhal: Move pybstdio.c to lib/utils/sys_stdio_mphal.c for common use.Damien George
It provides sys.stdin, sys.stdout, sys.stderr for bare-metal targets based on mp_hal functions.
2017-05-26qemu-arm/Makefile: Adjust object-file lists to get correct dependencies.Damien George
With this change both the "run" and "test" targets can be built with -j passed to make.
2017-03-24py/modbuiltins: For round() builtin use nearbyint instead of round.Damien George
The C nearbyint function has exactly the semantics that Python's round() requires, whereas C's round() requires extra steps to handle rounding of numbers half way between integers. So using nearbyint reduces code size and potentially eliminates any source of errors in the handling of half-way numbers. Also, bare-metal implementations of nearbyint can be more efficient than round, so further code size is saved (and efficiency improved). nearbyint is provided in the C99 standard so it should be available on all supported platforms.
2017-03-23all/Makefile: Remove -ansi from GCC flags, its ignored anyway.Krzysztof Blazewicz
The -ansi flag is used for C dialect selection and it is equivalent to -std=c90. Because it goes right before -std=gnu99 it is ignored as for conflicting flags GCC always uses the last one.
2017-03-13qemu-arm: Add basic uos module with generic VFS capabilities.Damien George
2017-03-02qemu-arm: Enable machine module and associated tests.Damien George
2016-11-03qemu-arm: Enable software floating point support, and float tests.Damien George
This helps to test floating point code on Cortex-M hardware. As part of this patch the link-time-optimisation was disabled because it wasn't compatible with software FP support. In particular, the linker could not find the __aeabi_f2d, __aeabi_d2f etc functions even though they were provided by lib/libm/math.c.
2016-10-14qemu-arm: Remove SRC_TEST_C from SRC_QSTR list, it's not needed.Damien George
And it gives problems with header dependencies for auto-qstr generation.
2016-10-14qemu-arm: Enable lots of extmods and enable tests for them.Damien George
The qemu-arm port is used for testing of ARM Thumb architecture on a desktop so should have many features enabled.
2016-07-11qemu-arm: Enable gcc LTO option for nlrthumb.cDaniel Tralamazza
LTO can't "see" inside naked functions, but we can mark `nlr_push_tail` as used.
2016-06-28qemu-arm: Disable gcc LTO option for nlrthumb.c.Damien George
If LTO is enabled for nlrthumb.c then gcc optimises away the nlr_push_tail function when in fact it is needed. So disable this option for this file.
2015-10-24Makefiles: Remove duplicate object files when linking.Paul Sokolovsky
Scenario: module1 depends on some common file from lib/, so specifies it in its SRC_MOD, and the same situation with module2, then common file from lib/ eventually ends up listed twice in $(OBJ), which leads to link errors. Make is equipped to deal with such situation easily, quoting the manual: "The value of $^ omits duplicate prerequisites, while $+ retains them and preserves their order." So, just use $^ consistently in all link targets.
2015-10-19all: Make netutils.h available to all ports by default.Paul Sokolovsky
Generally, ports should inherit INC from py.mk, append to it, not overwrite it. TODO: Likely should do the same for other vars too.
2015-01-09qemu-arm: Add 'test' target to Makefile to run and verify test suite.Damien George
Replaces RUN_TEST=1 definition; now "make test" in qemu-arm directory will run tests/basics/ and check that they all succeed. This patch also enables the test on Travis CI.
2015-01-01qemu-arm: Prefix includes with py/; remove need for -I../py.Damien George
2014-12-27Makefiles: Support py/*.h includes per #1022.Paul Sokolovsky
2014-10-29Add -Wpointer-arith flag to prevent problems with pointer arithmetic on void*stijn
2014-05-08qemu-arm: fully integrated test suite.Ilya Dmitrichenko
This is primarily intended to provide testing of Thumb-specific code within Travis CI as well as if anyone else want to run it locally. As discussed in purposes. This is currently agains an emulated Cortex-M3 core, however in the near future it can extended to support M0, M0+ as well M4 (work in progress exists in sushihangover/qemu). It's probably true that most of the code base can be covered running uPy natively on a POSIX system, however we do have the tiny bit of assembly code. There may exist bugs related to endianness and type aliases, let alone potential standard library or compiler bugs or even architecture-specific optimisations. This could also incorporate lwIP (or other TCP/IP stack) integration as well as SDIO+FATFS drivers. The solution to inline the test cases was chose due to simplicity. It could alternatively be implemented in a number of different way (see #515), but this looked the simplest. Inclusion of tinytest was just to avoid writing boilerplate code for counting failed tests and other utility functions. Currently only a few functions are used, however this could be extended. Checking in the code instead of using submodule was a personal preference, but if people do want the pain of submodules, this can provided. This particular framework is also pretty good if one desires to run unit test on target. The approach with scripts being inlined is probably not quite suited for the size of memory an MCU has, but the tinytest itself should be good, if lower-level C code is to be unit tested.
2014-04-21qemu-arm: update makefile (d553be5).Ilya Dmitrichenko
2014-04-21qemu-arm: more generic port name.Ilya Dmitrichenko