Микроконтроллеры NXP LPC2xxx имеют встроенный загрузчик, позволяющий прошивать память программ (flash) через последовательный порт (UART).
Для входа в режим загрузчика во время аппаратного(?) сброса на определённых ногах микроконтроллера должны присутствовать логические уровни:
Наиболее оптимальный вариант для прошивки микроконтроллераконтроллера через последовательный порт - воспользоваться консольной программой lpc21isp.
Программа состоит из одного файла с исходным текстом и легко собирается различными компиляторами. К примеру сборка с помощью gcc состоит из одной строчки:
gcc lpc21isp_148x.c -o lpc21isp
Использование программы так же не должно вызвать проблемм:
./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
Пример мигает светодиодами подключёнными к портам с P0.4 по P0.7 (4шт.) и посылает строку со счётчиком в UART0.
Гуёвая тулза