aboutsummaryrefslogtreecommitdiff
path: root/src/target.rs
AgeCommit message (Collapse)Author
2025-09-16Use a macro for assembly copy loopsIan McIntyre
Make it easier to write loops for other sections. Since the macro expands to the same instructions that we previously had, we can show that a binary is equivalent before and after this change. Let's use the binaries generated in this test suite. Before this change, run the bash script below. Re-run this script with this change, and show that the hashes for the binaries are the same. cargo clean cargo test inspect_elf -- --include-ignored --exact imxrt1010evk imxrt1170evk_cm7 imxrt1170evk_cm7_nonboot teensy4 teensy4_fake_dcd 2> /dev/null 1>/dev/null for test_binary in imxrt1010evk imxrt1170evk-cm7 imxrt1170evk-cm7-nonboot teensy4 __dcd; do cat target/${test_binary}/thumbv7em-none-eabihf/debug/examples/blink-rtic | sha256sum -; done
2025-09-16Hexify the family IDIan McIntyre
Makes it a little easier for me to manually inspect binaries and figure out their targets.
2025-09-16Remove __pre_init inner jump labelsIan McIntyre
Local numbered labels won't appear in the ELF file. This makes debugging a little easier.
2025-09-16Catch target-host version mismatchIan McIntyre
Attach the version information in a symbol that's generated by the host. Then, expect the same symbol exists in the embedded target. If the linker can't resolve this, then the host and target should be incompatible. I'm overloading the __imxrt_family symbol for this.
2025-09-16Adopt Rust 2024 editionIan McIntyre
I'm considering this a breaking change. I'll try to introduce new sections that rely on the user's `unsafe` keyword for linker placement. Rust 2024 has different opinions on format, and clippy has new thoughts. Let's adopt them.
2025-02-08Add imxrt1160 target supportIan McIntyre
Implemented by following the reference manual, and tested on an MIMXRT1160EVK. The target adopts all of the same limitations as the 1170 target.
2024-10-18Address warnings introduced in 1.82Ian McIntyre
2024-10-17Support RT1180 familyNils Fitinghoff
The 1180 family uses a different boot header than previous families. The header is generated to support the default configuration where hash and signature errors are ignored. The XIP `__pre_init` strategy is still used, more for ease of getting something running than because of any known problems with the boot ROM's implementation of loading images to different memories. The boot ROM for the 1180 does not appear to allow the entry point to lie outside the (loaded or execute-in-place) image, so a new `.xip` section is added after the vector table to put the address inside the image while keeping VMA=LMA. This could cause problems for tools that manipulate binaries based on section names.
2022-12-01Update to cmrt 0.7.2, and use new featuresIan McIntyre
No need for us to set VTOR and the stack pointer anymore.
2022-12-01First commitIan McIntyre