ARM - выборка 32 бит данных с использованием 16-битной шины данных
На нашей встроенной платформе некоторые устройства имеют 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/ компилятор.
Платформа работает в режиме "системы", а не в режиме "большого пальца".
1 ответ
Если вы обращаетесь к памяти, когда процессору требуется 32-разрядная память, он запрашивает ее напрямую (Cortex-A8 не поддерживает 16-разрядные шины). Некоторое периферийное устройство (в системе) отвечает за преобразование 32-разрядного запроса в 16-разрядный для адаптации к шине (выполнение 2 передач).
Это означает, что для процессора он должен быть полностью прозрачным.