embedded-trainings-2020/embedded-workshop-book/src/building-program.md

25 lines
1,022 B
Markdown
Raw Permalink Normal View History

2020-07-08 13:06:49 +00:00
# Building an Embedded Program
2020-07-13 15:20:20 +00:00
The default in a Cargo project is to compile for the host (native compilation). The `beginner/apps` project has been configured for cross compilation to the ARM Cortex-M4 architecture. This configuration can be seen in the Cargo configuration file (`.cargo/config`):
2020-07-08 13:06:49 +00:00
``` text
# .cargo/config
[build]
target = "thumbv7em-none-eabihf" # = ARM Cortex-M4
2020-07-08 13:06:49 +00:00
```
2020-07-13 15:20:20 +00:00
✅ Inside the folder `beginner/apps`, use the following command to cross compile the program to the ARM Cortex-M4 architecture.
``` console
$ cargo build --bin hello
```
The output of the compilation process will be an ELF (Executable and Linkable Format) file. The file will be placed in the `target/thumbv7em-none-eabihf` directory.
2020-07-08 13:06:49 +00:00
✅ Run `$ file target/thumbv7em-none-eabihf/debug/hello` and compare if your output is as expected.
2020-07-13 15:20:20 +00:00
Expected output:
2020-07-08 13:06:49 +00:00
``` console
$ file target/thumbv7em-none-eabihf/debug/hello
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, with debug_info, not stripped
2020-07-13 15:20:20 +00:00
```