СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №6/2014

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 40 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2014 0хFFFF FFFF 0х4002 3400 Резерв 0х4002 3000 CRC 0х4002 2400 Резерв 0х4002 2000 Флэш-интерфейс 0х4002 1400 Резерв 0х4002 1000 RCC 0х4002 0400 Резерв 0х4002 0000 DMA 0х4001 4С00 Резерв 0х4001 4800 TIM17 0х4001 4400 TIM16 0х4001 4000 TIN15 0х4001 3С00 Резерв 0х4001 3800 USART1 0х4001 3400 Резерв 0х4001 3000 SPI1 0х4001 2С00 TIM1 0х4001 2800 Резерв 0х4001 2400 ADC1 0х4001 1С00 Резерв 0х4001 1800 Port E 0х4001 1400 Port D 0х4001 1000 Port C 0х4001 0С00 Port B 0х4001 0800 Port A 0х4001 0400 EXTI 0х4001 0000 AFIO 0х4000 7С00 Резерв 0х4000 7800 CEC 0х4000 7400 DAC 0х4000 7000 PWR 0х4000 6С00 BKP 0х4000 5С00 I2C2 0х4000 5800 Резерв 0х4000 5400 I2C1 0х4000 4С00 Резерв 0х4000 4800 USART3 0х4000 4400 USART2 0х4000 3С00 Резерв 0х4000 3800 SPI2 0х4000 3400 Резерв 0х4000 3000 IWDG 0х4000 2С00 WWDG 0х4000 2800 RTC 0х4000 1800 Резерв 0х4000 1400 TIM7 0х4000 1000 TIM6 0х4000 0С00 Резерв 0х4000 0800 TIM4 0х4000 0400 TIM3 0х4000 0000 TIM2 Резерв Байты опций Системная память Резерв Флэш-память Область памяти, переназначаемая загрузчиком Внутренняя периферия Периферия ОЗУ Код программы 0х1FFF FFFF Область памяти АРВ 0хFFFF FFFF 0хE010 0000 0хE000 0000 0хC000 0000 0хA000 0000 0х8000 0000 0х6000 0000 0х4000 0000 0х2000 0000 0х0000 0000 0х1FFF F80F 0х1FFF F800 0х1FFF F800 0х0801 FFFF 0х0800 0000 0х0000 0000 Современные 32-разрядные ARM-микроконтроллеры серии STM32: организация памяти В статье приводится описание организации памяти 32-разрядных ARM-микроконтроллеров серии STM32 компании STMicroelectronics. Рассматриваются состав, архитектура и особенности памяти микроконтроллера, а также освещаются некоторые нюансы программирования. Олег Вальпа (г. Миасс, Челябинская обл.) В ВЕДЕНИЕ Структура памяти любого микрокон- троллера является важной областью при его изучении. Каждый микрокон- троллер может иметь определённые особенности в организации памя- ти. Понимание этих особенностей позволяет успешно программировать и избегать ошибок. Сделаем неболь- шой экскурс в память микроконтрол- лера STM32 [1], чтобы легче и лучше было понимать его работу. О РГАНИЗАЦИЯ ПАМЯТИ МИКРОКОНТРОЛЛЕРА Адресное пространство микрокон- троллера STM32 организовано в виде линейного пространства. Размер это- го пространства определяется 32-раз- рядной шиной и может иметь предель- ное значение 2 32 = 4 Гбайт. Данный раз- мер памяти очень велик и практически используется лишь частично. Неис- пользуемые области памяти зарезер- вированы для новых моделей микро- контроллеров. Наглядное представле- ние карты памяти STM32 представлено на рисунке 1. Всё адресное пространство микро- контроллера STM32 разделено на 8 бло- ков по 512 Мбайт, т.е. с интервалом в 0x20000000 байт. Память программ начинается с адре- са 0x00000000. В этой области хра- нятся коды программ пользователя и системная информация. Оператив- ная память STM32 имеет начальный адрес 0x20000000. Регистрыфункцио- нальных блоков и устройств ввода- вывода микроконтроллера также ото- бражены в памяти, начиная с адреса 0x40000000. Специальные регистры микроконтроллера находятся в памя- ти, начиная с адреса 0xE0000000. Байты 32-разрядных слов организо- ваны в памяти в порядке возрастания. Байт слова с меньшим номером счита- ется самым младшим байтом этого сло- ва, а байт с большим номером – самым старшим. Б ЛОК НАЧАЛЬНОЙ ЗАГРУЗКИ Первые 2 Кбайт памяти, в зависимо- сти от состояния выводов управления загрузкой, могут быть связаны с флэш- памятью, системной или оперативной памятью. Микроконтроллеры STM32 имеют 3 различных режима начальной загруз- ки, которые могут быть выбраны с помощью выводов BOOT0 и BOOT1, как показано в таблице. Чтобы получить требуемый режим начальной загрузки (см. таблицу), необходимо установить с помощью перемычек определённое состояние входов BOOT0 и BOOT1, которое счи- тывается микроконтроллером после сброса. Кроме того, микроконтроллер считы- вает состояние входов BOOT0 и BOOT1 Рис. 1. Карта памяти микроконтроллера STM32

RkJQdWJsaXNoZXIy MTQ4NjUy