circuitpython/tools
Damien George aad79adab7 tools/mpy_ld.py: Add new mpy_ld.py tool and associated build files.
This commit adds a new tool called mpy_ld.py which is essentially a linker
that builds .mpy files directly from .o files.  A new header file
(dynruntime.h) and makefile fragment (dynruntime.mk) are also included
which allow building .mpy files from C source code.  Such .mpy files can
then be dynamically imported as though they were a normal Python module,
even though they are implemented in C.

Converting .o files directly (rather than pre-linked .elf files) allows the
resulting .mpy to be more efficient because it has more control over the
relocations; for example it can skip PLT indirection.  Doing it this way
also allows supporting more architectures, such as Xtensa which has
specific needs for position-independent code and the GOT.

The tool supports targets of x86, x86-64, ARM Thumb and Xtensa (windowed
and non-windowed).  BSS, text and rodata sections are supported, with
relocations to all internal sections and symbols, as well as relocations to
some external symbols (defined by dynruntime.h), and linking of qstrs.
2019-12-12 20:15:28 +11:00
..
.gitattributes micropython-upip: Mark as binary file and re-commit. 2015-06-06 23:09:23 +03:00
.gitignore tools: check-in errordeveloper/tinytest@eb2dbc858f 2014-05-08 01:41:21 +03:00
bootstrap_upip.sh tools/upip: Upgrade upip to 1.2.4. 2018-04-23 16:11:27 +10:00
build-stm-latest.sh tools: Add STM32F4DISC and ESPRUINO_PICO to stmhal build script. 2015-04-21 13:16:41 +00:00
cc1 tools: Add C middle-processor to make builtin tables proper hash tables. 2015-12-31 00:24:33 +00:00
check_code_size.sh all: Update Makefiles and others to build with new ports/ dir layout. 2017-09-06 14:09:13 +10:00
codestats.sh all: Update Makefiles and others to build with new ports/ dir layout. 2017-09-06 14:09:13 +10:00
dfu.py tools/dfu.py: Pad image data to 8 byte alignment to support L476. 2018-07-20 14:23:11 +10:00
file2h.py tools: Fix up pybcdc.inf generation: new lines and hex digits. 2014-04-16 11:45:52 +01:00
gen-changelog.sh Rename "Micro Python" to "MicroPython" in REPL, help, readme's and misc. 2015-10-12 00:06:25 +01:00
gen-cpydiff.py tools/gen-cpydiff.py: Update executable paths to point to new ports dir. 2017-11-28 10:50:32 +11:00
gendoc.py tools: Make gendoc.py able to output RST format. 2014-10-31 01:36:11 +00:00
insert-usb-ids.py various: Spelling fixes 2017-05-29 11:36:05 +03:00
make-frozen.py tools/make-frozen.py: Allow to run with no directory passed in. 2019-10-15 21:33:49 +11:00
makemanifest.py tools/makemanifest.py: Use sys.executable when invoking Python scripts. 2019-11-13 13:44:19 +11:00
mpy-tool.py tools/mpy-tool.py: Add ability to merge multiple .mpy files into one. 2019-12-12 20:15:28 +11:00
mpy_bin2res.py tools/mpy_bin2res: Tools to convert binary resources to Python module. 2017-07-27 14:41:27 +03:00
mpy_cross_all.py tools/mpy_cross_all.py: Helper tool to run mpy-cross on the entire project. 2017-05-14 17:51:12 +03:00
mpy_ld.py tools/mpy_ld.py: Add new mpy_ld.py tool and associated build files. 2019-12-12 20:15:28 +11:00
pyboard.py tools/pyboard.py: Add filesystem commands to ls/cat/cp/rm remote files. 2019-07-25 15:56:01 +10:00
pydfu.py tools/pydfu.py: Fix regression so tool runs under Python 2 again. 2018-12-30 01:20:48 +11:00
tinytest-codegen.py tests: Add tests for sys.settrace feature. 2019-08-30 16:48:22 +10:00
uf2conv.py tools: Add uf2conv.py from Microsoft/uf2 repository. 2019-07-01 17:18:44 +10:00
upip.py tools/upip.py: Add support for multiple index URLs with custom default. 2019-05-15 15:46:16 +10:00
upip_utarfile.py tools/upip: Upgrade to 1.2.2. 2017-09-29 18:24:11 -07:00