-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathREADME
42 lines (31 loc) · 2 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
---------------------------------------------------------
Microframework → μfw → ufw — Embedded Support Library
---------------------------------------------------------
‘ufw’ is a support library for embedded development. It started out as a sand-
box for trying implementions or various kinds. It then quickly became a reser-
voir for various utilities that come in handy when building modular embedded
applications: Version control integration; CMake build system extensions and
embedded toolchain files; zephyr impedance mismatch management; a very portable
implementation of a TAP emitting testing API; startup code and a cortex-m3 to
run test-suites for this architecture via qemu; toolchain feature testing and
portable enabling, and more.
Commonly, ‘ufw’ is part of a larger source-tree that leverages it to build em-
bedded applications. It is also possible to build ‘ufw’ using many toolchains,
build-tools, build configurations and the like. To automate the required cmake
incantations, you can use the library's companion tool ‘mmh’:
% mmh
…builds as many combinations of ‘ufw’ as it can and reports the results. All
build results will be cleaned up afterwards.
% mmh -d ci
…will do the same, but perform all builds inside the ’ci’ subdirectory and will
keep it around after all work is done. You can also select parts of all combi-
nations of builds:
% mmh -d ci -T clang,gnu -A native -B ninja -C debug
…only builds ‘ufw’ using the ‘clang’ and ‘gnu’ toolchains in ‘debug’ configura-
tion using the ‘ninja’ build tool. While this:
% mmh -d ci -T gnu-arm-none-eabi -A cortex-m3 -B ninja -C debug
…builds the library for the ‘cortex-m3’ architecture in ‘debug’ configuration
using ‘ninja’. If a ‘system-arm’ qemu implementation is found on the host sys-
tem, ufw's cortex-m3 startup code is used to run the library's test-suite via
qemu.
The ‘mmh’ tool can be found here: https://github.com/ft/makemehappy