日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

H-JTAG烧写程序的方法

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 H-JTAG烧写程序的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

H-JTAG是H-JTAG團隊開發的一款自主原創的ARM仿真套件, H-JTAG開發套件主要包括了: H-JTAG SERVER 調試軟件, H-FLASHER 燒寫軟件,及高速H-JTAG USB 仿真器。
其支持各種ARM處理器: ARM7, ARM9, ARM11, XSCALE (包括最新的PXA300系列), CORTEX-M3。無縫連接各種主流IDE:ADS, SDT, IAR, KEIL, RVDS。支持各種WINDOWS平臺 NT/2000/XP/VISTA。
本文就如何利用H-JTAG把程序燒寫到友善之臂mini2440開發板進行詳細的說明。作為友善之臂的《mini2440使用說明書》的一種補充和修正。
2 關于Nand flash 和nor flash
S3C2440支持兩種方式的啟動:Nor Flash啟動和Nand Flash啟動。Nor Flash和Nand Flash都是非易失性存儲器,Nor Flash的特點是芯片內執行,程序可以直接在其中運行,而不必將程序讀取到RAM中運行。
Nor Flash雖然具有這個優點,但是它的性價比遠低于Nand Flash,因而很多系統采用Nand Flash啟動。Nand Flash的特點是采用非線性存儲模式,程序無法在其中運行,它只能作為程序或數據的存儲載體,存儲在其中的程序只能先拷貝到RAM中才能運行。
從Nor Flash啟動時,與nGCS0相連的Nor Flash就被映射到nGCS0片選的空間,其地址被映射為0x00000000;從Nand Flash啟動時,S3C2440芯片內部自帶的一塊容量為4K的被稱為“Steppingstone”(“起步階石”)的BootSRAM被映射到nGCS0片選的空間,其地址被映射為0x00000000。當系統上電或復位時,程序會從0地址處開始執行,因此我們編寫的啟動代碼要確保存儲在0地址處。
當啟動方式為Nor Flash啟動時,沒有額外需要考慮的問題,因為這種情況下程序在系統啟動前就存儲在Nor Flash中,我們只要保證將啟動代碼保存在Nor Flash開始的位置即可,系統上電或復位時,0地址處的啟動代碼就會被執行。
在啟動方式為Nand Flash啟動的情況下,系統啟動前所有的程序存儲在Nand Flash中,系統的啟動過程稍微有點復雜:系統上電或復位時,0地址處為S3C2440內部自帶的BootSRAM,啟動前里面沒有任何存儲內容,啟動后S3C2440先通過硬件機制將Nand Flash前4K的內容拷貝至其中,然后再運行里面的程序(從0地址處)。
這種情況下我們需要保證將啟動代碼保存在Nand Flash開始的位置,并且啟動代碼的大小要小于4K。如果系統的所有程序在編譯鏈接后的大小小于4K,那在系統的啟動代碼中無需考慮將程序從Nand Flash搬運到SDRAM這個問題,因為所有的程序在啟動時即全部由Nand Flash拷貝至BootSRAM,程序在BootSRAM中運行即可;如果系統的所有程序在編譯連接后的大小大于4K,那在系統的啟動代碼中需要包含一段將系統的全部程序從Nand Flash搬運到SDRAM的代碼,因為系統啟動時只將Nand Flash的前4K拷貝到BootSRAM中,還有部分程序保存在Nand Flash中, Nand Flash中是無法運行程序的,需要將所有程序拷貝至SDRAM并在其中運行,所以在系統的啟動代碼中要包含這段有關程序拷貝的代碼,并在所有程序拷貝完成后使程序跳轉到SDRAM中運行。
也就是說在啟動方式為Nand Flash啟動的情況下,因為Nand Flash的特性,程序需要涉及到兩次的搬移,一次是從Nand Flash搬移到BootSRAM,搬運的程序量大小是4K,目的是使系統能夠啟動;第二次搬運是從Nand Flash搬運到系統的SDRAM,如果系統的所有程序量小于4K,這一步可以省略,搬運的程序量大小是系統的所有程序,目的是使程序在SDRAM中運行。第一次搬運是S3C2440通過硬件機制自動實現的,我們無需干預,第二次則需要我們程序員來實現。
Mini2440開發板帶有兩種FLASH: Nor Flash和Nand Flash。按照開發板的設計目的以及很多實際的應用,系統一般選擇從Nand FLASH啟動,但廠家為了方便大家學習還是保留了Nor Flash,我們也可以將啟動代碼燒寫至Nor Flash,并從中啟動。兩種啟動方式的啟動代碼稍有不同,不同點主要在上述的第二次程序拷貝。啟動方式可通過撥鍵開關S2來選擇。
3 關于Supervivi
首先了解一下BIOS。BIOS是英文“Basic Input Output System”的縮略語,直譯過來后中文名稱就是“基本輸入輸出系統”。其實,它是一組固化到計算機內主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統設置信息、開機后自檢程序和系統自啟動程序。 其主要功能是為計算機提供最底層的、最直接的硬件設置和控制。
Mini2440開發板采用的 BIOS 是基于三星原來的bootloader 之vivi 改進而來,名為Supervivi,它采用功能菜單的方式,并可以和原來的命令交互模式互相切換。
Supervivi 可以使用JTAG 板(一般借助H-JTAG 軟件)直接燒寫入Nor Flash 中使用,也可以直接燒入Nand Flash 中運行。當燒入Nor Flash 并從中時,將會出現菜單模式;當燒入Nand Flash 并從中運行時,按下開發板上的任意一個按鍵,也可以出現菜單模式,否則會啟動開發板上預裝的操作系統(Linux/WindowsCE)。
Supervivi 的菜單模式主要為燒寫系統和調試而用,也可以設置參數和進行分區等,它采用USB 下載的方式,因此搭建燒寫環境極為簡單,并且下載速度快,使用十分方便。
如果 Supervivi 被燒寫入Nor Flash(默認),不僅可以用它來方便的下載更新linux 和WinCE 系統,還可以燒寫其他任何支持Nand Flash 啟動的操作系統和非操作系統到NandFlash,如uCos2,U-boot,Nboot,2440test 等,然后再選擇系統從Nand Flash 啟動,這樣就可以使用各種各樣的系統了。
4 板載JTAG接口與HJTAG連接
H-JTAG USB 仿真器的采用標準的20 針JTAG 接口,板載JTAG接口是采用10針,兩者信號的定義如圖1和圖2所示。

