CMSIS2000  0.0.7
 Указатель Структуры данных Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Макросы Группы Страницы
Прошивка и запуск программ на МК АRМ

Aрхитектура ядра ARM является Принстонской, то есть данные и код располагаются в одном адресном пространстве, благодаря 32 битам пространство это велико и позволяет вместить в себя и FLASH, и RAM, и SRAM, и DRAM.

Поэтому и код и данные могут быть расположены где угодно. Что касается прошивки ( то есть программы), то, в отличие от AVR, она может быть расположена в какой угодно памяти .

Итак существуют две проблемы при прошивке и запуске программ на MK ARM:

  • Размещение (копирование) кода программы в память
  • Передача управления программе

Существует несколько вариантов решений данной проблемы:

  • Программа копируется во flash:
    • через программатор
    • через UART ISP загрузчик с помощью утилиты (например Flash Magic)
    • через отладчик
    • через специальную программу-загрузчик в контроллере которая может прошивать FLASH
  • Программа с некоторого носителя данных копируется в RAM программай-загрузчиком, который записывается во FLASH и запускается каждый раз при включении питания
  • Программа копируется в RAM отладчиком утилитой отладки

В первом случае процесс обновления программы не быстр, но последующий запуск программы происходит быстро и автоматически, так как она уже находиться во flash, программа ``не боится'' сбросов питания. Второй случай почти ничем не отличается от первого, за исключением того, что процесс обновления программы происходит не так быстро. Третий вариант самый быстрый, но требует настроенного отладчика и среды отладки, ещё одно преимущество последнего варианта – программа находясь в RAM памяти не имеет ограничений на число точек останова, отладка программы в FLASH ограничена из-за аппаратного ограничения на число точек останова.

См. также
Отладка ARM приложений c OpenOCD