Отображение внешнего запоминающего устройства - PullRequest
0 голосов
/ 18 апреля 2019

Я использую GCC toolchain и ARM Cortex-M0 uC. Я хотел бы спросить, возможно ли определить пространство в компоновщике, чтобы операции чтения и записи вызывали функции драйвера внешнего устройства для чтения и записи его пространства (например, память SPI). Может кто-нибудь дать несколько советов, как это сделать? С уважением, Рафал

EDIT: Спасибо за ваши комментарии и ответы. Моя настройка: Память SPI с произвольным доступом подключается через контроллер SPI, и я использую «стандартный» драйвер для доступа к памяти и сохранения / чтения данных из нее.

То, что я хотел сделать, - это избегать явного вызова функций драйвера, но скрывать их за некоторым фиксированным адресом ОЗУ, чтобы любое чтение этого адреса вызывало функцию драйвера памяти чтения spi, а запись вызывала память записи spi. функция (смещение начального адреса будет адресом данных во внешней памяти). Я сомневаюсь, что это вообще возможно в Калифорнийском университете без MMU, но я думаю, что всегда стоит спросить кого-то еще, кто мог бы иметь подобную идею.

1 Ответ

0 голосов
/ 18 апреля 2019

Нет, это не так.Cortex-M0 не имеет модуля управления памятью и поэтому не может перехватывать доступ к определенным областям памяти.

Не совсем понятно, чего вы пытаетесь достичь.Если вы подключили SPI-память, внешнюю к микросхеме, вам необходимо выполнить все обращения с использованием драйвера, невозможно отобразить в памяти абстракцию порта SPI.

Если это контроллер памяти SPI на устройстве, он будет иметь две области на карте памяти.Один из них будет областью памяти и, вероятно, будет работать только для чтения, а другой - с управляющими регистрами оборудования контроллера памяти, и именно с этими регистрами взаимодействует драйвер устройства.В частности, для записи в SPI вам необходимо выполнить доступ к драйверу для выполнения записи.

В крайнем случае (например, Cortex-M1 для Xilinx) будет eXecute In Place (XIP)периферийное устройство для поведения карты памяти и устройство SPI Master для функции чтения / записи.Вывод GPIO используется для мультиплексирования выводов SPI EEPROM между «режимом памяти» и «режимом конфигурации».

...