diff options
author | 2018-08-25 18:57:46 +0000 | |
---|---|---|
committer | 2018-08-25 18:57:46 +0000 | |
commit | e790d9b8d9785502e05d70b1ddf0ed024cbf71d5 (patch) | |
tree | 40335a6b6b7000f7135a8e1328c642771c33306a /cortex-m-rt/examples/state.rs | |
parent | 8c4a9d27361de5f461e945c76f42f2aabf8af4ef (diff) | |
parent | 4c7169fa65f0c34c5461379e10f38f32c723507b (diff) | |
download | cortex-m-e790d9b8d9785502e05d70b1ddf0ed024cbf71d5.tar.gz cortex-m-e790d9b8d9785502e05d70b1ddf0ed024cbf71d5.tar.zst cortex-m-e790d9b8d9785502e05d70b1ddf0ed024cbf71d5.zip |
Merge #96
96: reduce the size of default handlers r=adamgreig a=japaric
this commit replaces the two default handler (DefaultDefaultHandler and
DefaultUserHardFault) by a single handler named `EndlessLoop`. This results in
one less symbol being generated.
Also this new handler uses `compiler_fence` to avoid the "infinite loops w/o
side effects are undef values" bug in LLVM. `compiler_fence` is guaranteed to
generate no code so this reduces the size of the handler (when compiler in
release).
---
As far as I could test this new handler doesn't generate abort instructions when
optimized so it seems like a safe replacement. If we are feeling paranoid then
once #95 we could implement EndlessLoop in assembly.
r? @rust-embedded/cortex-m (anyone)
Co-authored-by: Jorge Aparicio <jorge@japaric.io>
Diffstat (limited to 'cortex-m-rt/examples/state.rs')
0 files changed, 0 insertions, 0 deletions