Микроконтроллеры NXP LPC2xxx
имеют встроенный загрузчик, позволяющий прошивать память программ (flash) через последовательный порт (UART).
Для входа в режим загрузчика во время аппаратного(?) сброса на определённых ногах микроконтроллера должны присутствовать логические уровни:
- Ноль на P0.14 для LPC210x
- Ноль на P2.10 для LPC2368, LPC2478
- …
LPC21ISP
Наиболее оптимальный вариант для прошивки микроконтроллераконтроллера через последовательный порт - воспользоваться консольной программой lpc21isp.
Сборка приложения проста и осуществляется одной командой make
.
Использование программы так же не должно вызвать проблемм:
./lpc21isp -control -verify lpc2368_blink.hex /dev/ttyS0 57600 12000
Здесь ключ -control
указывает, что линии DTR
и RTS
управляет сбросом и вводом процессора в режим загрузчика соответственно.
Ключ -verify
заставляет сделать проверку правильности записи flash.
Далее следуют:
lpc2368_blink.hex
- имя файла прошивки./dev/ttyS0
- порт к которому подключён микроконтроллер.57600
- скорость в бодах на которой будет идти обмен с МК.12000
- тактовая частота МК в КГц (например кварцевого резонатора).
Ключ -term
позволяет сразу после прошивки войти в режим терминала. Понадобится это может в том случае, если МК использует тот же порт для программирования и для вывода какой-то отладочной информации или диалога с пользователем.
./lpc21isp -control -term lpc2368_blink.hex /dev/ttyS0 57600 12000
Вы можете скачать простейший пример для того, что бы попробовать lpc21isp
- lpc2368_blink.hex.gz - готовый бинарник (Собирался с помощью тулчейна от [[soft:arm-toolchain|CodeSourcery]]).
- lpc2368-blink.tar.gz - исходный код.
Пример мигает светодиодами подключёнными к портам с P0.4 по P0.7 (4шт.) и посылает строку со счётчиком в UART0.
comments powered by Disqus