版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第10章 自制簡(jiǎn)易JTAG下載燒寫工具對(duì)于普通嵌入式系統(tǒng)愛好者來(lái)說(shuō),不太可能花太多的錢去買比較高檔的調(diào)試仿真工具來(lái)調(diào)試我們自己的目標(biāo)板,最經(jīng)濟(jì)的做法就是自己制作一個(gè)簡(jiǎn)單JTAG線纜用來(lái)燒寫flash,先將bootloader固化到flash中,因?yàn)閎ootloader編譯出來(lái)都很小,一般幾十KB,最多幾百KB,用簡(jiǎn)易JTAG燒寫不需要多少時(shí)間,如果順利,bootloader能夠正常工作,那么就可以在bootloader菜單中通過(guò)串口或者TFTP下載其他程序到目標(biāo)板的DRAM中進(jìn)行運(yùn)行調(diào)試或者燒寫最后定型的軟件,因?yàn)橥ㄟ^(guò)串口或者TFTP下載的速度比簡(jiǎn)易JTAG線纜下載燒寫速度快。當(dāng)然也可以從網(wǎng)上
2、搜索購(gòu)買一個(gè)簡(jiǎn)易JTAG線纜(很便宜,最多不超過(guò)50RMB),不管是什么版本都行,然后用我們下面介紹的簡(jiǎn)易JTAG燒寫軟件來(lái)燒寫目標(biāo)板的flash,使用燒寫軟件之前只需先根據(jù)所購(gòu)買JTAG線纜的具體連線圖中并口與JTAG口的對(duì)應(yīng)關(guān)系適當(dāng)修改源代碼中的管腳變量定義,然后重新編譯鏈接就可以了。這一章我們就介紹簡(jiǎn)易JTAG線纜硬件原理,燒寫軟件流程,并說(shuō)明使用簡(jiǎn)易JTAG線纜燒寫flash的方法。10.1 JTAG簡(jiǎn)介JTAG接口的基本工作原理是:在芯片內(nèi)部定義一個(gè)TAP(Test Access Port,測(cè)試訪問端口),開發(fā)人員使用連接到芯片的JTAG外部接口上的JTAG調(diào)試器,通過(guò)訪問芯片內(nèi)部的
3、TAP端口來(lái)掃描芯片內(nèi)部各個(gè)掃描單元以寫入或讀取掃描寄存器的狀態(tài),從而對(duì)芯片進(jìn)行測(cè)試和調(diào)試。一個(gè)掃描單元對(duì)應(yīng)一個(gè)外部管腳,每個(gè)外部管腳有一個(gè)掃描寄存器BSR單元,所有這些管腳的掃描寄存器連在一起就形成了掃描鏈。簡(jiǎn)單地說(shuō),PC通過(guò)JTAG調(diào)試器對(duì)目標(biāo)板的調(diào)試就是通過(guò)TAP端口完成對(duì)掃描寄存器BSR和指令寄存器IR的讀寫訪問。要了解關(guān)于JTAG 更全面的知識(shí),請(qǐng)參閱 IEEE1149.1標(biāo)準(zhǔn)。 一些基本概念JTAG是Joint Test Action Group(聯(lián)合測(cè)試行動(dòng)組)的縮寫,是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,它遵守IEEE 1149.1標(biāo)準(zhǔn)。一個(gè)含有JTAG接口的處理器,只要時(shí)鐘正常,就可以通過(guò)
4、JTAG接口訪問處理器的內(nèi)部寄存器、掛在處理器總線上的設(shè)備以及內(nèi)置模塊的寄存器。TAP是Test Access Port(測(cè)試訪問端口)的縮寫,是芯片內(nèi)部一個(gè)通用的端口,通過(guò)TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR)和指令寄存器(IR),對(duì)整個(gè)TAP的控制是通過(guò)TAP控制器(TAP Controller)完成的。邊界掃描英文叫Boundary Scan,邊界掃描的基本思想是在靠近芯片的輸入輸出管腳(PIN)上設(shè)置一個(gè)移位寄存器單元,也就是邊界掃描寄存器(Boundary-Scan Register)。當(dāng)芯片處于調(diào)試狀態(tài)時(shí),邊界掃描寄存器可以將芯片和外部輸入輸出管腳隔離開來(lái),通過(guò)邊界掃描寄存
5、器單元,可以實(shí)現(xiàn)對(duì)芯片外部輸入輸出管腳的觀察和控制。對(duì)于芯片的輸出管腳可以通過(guò)與之相連的邊界掃描寄存器單元把信號(hào)(數(shù)據(jù))加載到該引腳中去,對(duì)于芯片的輸入管腳,也可以通過(guò)與之相連的邊界掃描寄存器捕獲該管腳上的輸出信號(hào)。在正常的運(yùn)行狀態(tài)下,邊界掃描寄存器對(duì)芯片來(lái)說(shuō)是透明的,所以正常的運(yùn)行不會(huì)受到任何影響,這樣,邊界掃描寄存器提供了一種便捷的途徑用于觀測(cè)和控制所需調(diào)試的芯片。另外,芯片管腳上的邊界掃描(移位)寄存器單元可以相互連接起來(lái),使芯片的周圍形成一個(gè)邊界掃描鏈(Boundary-Scan Chain),邊界掃描鏈可以串行地輸入和輸出,通過(guò)相應(yīng)的時(shí)鐘信號(hào)和控制信號(hào),就可以方便地觀察和控制處在調(diào)試
6、狀態(tài)下的芯片。10.2 簡(jiǎn)易JTAG線纜原理簡(jiǎn)易JTAG線纜一端連接到PC的并口,另一端連接到目標(biāo)板的JTAG接口,PC并口中的數(shù)據(jù)、I/O管腳通過(guò)一個(gè)74XX244單向驅(qū)動(dòng)芯片與目標(biāo)板JTAG口的TMS、TCK、TDI、TDO、TRST信號(hào)線相連,然后用PC上的軟件來(lái)模擬JTAG所遵守的IEEE 1149.1標(biāo)準(zhǔn)協(xié)議,從而訪問、控制目標(biāo)板上處理器的I/O管腳狀態(tài),也就能訪問、控制掛接在處理器總線上的flash芯片的I/O管腳,實(shí)現(xiàn)將數(shù)據(jù)寫入flash芯片中的功能。 PC并口定義PC并口管腳線序如圖10-1所示:圖10-2 PC并口管腳線序PC并口管腳定義如表10-1所示:表10-1 PC并口
7、管腳定義續(xù)表 PC并口的寄存器PC上的程序通過(guò)訪問并口的I/O端口寄存器來(lái)訪問、控制并口的管腳信號(hào),這些端口包括數(shù)據(jù)端口、狀態(tài)端口和控制端口,其中每個(gè)端口都有自己的端口號(hào),相當(dāng)于它們的地址。程序通過(guò)端口號(hào)來(lái)訪問端口寄存器。PC并口1的數(shù)據(jù)端口號(hào)為3BCH,狀態(tài)端口號(hào)為3BDH,控制端口號(hào)為3BEH;PC并口2的數(shù)據(jù)端口號(hào)為378H,狀態(tài)端口號(hào)為379H,控制端口號(hào)為37AH;PC并口3的數(shù)據(jù)端口號(hào)為278H,狀態(tài)端口號(hào)為279H,控制端口號(hào)為37AH;1)數(shù)據(jù)寄存器數(shù)據(jù)寄存器(D0D7)也叫數(shù)據(jù)端口,它保存了寫到數(shù)據(jù)端口管腳的一字節(jié)數(shù)據(jù)。數(shù)據(jù)端口可以寫入數(shù)據(jù)(輸出),也可以讀出數(shù)據(jù)(輸入)。寫
8、入的數(shù)據(jù)是從數(shù)據(jù)端口管腳輸出的數(shù)據(jù),讀出來(lái)的數(shù)據(jù)是我們上次寫入數(shù)據(jù)端口的數(shù)據(jù)或者原來(lái)保留在里面的數(shù)據(jù),并不是從端口管腳輸入PC的數(shù)據(jù)。數(shù)據(jù)端口對(duì)應(yīng)的管腳是PIN2PIN9,數(shù)據(jù)寄存器定義如表10-2所示。表10-2 PC并口數(shù)據(jù)寄存器定義bit對(duì)應(yīng)并口管腳信 號(hào) 名信 號(hào) 源是否倒相0Pin2D0PC否1Pin3D1PC否2Pin4D2PC否3Pin5D3PC否4Pin6D4PC否5Pin7D5PC否6Pin8D6PC否7Pin9D7PC否2)狀態(tài)寄存器狀態(tài)寄存器(S0S7)又叫狀態(tài)端口,它保存的是5個(gè)輸入(S3S7)管腳的邏輯狀態(tài),S0S2位不與管腳對(duì)應(yīng)。除了S0以外,狀態(tài)寄存器是只讀的,讀
9、出數(shù)據(jù)信息是狀態(tài)端口管腳上的邏輯狀態(tài)。S0是支持EPP傳輸并口的超時(shí)標(biāo)志信息,可以用軟件方法清零。在許多并口中,狀態(tài)輸入接有上拉電阻。狀態(tài)端口對(duì)應(yīng)的管腳是Pin10Pin13、Pin15。狀態(tài)寄存器定義如表10-3所示。表10-3 PC并口狀態(tài)寄存器定義bit對(duì)應(yīng)并口管腳信 號(hào) 名信 號(hào) 源是否倒相0Time-Out1未使用2未使用3Pin15nError(nFault)外設(shè)否4Pin13Select外設(shè)否5Pin12PaperEnd外設(shè)否6Pin10nAck外設(shè)否7Pin11Busy外設(shè)是3)控制寄存器控制寄存器(C0C8)又叫控制端口,它保存了C0C3的4位的控制信息,C4C7不與管腳對(duì)應(yīng)
10、,這些位一般被用來(lái)輸出;但在大多數(shù)SPP并口中,控制位為集電極開路/漏極開路模式,也就是說(shuō),它們同樣可以用作輸入。要從控制位上讀取外部邏輯信號(hào),首先將相應(yīng)的輸出寫入1,然后讀取控制寄存器的值即可。但是,為了提高交換速度,大多數(shù)支持EPP和ECP模式的并口,控制位工作在不能用作輸入的推拉模式下。在一些多模式接口中,控制位采用的是改進(jìn)型的推拉模式,可以用作輸入??刂贫丝趯?duì)應(yīng)的管腳是Pin1、Pin14、Pin16和Pin17??刂萍拇嫫鞫x如表10-4所示。表10-4 PC并口控制寄存器定義bit對(duì)應(yīng)并口管腳信 號(hào) 名信 號(hào) 源是否倒相0Pin1nStrobePC是1Pin14nAutoLFPC是
11、2Pin16nInitPC否3Pin17nSelectInPC是4IRQ5未使用6未使用7未使用 簡(jiǎn)易JTAG線纜原理圖圖10-3及圖10-4分別是我自己制作的簡(jiǎn)易JTAG線纜的原理圖和外觀圖。(點(diǎn)擊查看大圖)圖10-3 自制簡(jiǎn)易JTAG線纜原理圖圖10-4 自制簡(jiǎn)易JTAG線纜外觀圖10.3 簡(jiǎn)易JTAG燒寫代碼分析 簡(jiǎn)易JTAG燒寫程序(flashp)使用說(shuō)明1)需要用到的文件說(shuō)明文 件說(shuō) 明porttalk.sysPC的I/O端口驅(qū)動(dòng)程序,使用flashp前必須將該文件復(fù)制到Windows所安裝硬盤分區(qū)的WINDOWSsystem32drivers目錄下AllowIo.exePC的I/O
12、端口使能程序,在Windows XP和Windows 2000下必須與flashp.exe聯(lián)合使用,在Windows 98下無(wú)須用此文件flashp.exe簡(jiǎn)易JTAG燒寫flash程序已編譯好的可執(zhí)行文件mycpu.bsd目標(biāo)板上CPU芯片的邊界掃描描述文件,由CPU芯片生產(chǎn)廠家提供myflash.fcd目標(biāo)板上CPU與flash芯片管腳連接以及flash芯片屬性描述文件myprj.bin要被燒寫到flash中的二進(jìn)制工程文件erase.bat擦除flash芯片批處理文件read.bat讀flash芯片中數(shù)據(jù)批處理文件write.bat寫數(shù)據(jù)到flash芯片批處理文件2)flashp.exe
13、命令格式說(shuō)明/(allowio) flashp cmd options (/a) ;如果在Windows 98系統(tǒng)下使用,則不用allowio和/a命令格式說(shuō) 明cmd操作命令標(biāo)識(shí)字符,不區(qū)分大小寫R從flash中讀數(shù)據(jù)到指定文件W將指定二進(jìn)制文件寫入flashE擦除flash整個(gè)芯片V校驗(yàn)flash中的數(shù)據(jù)T測(cè)試JTAG線纜連接情況,檢查PC哪個(gè)并口連接了JTAG線纜options選項(xiàng)標(biāo)識(shí)字符,不區(qū)分大小寫-V指示操作后進(jìn)行校驗(yàn),默認(rèn)不校驗(yàn)-D運(yùn)行過(guò)程中打印調(diào)試信息-C指定flash連接描述文件,默認(rèn)為default.fcd-F指定要寫入的二進(jìn)制文件工程文件名-S指定燒寫flash的起始地址
14、,十進(jìn)制,默認(rèn)為0-L指定燒寫flash的數(shù)據(jù)長(zhǎng)度,字節(jié)數(shù),十進(jìn)制,默認(rèn)為2563)flashp.exe命令舉例/allowio flashp r -f read.bin -s 0 -l 10000 /a該命令行從flash芯片的0地址開始讀10000個(gè)字節(jié)數(shù)據(jù)保存到read.bin文件中;/allowio flashp e /a該命令將整個(gè)flash芯片擦除,擦除后的flash全為0xff;/allowio flashp w -f myprj.bin /a該命令將myprj.bin文件燒寫到flash芯片的0位置;如果上述命令在Windows 98系統(tǒng)中使用,那么對(duì)應(yīng)命令格式如下所示:/fl
15、ashp r -f read.bin -s 0 -l 10000/flashp e/flashp w -f myprj.bin flash與CPU連接及flash屬性描述文件這里以我自己制作的S3C4510開發(fā)板上用的fcd文件來(lái)說(shuō)明:Chain;JTAG掃描鏈區(qū)段Device=s3c4510b.bsd;CPU的邊界掃描文件,由S3C4510處理器的生產(chǎn)商三星公司提供Read;程序中未用BeginByte=0EndByte=0x10000Flash ; SST39VF160;flash芯片描述區(qū)段。SST39VF160是注釋,指明flash芯片的型號(hào)WriteCmd=0x5555, 0xaa,
16、 0x2aaa, 0x55, 0x5555, 0xa0 ;寫flash芯片的命令字序列,可查閱flash芯片手冊(cè)獲得EraseCmd=0x5555, 0xaa, 0x2aaa, 0x55, 0x5555, 0x80, 0x5555, 0xaa, 0x2aaa, 0x55, 0x0, 0x30 ;擦除flash芯片的命令字序列,可查閱flash芯片手冊(cè)獲得EraseDelay=25;擦除芯片所需要的等待時(shí)間,單位為msBlock=0x800, 512;flash芯片中一個(gè)sector的大小,如果有多種sector,應(yīng)該設(shè)置成最小的sector大小。這里表示flash芯片最小sector的大小為5
17、12字節(jié)AddrWidth=20;flash連到系統(tǒng)中的數(shù)據(jù)寬度,即數(shù)據(jù)線位數(shù),這里表示數(shù)據(jù)線寬為20位;DataWidth=2;flash連到系統(tǒng)中的地址寬度,即地址的字節(jié)數(shù),這里表示地址為2字節(jié)寬度;BigEndian=0;字節(jié)序模式,0表示LittleEndian,小端,一個(gè)字中低地址字節(jié)為低位字節(jié);1表示BigEndian,大端,一個(gè)字中的低地址字節(jié)為高位字節(jié);A0=110;flash芯片的地址位0管腳A0連到了S3C4510芯片的第110管腳,以下類推A1=111A2=112A3=113A4=114A5=115A6=116A7=117A8=120A9=121A10=122A11=12
18、3A12=124A13=125A14=126A15=127A16=128A17=129A18=132A19=133D0=136 ;flash芯片的數(shù)據(jù)位0管腳D0連到了S3C4510芯片的第136管腳,以下類推D1=137D2=138D3=139D4=140D5=141D6=144D7=145D8=146D9=147D10=148D11=149D12=150D13=151D14=152D15=153WR=100;flash芯片的寫信號(hào)管腳WR連到了S3C4510芯片的第100管腳RD=72;flash芯片的讀信號(hào)管腳RD連到了S3C4510芯片的第72管腳CS=75;flash芯片的片選管腳C
19、S連到了S3C4510芯片的第75管腳 ResetCtrl=0x00;flash芯片的復(fù)位控制管腳未連接High=Low=SafeMode=1;安全模式設(shè)置,程序中未使用 簡(jiǎn)易JTAG燒寫程序的執(zhí)行邏輯和流程網(wǎng)上有很多種簡(jiǎn)易JTAG燒寫程序,有用標(biāo)準(zhǔn)C寫的,有用VC寫的,有Windows系統(tǒng)下使用的版本,也有Linux系統(tǒng)下使用的版本,讀者可以自行下載后作適當(dāng)修改重新編譯就可使用了。不管什么版本的程序,其基本原理和執(zhí)行邏輯應(yīng)該是差不多的,本書附帶光盤中有我所下載、修改、使用的JTAG燒寫程序完整源代碼,讀者可以參考閱讀。如圖10-6所示是該程序的總體流程。燒寫程序維護(hù)兩個(gè)掃描鏈表緩沖區(qū),一個(gè)對(duì)應(yīng)輸入,一個(gè)對(duì)應(yīng)輸出。一個(gè)掃描鏈緩沖區(qū)就是一個(gè)int型整數(shù)數(shù)組,數(shù)組的長(zhǎng)度為CPU的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度航空運(yùn)輸貨物代理委托及質(zhì)量控制合同3篇
- 2024離婚財(cái)產(chǎn)分割協(xié)議公證與投資分割
- 2024版軟件許可與技術(shù)支持合同
- 二零二五年度股權(quán)激勵(lì)與員工離職補(bǔ)償合同樣本3篇
- 年度飛機(jī)碳剎車預(yù)制件戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 高校二零二五年度實(shí)驗(yàn)室科研人員聘用合同2篇
- 針對(duì)2025年度環(huán)保項(xiàng)目的技術(shù)研發(fā)合作合同3篇
- 2024-2025學(xué)年高中語(yǔ)文第三課神奇的漢字3方塊的奧妙-漢字的結(jié)構(gòu)練習(xí)含解析新人教版選修語(yǔ)言文字應(yīng)用
- 2024-2025學(xué)年高中政治第三單元思想方法與創(chuàng)新意識(shí)第9課第2框用對(duì)立統(tǒng)一的觀點(diǎn)看問題訓(xùn)練含解析新人教版必修4
- 2025年度特色餐飲業(yè)司爐員綜合管理服務(wù)合同3篇
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 有機(jī)化學(xué)機(jī)理題(福山)
- 醫(yī)學(xué)會(huì)自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動(dòng)物遺傳育種學(xué)》動(dòng)物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報(bào)告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
- 7.6用銳角三角函數(shù)解決問題 (2)
評(píng)論
0/150
提交評(píng)論