воскресенье, 8 января 2012 г.

Изучение arm - Модель памяти AT91RM9200

Ключевой особенностью любого микро(контроллера/процессора) на базе arm ядра является то что вся периферия внутри него, в некоторых случаях и внешняя периферия(sram, flash, dram, дисплеи и пр) благодаря pdc(контроллер периферии) и ebi(интерфейс внешней шины) проецируется на память. Аналогично происходит и в случае AT91RM9200



Так как ядро arm920t 32х битное то адресное пространство ограничено 4мя гигабайтами.
Обратимся к схеме на странице 17 дш на AT91RM9200
Как видно из схемы все периферийные устройства(т.е. регистры управления периферийным устройством) и спроецированные на память внешние устройства распределены по памяти.
Есть зарезервированные регионы для будущих устройств, обращение к ним будет вызывать исключение(более подробно об этом будет рассказано про изучение контроллера прерываний).
Другие же области доступны либо только для чтения, либо для чтения и записи или же только для записи. В зависимости от свойств конкретного адреса те операции которые не регламентированы будут недоступны либо результат этих действий будет отличатся от действительности.

arm920t ядро при запуске имеет значение 0 для указателя на адрес текущей команды, соответственно исполнение кода начинается с 0го адреса в памяти, с этого адреса как это не очевидно располагается загрузочная область памяти. А вот что это будет за память зависит от конфигурационных регистров(об этом будет подробно рассказано при рассмотрении загрузки). Далее идут блоки встроенного ПЗУ, ОЗУ и спроецированного блока памяти USB хоста. Заканчивает этот первый блок объемом 256МБ(именно такое деление всей памяти выбрано разработчиками этого Soc) область неопределенной памяти(вызывает исключение).
Следующие 8 блоков отданы ebi, под различные виды внешней памяти.
Самый последний блок отдан под внутреннюю периферию Soc.

Обращаем внимание что разработчику не обязательно помнить адреса блоков и устройств Soc. Для этого есть заголовочный файл AT91RM9200_inc.h который располагается в папке include/.

Комментариев нет:

Отправить комментарий