用OpenJTAG烧写程序到Flash—— 韦东山嵌入式Linux视频学习笔记03
說明:本文僅在Windows環境下實驗。
韋東山的JZ2440(v2),可以選擇從Nor Flash啟動,也可以選擇從Nand Flash啟動,不管從哪里啟動,都需要Flash上有程序,沒有程序的話,板子就是一塊磚頭。
按照常規思維,板子上應該有一個BootLoader,我們通過BootLoader來燒寫Flash?,F在的問題是,板子上連BootLoader也沒有,我們該怎么辦呢?
還好,板子上有JTAG接口,我們可以利用OpenJTAG或者J-link等,一端連接板子,一端連接PC的USB口,再利用某個軟件把程序燒寫到Flash里。
至于為什么可以通過JTAG接口燒寫Flash,可以參考我的博文
http://blog.csdn.net/longintchar/article/details/70473887
本文主要介紹如何通過OpenJTAG燒寫程序到Flash。
什么是OpenJTAG
根據維基百科,Open JTAG 項目是一個開源工程,它包括完整的硬件和軟件設計參考,基于簡單的硬件組成,包括一個 FTDI FT245 USB 前端和一個 Altera EPM570 MAX II CPLD。
這里我們不討論這個開源工程,我只想說在嵌入式Linux學習中,“OpenJTAG”是一個看得見摸得著東西。下圖就是我從韋東山老師那里買來的OpenJTAG。
這個東東有什么用呢?它有兩大核心功能:
- USB 轉串口
USB 轉 JTAG
由于JZ2440(V2)已經集成了USB轉串口的功能,所以我們主要用OpenJTAG的 “USB 轉 JTAG”功能,基于這個功能,引出兩個應用,一是用來燒寫程序,二是用來調試。調試不是本文的重點,以后用到了再說。
安裝OpenJTAG的驅動
當把這個黃色的東東插到電腦USB口的時候,會提示沒有驅動,查看設備管理器如下圖:
說明我們得安裝驅動,不然無法使用。
一種安裝方法是:鼠標移動到感嘆號處,點擊右鍵,選擇【更新驅動程序軟件】,再選擇【瀏覽計算機以查找驅動程序軟件】,如下圖
點擊【瀏覽】,選擇驅動所在的文件夾,之后點擊【下一步】就可以了。
此時再查看設備管理器,可以看到多了4項。
用oflash.exe燒寫程序
OpenJTAG的用戶手冊上說,oflash.exe是特別針對 OpenJTAG 編寫的燒寫工具,支持 s3c2410、 s3c2440 開發板,支持幾乎所有類型的 Nor、 Nand Flash 燒寫。
先不管這個軟件是怎么弄出來的(其實我也很好奇),我們先用起來。使用步驟如下。
(0)接線,OpenJTAG一端連接PC的USB口,另一端(我的這個在側面)通過排線連接板子的JTAG口。注意:排線端口的一側有個小凸起,這個凸起一定要和板子上繪制的凸起標記相對應。
(1)把FTD2XX.dll和oflash.exe放到C:\WINDOWS\system32目錄下
(2)在命令行運行oflash
(3)輸入“0”,表示OpenJTAG,回車;
Select the CPU:
0. S3C2410
1. S3C2440
2. S3C6410
Enter the number:
(4)選擇CPU類型。我的板子是2440,所以選擇1;
device: 4 “2232C”
deviceID: 0x14575118
SerialNumber: FTWLXFKQA
Description: USB<=>JTAG&RS232 AS3C2440 detected, cpuID = 0x0032409d
[Main Menu]
0:Nand Flash prog 1:Nor Flash prog 2:Memory Rd/Wr 3:Exit
Select the function to test:
(5)選擇Nand或者Nor。因為我要燒寫到Nand Flash,所以選擇0;
(6)輸入文件名:
Enter the file name:
比如輸入
E:\韋東山\00_百問網JZ2440v2主光盤\bin\hardware\stdio.bin
(7)接著會顯示:
[NAND Flash JTAG Programmer]
Scan nand flash:
Device 0: NAND 256MiB 3,3V 8-bit, sector size 128 KiB
Total size: 256 MiB
0:Nand Flash Program 1:Nand Flash Print BlkPage 2:Exit
Select the function to test :
再次輸入0
[NAND Flash Writing Program]
Source size: 0x2e74
Available target block number: 0~2047
Input target block number:
(8)輸入block number或者地址。這里我輸入0,表示0地址,回車后等待
target start block number =0
target size (0x20000*1) =0x20000
STATUS:
Epppppp
(9)等命令行提示符出現后,就說明燒寫完成了。
要看程序的運行效果,請把撥碼開關撥到合適的位置(選擇從Nand Flash啟動還是從Nor Flash啟動),并斷開板子和OpenJTAG的連接。
【完】
總結
以上是生活随笔為你收集整理的用OpenJTAG烧写程序到Flash—— 韦东山嵌入式Linux视频学习笔记03的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三数之和(Leetcode第15题)
- 下一篇: 请设计输出实数的格式,包括:⑴一行输出一