13
STM32. Занятие 1 Память, ядро и тактирование Ведущий: Савкин Сергей ЦМИТ Академия 2015

1.stm32 core flash rcc

Embed Size (px)

Citation preview

Page 1: 1.stm32 core flash rcc

STM32. Занятие 1Память, ядро и тактирование

Ведущий: Савкин СергейЦМИТ Академия 2015

Page 2: 1.stm32 core flash rcc
Page 3: 1.stm32 core flash rcc
Page 4: 1.stm32 core flash rcc
Page 5: 1.stm32 core flash rcc

Несмотря на то, что у МК STM32 имеется множество внутренних шин,адресное пространство для программиста предлагается как линейноеразмером 4 Гбайт. Поскольку МК STM32 выполнены на основе Cortex, то уних используется стандартное распределение памяти. Память программначинается с адреса 0x00000000. Встроенное статическое ОЗУ стартует садреса 0x20000000. Все ячейки статического ОЗУ расположены в областихранения бит. Регистры УВВ представлены в карте памяти, начиная садреса 0x40000000, и также расположены в области хранения бит УВВ.Наконец, регистры Cortex находятся в их стандартном месте, начиная садреса 0xE0000000.

Карта памяти STM32 выполнена по стандарту Cortex. Первые 2 кбайт памяти могут быть связаны с Flash памятью, системной памятью или статическим ОЗУ, в зависимости от состояния выводов управления

загрузкойОбласть Flash памяти разделена на три секции. Первая - Flash памятьпользователя - начинается с адреса 0x0000000. Далее следует системнаяпамять, которая также называется большим информационным блоком. Онапредставляет собой Flash память размером 4 кбайт, котораязапрограммирована производителем кодом программы загрузчика.Последняя секция, которая стартует с адреса 0x1FFFF800, называетсямалым информационным блоком. В ней находится группа опциональныхбайт, с помощью которых можно повлиять на некоторые системныенастройки микроконтроллера STM32. Программа загрузчика позволяетпосредством интерфейса USART1 загрузить код программы изапрограммировать его во Flash память пользователя. Чтобы перевести МКSTM32 в режим загрузчика, нужно на внешних выводах BOOT0 и BOOT1установить низкий и высокий уровни, соответственно. Если установитьименно такие состояния на выводах управления загрузкой, то блоксистемной памяти начнется с адреса 0x00000000. После сброса, МКSTM32, вместо выполнения прикладного кода из Flash памятипользователя, начнет выполнение программы загрузчика. Чтобыпользователь имел возможность стирать и перепрограммировать Flashпамять на компьютере необходимо запустить еще одну программузагрузчика, которую можно скачать с сайта компании ST. Программа для ПКтакже доступна в виде DLL-файла, что позволяет создавать собственноеПО для программирования микроконтроллеров на фазах производства илиэксплуатации продукции.С помощью выводов управления загрузкой адрес 0x00000000 вместо Flashпамяти пользователя может быть также связан со статическим ОЗУ.Поскольку загрузка статического ОЗУ осуществляется более быстро, то этавозможность может оказаться полезной на фазе проектирования дляисполнения кода программы из статического ОЗУ. Кроме того, появляется

возможность сократить частоту перепрограммирования Flash памяти.

Page 6: 1.stm32 core flash rcc
Page 7: 1.stm32 core flash rcc

/* Unlock the Flash *********************************************************//* Enable the flash control register access */FLASH_Unlock();

/* Clear pending flags (if any) */ FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR |

FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR);

/* Program the user Flash area word by word ********************************//* area defined by FLASH_USER_START_ADDR and FLASH_USER_END_ADDR */

uwAddress = FLASH_USER_START_ADDR;

while (uwAddress < FLASH_USER_END_ADDR){if (FLASH_ProgramWord(uwAddress, DATA_32) == FLASH_COMPLETE){

uwAddress = uwAddress + 4;}else{

/* Error occurred while writing data in Flash memory. User can add here some code to deal with this error */

while (1){}

}}

/* Lock the Flash to disable the flash control register access (recommendedto protect the FLASH memory against possible unwanted operation) */

FLASH_Lock();

Flash unlock

Page 8: 1.stm32 core flash rcc

Процессор Cortex-M3 может использоваться в обычном режиме

('flat'), а также поддерживает операционные системы реального

времени. У него предусмотрены режимы Handler и Thread с возможностями

выбора используемого стека (основной стек или стек процесса) и

привилегированного доступа к регистрам управления системными

ресурсами Cortex

Операции (после сброса -привилегированные)

Стек (после сброса - основной стек)

Режимы (Thread)

Handler- обработка исключительных

ситуаций

Привилегированное исполнение

Полное управление

Основной стек используется ОС и при обработке

исключительных ситуаций

Thread- исключительные ситуации

не обрабатываются- обычное выполнение кода

Привилегированные/ непривилегированные

Основной стек или стек процесса

Page 9: 1.stm32 core flash rcc

BORPVDSTOPSLEEPSTANBY

Page 10: 1.stm32 core flash rcc
Page 11: 1.stm32 core flash rcc

RCCSysClock

Page 12: 1.stm32 core flash rcc
Page 13: 1.stm32 core flash rcc

Курс: 10 занятий

0. Знакомство c программами, мигание светодиодом1. Память, ядро и тактирование2. GPIO, двигатели и датчики3. Таймеры и прерывания4. АЦП и ЦАП5. DMA контроллер6. I2C(TWA) и SPI7. USART8. USB и SDIO 9. Система реального времени10.Занятие по проектам участников

Сергей Савкин, +79154579583, [email protected]