Предыдущая Следующая

Примечание. В исходном тексте пользовательской программы, которую планируется загрузить во Flash-память, и которая до этого загружалась в целях отладки в SRAM, необходимо соответствующим образом скорректировать константу инициализации специального регистра МЕММАР, управляющего переотображением в адресном пространстве памяти векторов прерываний (см. главу 2 «Организация системной памяти»).

31.1. Загрузка Flash-памяти с помощью LPC2000 Flash Utility

Код встроенного загрузчика Flash-памяти bootloader выполняется при каждом сбросе или включении питания микроконтроллера, поскольку точка входа в bootloader расположена по адресу вектора сброса 0x00. В момент сброса загрузчик производит выбор из двух альтернативных возможностей: определить тактовую частоту микроконтроллера и затем выполнять обработчик команд ISP-программирования или передать управление пользовательскому прикладному коду.

Для запуска обработчика команд ISP-программирования, должен быть сформирован соответствующий внешний аппаратный запрос. В качестве тако-

го запроса выступает наличие во время сброса внешнего НИЗКОГО уровня на выводе микроконтроллера Р0.14. В процессе сброса, bootloader производит опрос состояния этого вывода. На определение наличия запроса и принятие решения загрузчику может потребоваться интервал времени до 3 мс. Если на Р0.14 подан внешний НИЗКИЙ уровень, но установлен флаг переполнения сторожевого таймера микроконтроллера, то внешний аппаратный запрос будет проигнорирован. В случае, когда внешний аппаратный запрос не сформирован или проигнорирован, загрузчик приступает к поиску действительной пользовательской программы. Если действительная пользовательская программа будет найдена, то ей будет передано управление. В противном случае, загрузчик вызовет подпрограмму подстройки скорости обмена Auto-Baud для определения (уточнения) тактовой частоты микроконтроллера, после чего начнется выполнение обработчика команд ISP-программирования. Описанный алгоритм имеет некоторые вариации, суть которых можно уточнить в [5].

С целью исключения возможности случайного входа в режим ISP-программирования микроконтроллера LPC2000, необходимо предусмотреть на выводе Р0.14 наличие внешнего подтягивающего к «плюсу» питания резистора, поскольку после сброса этот вывод находится в высокоимпендансном состоянии.

Перечень команд, поддерживаемых обработчиком команд ISP-программирования, приведен в Табл. 20.6. Для осуществления операций с ОЗУ и Flash-памятью нет необходимости вводить эти команды вручную с помощью какой-либо терминальной программы, поскольку программа LPC2000 Flash Utility предоставляет для них удобную графическую оболочку.

Главное окно программы LPC2000 Flash Utility с параметрами, заданными по умолчанию, изображено на Рис. 31.1. Из главного окна LPC2000 Flash Utility с Flash-памятью микроконтроллеров семейства LPC2000 могут быть произведены следующие операции: запись в Flash-память выбранного файла с расширением hex — опция Upload to Flash, стирание Flash-памяти — опция Erase, проверка, очищена ли Flash-память полностью — опция Blank Check, верификация Flash-памяти — опция Compare Flash. Стирание и проверка качества очистки могут производиться как для всей Flash-памяти микроконтроллера целиком, так и для выбранной области, с возможностью задания начального и конечного секторов этой области (поля Start Sector, End Sector). Помимо этого, из главного окна может производиться чтение идентификационного номера (поле Part ID) микроконтроллера LPC2000 и номера версии встроенного загрузчика bootloader (поле Boot Loader ID) с помощью опции Read Device ID.


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz