2012-03-14 2 views
4

Я программирую чип ARM (STM32F2) «голый металл». В частности, я хотел бы прочитать значения, хранящиеся во внешней SRAM. Чтение reference manual Я понимаю, что такие транзакции памяти выполняются через FSMC (Flexible Static Memory Controller).Инициировать операцию чтения SRAM

Я понимаю, как инициализировать FSMC для операций чтения/записи SRAM. (Я должен установить соответствующие контакты GPIO в правильную альтернативную функцию, изменить группу контрольных регистров и т. Д.). Однако я не вижу, как инициировать, например, операцию чтения.

Какие регистры следует использовать для считывания (или записи) SRAM после инициализации?

ответ

4

Насколько я понял, вы получаете доступ к памяти с помощью контроллера FSMC. Таким образом, все, что вам нужно сделать, - это решить, в каком адресном пространстве отображать SRAM, а затем просто получить доступ к нему через указатели, инициализированные для указания там.

+0

А, это звучит просто! Благодарю. – Randomblue

+0

@ Randomblue: это легко и, если вы добавите регион SRAM в свою карту ссылок, компилятор будет автоматически использовать его для статической памяти, или вы можете найти там свою кучу. В этом случае вы должны инициализировать SRAM в запуске runtme, а если это сделать в C-коде (или если какой-либо C-код запускается до инициализации внешнего ОЗУ), убедитесь, что стек не отображен во внешнюю память. – Clifford

+0

@Clifford: Спасибо. Как добавить регион SRAM в мою карту ссылок? Раньше я никогда не затрагивал сценарий компоновщика. Какие строки я должен писать? – Randomblue

Смежные вопросы