使用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


}

arrow
arrow
    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()