使用OPENOCD Write Flash方式:
參考網頁 http://openocd.berlios.de/web/
openocd 0.4.0 -rc1 source code
1.安裝
libftdi1 0.16-2
libftdi-dev 0.16-2
點選ubuntu->system->adminstration->Synaptic Package Manager
進入Synaptic Package Manager後,search 『libftdi』點選需要安裝的Package並安裝即可。
2.解壓縮
tar -jxvf openocd-0.4.0-rc1.tar.bz2
3.切至openocd-0.4.0-rc1目錄下,設定configure
openocd-0.4.0-rc1root@ubuntu:~/Downloads/openocd-0.4.0-rc1#./configure --enable-ft2232_libftdi --enable-usbprog --enable-jlink --enable-arm-jtag-ew
4.執行make
5.執行make install
以上安裝完成openocd。
6.修改 /usr/local/share/openocd/scripts/interface/jtagkey.cfg
interface config file device name, ID如下:
interface ft2232
ft2232_device_desc "USB<=>JTAG&RS232"
ft2232_layout jtagkey
ft2232_vid_pid 0x1457 0x5118
7.修改/usr/local/share/openocd/scripts/board/mini2440.cfg
如此檔案 \\主要增加flash設定以及相關功能。
增加
flash bank SST39V1601 cfi 0x00000000 0x00200000 2 2 $_TARGETNAME jedec_probe
使得SST FLASH功能正常
增加
arm7_9 fast_memory_access enable
使download code速度增加
修改phys work area
$_TARGETNAME configure -work-area-phys 0x33000000 -work-area-size 0x1000000 -work-area-backup 1
8.增加openocd.cfg檔案至工作目錄下。
檔案內容如下:
telnet_port 4444
gdb_port 3333
source find interface/jtagkey.cfg
source find board/mini2440.cfg
9.安裝完成以後執行openocd開啟openocd。
10.使用telnet localhost 4444連線
目前可以使用openocd 並使用以下command更新flash
flash_redboot 更新redboot
flash_supervivi 更新supervivi
詳細可以在telnet下執行help_2440
> help_2440
-----------------------------------------------------------
---- The following mini2440 funcs are supported ----
---- init_2440 - initialize clocks, DRAM, IO ----
---- load_xxbl - loads xxbl into ram ----
---- load_redboot_api - loads redboot_api.bin into ram --
---- flash_erase_all - erase all flash ----
---- flash_redboot -flashes redboot to flash ----
---- help_2440 - this help display ----
-----------------------------------------------------------
Function 執行內容可參閱mini2440.cfg
proc flash_redboot { } {
echo "------------------------------------------------------"
echo "------load redboot.bin to Flash and execute it--------"
echo "------------------------------------------------------"
echo "------------------------------------------------------"
echo "------------------INIT MINI2440 ----------------------"
echo "------------------------------------------------------"
init_2440
echo "------------------------------------------------------"
echo "------------MMU Caceh Disable-------------------------"
echo "------------------------------------------------------"
arm920t cp15 2 0
step
echo "------------------------------------------------------"
echo "------------erasing FLASH Sector 0 50 ----------------"
echo "------------------------------------------------------"
flash erase_sector 0 0 50
echo "------------------------------------------------------"
echo "------------loading redboot.bin ..... ----------------"
echo "------------------------------------------------------"
flash write_bank 0 redboot.bin 0
echo "------------------------------------------------------"
echo "------------Code Run Start at adress 0x0--------------"
echo "------------------------------------------------------"
resume 0
poll
}