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 передач).

Это означает, что для процессора он должен быть полностью прозрачным.

Другие вопросы по тегам