840 B
840 B
stm32-ada
Ada bindings for STM32 internals
Hardware quirks and workarounds
APB
APB does not support writes of parts of 32-bit registers.
The library provides acess to register fields as records.
This could lead compiler to emit byte and half-word writes
to APB registers causing erroneous effects.
As a workaround those registers should be read to local variable,
this variable altered, and then written back to hardware.
GNAT users may not need the workaround, because of its pragma
Volatile_Full_Access
used in this library.
Compiler specific notes
There are compiler-specific pragmas so your compiler may complain about them.
GNAT
Volatile_Full_Access
pragma is used on (at least writable) APB registers
as byte- and half-wide writes are not supported by APB. Read STM docs on
what those accesses actually do.