Изучаю документацию на STM32F0 и никак не могу из нее понять, какое выравнивание поддерживают ядра Cortex M0 и M3
В Programming manual Cortex-M0 сказано:
Цитата
3.3.4 Address alignment
An aligned access is an operation where a word-aligned address is used for a word, or multiple word access, or where a halfword-aligned address is used for a halfword access. Byte accesses are always aligned.
There is no support for unaligned accesses on the Cortex-M0 processor. Any attempt to perform an unaligned memory access operation results in a HardFault exception.
и в описании команд LDR and STR:
Цитата
The computed memory address must be divisible by the number of bytes in the load or store
так вот совсем непонятно, если байтовый доступ всегда выровненный и есть команды загрузки байта LDRB and STRB, то как они работают? Наглядных картинок с примерами, которые обычно видел при изучении других архитектур, чего-то не нашел.
Ядро Cortex-M3 вроде позволяет кое-какой невыровненный доступ, но опять, какой именно, мне не понятно.
Может есть еще документы, где это подробно расписано?