3. 3
Основные особенности системы памяти Cortex-M3
•процессор Cortex-M3 имеет фиксированную карту памяти,
которая определяет, какой шинный интерфейс должен
использоваться при обращении к тому или иному участку
памяти.
•поддержка доступа к отдельным битам памяти (метод bit-band)
•Система памяти процессора Cortex-M3 также поддерживает
пересылку невыровненных данных и операции монопольного
доступа
•процессор Cortex-M3 поддерживает па мять, использующую
как прямой, так и обратный порядок хранения байтов
4. 4
1. Карта памяти.
В процессоре Cortex-M3 используется фиксированная карта
памяти. Это облегчает перенос кода между устройствами на
базе Cortex-M3.
6. 6
Процессор Cortex-M3 имеет адресное пространство размером 4
Гбайт.
Программа может располагаться в
•области кода
•области статического ОЗУ (СОЗУ)
•области внешнего ОЗУ
9. 9
Две области памяти размером по 1 Гбайт выделены для
внешнего ОЗУ и внешних периферийных устройств
10. 10
Некоторые участки памяти зарезервированы для
использования встроенными периферийными устройствами,
такими как компоненты отладки
• модуль коррекции флэш-памяти и задания точки останова
(FPB) ;
• модуль просмотра и трассировки данных (DWT) ;
• модуль трассировки (ITM) ;
• модуль встроенной ячейки трассировки (ETM) ;
• модуль интерфейса порта трассировки (TPIU) ;
• таблица ПЗУ.
11. 11
Атрибуты доступа к памяти
Процессором Cortex-M3 используются следующие
атрибуты:
• Буферируемая
• Кэшируемая
• Исполняемая
• Разделяемая
12. 12
Область кода (0x00000000…0x1FFFFFFF) — является
исполняемой, а атрибут кэширования имеет значение
«кэшируемая со сквозной записью» (Write Through — WT). Вы
также можете размещать в этой области данные. Обращения к
данным, расположенным в указанной области, осуществляются
по интерфейсу шины данных. Операции записи в данную
область памяти буферизуются.
Область СОЗУ (0x20000000…0x3FFFFFFF) — предназначена
для подключения встроенного ОЗУ. Операции записи в эту
область буферизуются, а атрибут кэширования имеет значение
«кэшируемая с обратной записью и размещением
записываемых данных» (WB-WA). Указанная область является
исполняемой, так что вы можете скопировать в неё код
программы и исполнять его уже оттуда.
13. 13
Область периферийных устройств (0x40000000…
0x5FFFFFFF) — предназначена для размещения периферийных
устройств. Обращения к этой области памяти не кэшируются, и
исполнение кода из неё не допускается (в документации ARM
неисполняемая память имеет атрибут XN, являющийся
сокращением от eXecute Never).
Область внешнего ОЗУ (0x60000000…0x7FFFFFFF) —
предназначена для встроенной или внешней памяти данных.
Обращения к указанной области памяти могут кэшироваться
(WB-WA), из этой области также допускается выполнение
кода.
Область внешнего ОЗУ (0x80000000…0x9FFFFFFF) —
предназначена для встроенной или внешней памяти данных.
Обращения к этой области памяти могут кэшироваться (WT),
из данной области также допускается выполнение кода.
14. 14
Область внешних устройств (0xA0000000…0xBFFFFFFF) —
предназначена для внешних устройств и/или разделяемой
памяти, к которой необходимо обеспечить упорядоченный и
небуферизованный доступ. Эта область также является
исполняемой.
Область внешних устройств (0xC0000000…0xDFFFFFFF) —
предназначена для внешних устройств и/или разделяемой
памяти, к которой необходимо обеспечить упорядоченный и
небуферизованный доступ. Область также является
исполняемой.
Системная область (0xE0000000…0xFFFFFFFF) —
предназначена для собственных периферийных устройств
процессора, а также для модулей, определяемых
производителем. Исполнение кода из этой области памяти не
допускается. В диапазоне адресов, выделенных шине PBB,
обеспечивается строго упорядоченный доступ к памяти
(некэшируемая и небуферируемая память). В диапазоне
адресов, выделенных для изготовителей кристаллов, память
является буферируемой, но некэшируемой.
17. 17
2. Регистры.
Процессор Cortex™-M3 имеет 16 регистров с R0 по R15 и
несколько регистров специального назначения. Регистры с
R0 по R12 являются регистрами общего назначения.
Регистры специального назначения выполняют
предопределённые функции и для обращения к ним
необходимо использовать особые команды.
18. 18
Регистры общего назначения с R0 по R7
Регистры общего назначения с R0 по R7 также называются
младшими регистрами . Обращаться к этим регистрам могут все
команды как 16-битного набора Thumb, так и 32-битного набора
Thumb-2. Все указанные регистры имеют разрядность 32 бита,
состояние регистров после сброса может быть любым.
Регистры общего назначения с R8 по R12
Регистры общего назначения с R8 по R12 также называются
старшими регистрами . Обращаться к этим регистрам могут все
команды набора Thumb-2 и некоторые команды набора Thumb. Все
указанные регистры имеют разрядность 32 бита, состояние регистров
после сброса может быть любым.
19. 19
Указатель стека R13
Регистр процессора R13 используется в качестве указателя
стека, причём в процессоре Cortex-M3 имеется два таких указателя.
Наличие двух указателей позволяет реализовать два независимых
стека. Используя идентификатор R13, можно обращаться только к
текущему указателю, другой указатель при этом будет недоступен.
Обратиться к недоступному в данный момент указателю можно только
с помощью команд пересылки между регистром общего назначения и
регистром специального назначения (MSR и MRS).
В процессоре Cortex-M3 имеются следующие указатели стека:
•Основной указатель стека MSP.
•Указатель стека процесса PSP
21. 21
Регистр связи R14
Регистр R14 используется в качестве регистра связи (Link Register
— LR). Регистр связи применяется для сохранения адреса возврата
при вызове процедуры или функции, например при выполнении
команды пере хода со ссылкой (BL)
Счётчик команд R15
Регистр R15 служит в качестве счётчика команд PC. Для обращения
к данному регистру можно использовать любое из обозначений —
R15 или PC. Из-за наличия в процессоре Cortex-M3 конвейера
значение, считанное из этого регистра, будет отличаться от адреса
исполняемой в данный момент команды (как правило, на 4).
22. 22
Группу регистров состояния программы составляют три регистра:
• регистр состояния приложения APSR;
• регистр состояния прерывания IPSR;
• регистр состояния выполнения EPSR.