Как многим заинтересованным лицам известно, хитрые платы LPCXpresso снабжены мега-дебаггером LPC-Link. Выпуск среды разработки code red в нативном виде под Linux позволил нам, сирым и убогим, познать радость пользования этим самым LPC-link'ом.
В общих и целых чертах мы имеем следующее:
Микроконтроллер задействованный в LPC-link начисто лишен какой бы то ни было долговременной памяти. Фирмварь в него надо грузить каждый раз после перетыкания и перед тем как начать шить target контроллер нам надо проверить, что там вообще на usb шине творится, в плане девайсов.
dfu-util -l покажет нам, есть ли среди USB-девайсов LPC-link жаждущий прошиться фирмварью (если он уже прошился - не отзовётся).
dfu-util и пр. и пр. и пр. спросите вы? Очень просто, когда вы ставили Code Red, то указывали каталог для установки. По умолчанию это будет /usr/local/LPCXpresso/, а dfu-util будет лежать в /usr/local/LPCXpresso/bin/. Бинго!
Если страдалец был найден, надо его срочно прошить (прошить, это сильно сказано, вернее - загрузить прошивку в RAM).
dfu-util -d 0471:df55 -c 0 -t 2048 -R -D /usr/local/LPCXpresso/bin/LPCXpressoWIN.enc
Ура! Теперь можно надругаться над таргетом! То бишь над тем процессором, который подрублен у нас уже к LPC-link (по JTAG или по SWD).
Узнаем, есть ли там у нас вообще нужный нам контроллер:
crt_emu_lpc11_13_nxp -g -2 -pLPC1343 -wire=winusb -info-target
Жестоко и беспощадно потереть всю инфу из таргет-контроллера:
crt_emu_lpc11_13_nxp -g -2 -pLPC1343 -wire=winusb -flash-erase
И собственно прошить новую прошку в контроллер:
crt_emu_lpc11_13_nxp -g -2 -pLPC1343 -wire=winusb -flash-load=/home/ivan/workspace/first_test/Debug/first_test.axf
Теоретически, эта строчка должна создать порт отладки, что бы с помощью великого и ужасного GDB можно было отладить прогу в реальной железке. Но практически оно падает при попытке подключиться к порту из GDB. Ругается на неправильный ID таргет-контроллера, так что вероятно это моя проблемма:
crt_emu_lpc11_13_nxp -g -2 -pLPC1343 -wire=winusb -server=:3333 -mi
To be continue…