@poty, Понятие "слово" их два.
Одно программисткое, одно машинное.
У программистом слово, чаще всего, имеет фиксированную длину.
Машинное слово может иметь любой размер. Я ковырялся с МК, где машинное слово было 12 бит.
Давно это было и неправда.
@bort707, Сегодня глянул. Правда оказалась как всегда по середине.
Вот что нашёл в умной книге:
Cortex-M3 может осуществлять невыровненный доступ к памяти, что увеличивает эффективность использования SRAM.
Одно программисткое, одно машинное.
У программистом слово, чаще всего, имеет фиксированную длину.
Машинное слово может иметь любой размер. Я ковырялся с МК, где машинное слово было 12 бит.
Давно это было и неправда.
@bort707, Сегодня глянул. Правда оказалась как всегда по середине.
Вот что нашёл в умной книге:
2.3.6 Невыровненный Доступ к Памяти Системы команд ARM7 и ARM9 способны оперировать со знаковыми и беззнаковыми переменными в формате байта, полуслова и слова. Это позволяет ЦПУ свободно поддерживать целочисленные переменные без потребности в дополнительных библиотеках, как это обычно требуется для 8- и 16-битных микроконтроллеров. Однако ранние версии ЦПУ ARM имеют недостаток в том, что они могут осуществлять доступ к памяти с выравниванием только по словам и полусловам. Это ограничивает возможности компоновщика при уплотнении данных в SRAM, что приводит к дополнительным затратам памяти (в зависимости от числа используемых переменных, дополнительные затраты памяти могут достигать 25%).
Cortex-M3 может осуществлять невыровненный доступ к памяти, что увеличивает эффективность использования SRAM.
ЦПУ Cortex имеет режимы адресации для слов, полуслов и байт, но он может осуществлять и невыровненный доступ к памяти. Это дает компоновщику дополнительную свободу при размещении данных программы в памяти. За счет поддержки битовой сегментации, ЦПУ Cortex может упаковывать программные флаги в переменные формата полуслова и слова и не использовать отдельный байт для каждого флага.
Это из книги The Insaider`s guide To the STM32 ARM based microcontroller.
Кроме этого, если интересно, могу дать расположение переменных в памяти до упаковки и после. Результат довольно прикольный.
Кроме этого, если интересно, могу дать расположение переменных в памяти до упаковки и после. Результат довольно прикольный.