Minimal startup / runtime for Cortex-M microcontrollers
(macros) The expansion of the exception
attribute now uses the extern "C"
ABI which is what the hardware expects.
(macros) entry
and exception
now respect the declared unsafety. That is #[entry] unsafe main() -> !
won't require unsafe
blocks to use unsafe
API.
Misuse of attributes now produce compiler errors with proper spans instead of panicking messages.
The HardFault
symbol has been renamed to HardFaultTrampoline
; likewise the UserHardFault
symbol has been renamed to HardFault
. If you were using breakpoints on UserHardFault
to detect hard fault you should now put those breakpoints on the HardFault
symbol.
Attributes on local static mut
variables (declared at the beginning of entry
/ interrupt
/ exception
) are now respected.
The "GDB can now unwind HardFault callstacks" fix from the previous release broke HardFault
's' &ExceptionFrame
argument (the pointer was off by 8 bytes). This release fixes that problem without compromising GDB's ability to unwind HardFault
s.