На нашей встроенной платформе некоторые устройства имеют 16-битную шину данных (например, FPGA). Однако нам нужно читать их как 32-битные значения (например, 32-битные числа с плавающей запятой).
Насколько я понимаю, когда к 16-битной памяти обращается 32-битная инструкция загрузки данных (LDR), процессор ARM выполнит 2 16-битных выборки, чтобы собрать 32-битное количество.
Это правильно?
Например, я хотел бы, чтобы процессор ARM загружал значение uint32_t
из устройства с 16-разрядной шиной данных без необходимости выполнять 2 uint16_t
чтения, а затем объединять значения uint16_t
в одну переменную uint32_t
.
Нужно ли нам явно получить как 2 16-битных количества, а затем собрать как 32-битное количество?
Какие документы ARM содержат это разъяснение?
Существуют ли какие-либо особые настройки конфигурации ARM для ARM, чтобы сделать 2 выборки с 16-битной шины данных для формирования 32-битного количества (в регистре)?
К вашему сведению: мы используем ARM Cortex A8 и IAR EW IDE / Compiler.
Платформа работает в «системном» режиме, а не в режиме «большого пальца».