因此這里面涉及到兩個接口連接的問題。在H-JTAG USB 仿真器端,若把有凸切口的一端作為上方,那么引腳的第一行,從右到左排列就是1,3,5….19引腳,另外還可以通過跟H-JTAG端配合的線來看,帶有紅色花紋的那條線就是1引腳連接的線。
在mini2440板上有一個10針的插槽,若以切口端為上方,那么第一行從右到左排列依次就是1,3,5,7,9引腳。另外在板上還有一個“JTAG2”的箭頭,箭頭所指就是1引腳。因此連接方法如圖3所示。

圖3 板載JTAG接口與H-JTAG端接口的連接
5 燒寫Supervivi到nor flash
燒寫前準備:
(1)連接好H-JTAG和mini開發板。
(2)把S2開關撥到nor flash邊,開啟電源。
(3)安裝好H-JTAG軟件,本文安裝的是2010-06-01 H 版本。
(4)把FriendlyARM2440.his文件復制到HJTAG安裝目錄下,該文件由mini2440提供。
(5)確保S3C2440+SST39VF1601.hfc文件在HJTAG安裝目錄下的HFC Examples下。本文mini2440用到的nor flash是SST39VF1601,所以選用該文件。
(6)從友善之臂網站下載supervivi-1026文件,里面包含兩個文件,一個是supervivi-64M,一個是supervivi-128M,等一下我們燒寫的是supervivi-64M。supervivi-64M 和 supervivi-128M,分別支持64M/128M Nand Flash的mini2440。supervivi-128M是燒寫到128M 的Nand Flash的mini2440的,本文用到的64M的Nand Flash。但是現在要燒寫的是nor flash的SST39VF1601,supervivi-64M就可以了滿足要求了。
燒寫過程:
(1)打開H-JTAG,點擊Detect target ,得到如圖4所示。
(2)在 H-JTAG 的主界面,點Script->Init Script,跳出Init Script 窗口,點該窗口下面的Load 按鈕,找到并選擇打開剛剛復制的FriendlyARM2440.his 文件,如圖5所示。

(3)設置Flash 型號并燒寫BIOS
1)點H-JTAG 主菜單的Flasher-> Start H-Flasher 打開H-Flasher 燒寫程序窗口,在窗口菜單中選擇
“Load”,出現打開文件選擇窗口,選擇上面步驟復制H-Flasher_SST39VF1601.hfc。選擇后,得到如圖6所示。點擊左側導航欄Configuration選項,出現的界面如圖7所示,從中可以發現里面的設置是固定的。
2)點 H-Flasher 左側導航欄的“Programming”,點擊Check按鈕,出現如圖界面如圖8所示。

   
3)再點 Src File 右側的瀏覽按鈕,選擇所要燒寫的文件supervivi,如圖9,打開,并在圖8中“Dst Addr ”一欄中輸入燒寫的起始地址“0”,如圖8所示。
4)點“Program”按鈕開始燒寫supervivi。
5)至此,已經把supervivi-64M 燒寫入Nor Flash 中。
6 燒寫獨立的應用程序到nand flash 
在《mini2440使用手冊》P631中有其中一個敘述,如下:“注意:目前H-JTAG 只能用于燒寫Nor Flash,并不能直接燒寫Nand Flash,一些開發板廠商為了節省成本,很多都省掉了Nor Flash,因此并不能用本節介紹的步驟快速簡單的燒寫BIOS。”
  但是實踐證明,可以燒寫獨立的應用程序到nand flash??梢耘浜螦DS+AXD+HJTAG聯合調試,實現單步調試和全速調試。這個意義很重大,對在裸機上開發或者自定義的操作系統下開發程序非常重要。
執行以下步驟之前,要確保開發板選擇從Nor Flash 啟動,切記!
接上面的步驟:
1)點H-JTAG 主菜單的Flasher-> Start H-Flasher 打開H-Flasher 燒寫程序窗口,在H-Flasher 窗口菜單
中選擇“Load”,出現打開文件選擇窗口,選擇H-JTAG安裝路徑下的HFC Examples中的S3C2440+K9F1208.hfc,如圖10,選擇后出現的界面如圖11所示。
2) 點 H-Flasher 左側導航欄的“General”,在“SKIP ID CHECK”打勾。如圖12所示。
3)點 H-Flasher 左側導航欄的“Programming”,點擊Check按鈕,出現如圖界面如圖13所示。其設置都是固定的了。找到需要燒寫的文件,點擊“Program”按鈕即可,實現燒寫。
4)把HJTAG拔開,關閉板上電源,把開關調到nand flash 啟動。開啟電源,就可以從nand flash 啟動,并執行剛才下載的程序了。

轉載論文:基于mini2440的H-JTAG燒寫程序的方法.陳海生

總結

以上是生活随笔為你收集整理的H-JTAG烧写程序的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。