LPC Flash

Устаревшая информация

Для загрузки бинарного кода во флеш контроллеров сеймейства LPC2xxx можно воспользоваться утилитой LPC flash.

Поддерживаются следующие чипы: LPC2103 LPC2104 LPC2105 LPC2106 LPC2114 LPC2119 LPC2124 LPC2129 LPC2131 LPC2132 LPC2134 LPC2136 LPC2138 LPC2141 LPC2142 LPC2144 LPC2146 LPC2148 LPC2194 LPC2210 LPC2212 LPC2214 LPC2292 LPC2294 LPC2364 LPC2366 LPC2368 LPC2378 LPC2468

Приведу шаблон мейкфайла для стирания и программирования флеш микроконтроллера:

# 2008 Ivan A-R <ivan@tuxotronic.org>
#

TARGET=usbhost_debug

# In khz
PORT=/dev/ttyUSB0
BAUD=115200
CHIPFREQ=12000
FLASH=lpcflash
FLASHOPT=-i $(PORT) -b $(BAUD) -f $(CHIPFREQ)

all:

$(TARGET).bin: $(TARGET).hex
	hex2bin $<

.PHONY: erase load

erase:
	$(FLASH) $(FLASHOPT) -e 0:27

load: $(TARGET).bin erase
	$(FLASH) $(FLASHOPT) -p 0 -l $<

Если ваш микроконтроллер или ревизия чипа не поддерживается, можно прописать его в исходниках утилиты и пересобрать её. Тут нужно быть внимательным блоки флеш не обязательно совпадают даже для разных ревизий.

У себя я добавил новую ревизию кристалла LPC2368 и поддержку LPC2478 на том основании, что карта памяти у него полностью совпадает с LPC2378.


Index: src/lpc.c
===================================================================
--- src/lpc.c	(revision 6)
+++ src/lpc.c	(working copy)
@@ -118,6 +118,9 @@
 	{ 0x0703FF25, 2378, 512, 34, 28, 4096, map_2378 },
 	{ 0x1700FD25, 2378, 512, 34, 28, 4096, map_2378 }, /* Rev B */
 	{ 0x0603FF35, 2468, 512, 98, 28, 4096, map_2368 },
+    // I try it
+	{ 0x1600f925, 2368, 512, 34, 28, 4096, map_2368 }, /* Some revision */
+	{ 0x1701ff35, 2378, 512, 34, 28, 4096, map_2378 }, /* Rev B. !!! Really is 2478 */
 	/*
 	{ 0x        , 2478, 512, 98, 28, 4096, map_2368 },
 	*/

Сборка из исходников

Забираем исходный код:

svn checkout http://lpcflash.googlecode.com/svn/trunk/ lpcflash-trunk

Создаём каталог для сборки:

mkdir lpcflash-0.2.svn
cd lpcflash-0.2.svn

Конфигурируем и собираем:

../lpcflash-trunk/configure --prefix=/usr/local
make

Инсталлируем в систему:

sudo make install

Пользователи Debian-based систем могут собрать “ленивый” пакет:

sudo checkinstall -D
 
comments powered by Disqus