JTAG模式下的MPC5554外部FLASH編程的設(shè)計(jì)與實(shí)現(xiàn)
4 軟件實(shí)現(xiàn)
該系統(tǒng)軟件開發(fā)基于Codewarrior,PE(Proces-sor?Expert)與JTAG組合開發(fā)平臺(tái),圖5是開發(fā)平臺(tái)示意圖。其中,Codewarrior是Freescale公司針對(duì)PowerPC系列微控制器開發(fā)的集成開發(fā)環(huán)境。Codewarrior集編輯器、調(diào)試器功能于一體,可進(jìn)行編碼、編譯、編輯、鏈接和調(diào)試等開發(fā)過程。 Codewarrior中使用C/C++語(yǔ)言進(jìn)行編程。為了便于開發(fā),F(xiàn)rees-cale公司開發(fā)了供MPC5554配套使用的圖形化開發(fā)工具P &E(Processor Expert),通過它對(duì)MPC5554各功能模塊進(jìn)行設(shè)置,生成相應(yīng)函數(shù)和執(zhí)行代碼,可在Codewarrior開發(fā)環(huán)境中使用。本文引用地址:http://m.butianyuan.cn/article/163386.htm
MPC5554通過外部總線接口(Extrenal Bus Inter-face,EBI)和存儲(chǔ)器控制器提供對(duì)外部存儲(chǔ)器的訪問。其中,外部總線接口提供24條地址線和32條數(shù)據(jù)線與存儲(chǔ)器相連,存儲(chǔ)器控制器提供4條片選信號(hào)線CS[0:3],1條輸出使能信號(hào)線OE,4條讀寫信號(hào)線WE[0:3],用于選擇和讀寫外部存儲(chǔ)器或設(shè)備。MPC5554的24條地址線和4條片選信號(hào)配合可以訪問64 MB的地址空間。
在軟件實(shí)現(xiàn)方面,主要是對(duì)EBI相關(guān)寄存器進(jìn)行設(shè)置,同時(shí)在SIU(System Integration Unit)模塊對(duì)相關(guān)管腳進(jìn)行功能設(shè)置,以及對(duì)FLASH自身的程序設(shè)計(jì)。MPC5554自身劃分了若干功能模塊,并設(shè)有相應(yīng)的寄存器。MPC5554的大部分引腳具有復(fù)用功能,每個(gè)引腳通過SIU模塊的PCR(Pad Configuration Registers)寄存器進(jìn)行功能選擇。例如片選信號(hào)引腳功能復(fù)用為CS[0:3]_ADDR[8:11]_GPIO[0:3],作為片選信號(hào)需要對(duì)寄存器進(jìn)行設(shè)置,其他相關(guān)引腳同理設(shè)置。
SIU.PCR[2].R=0x0443: //CS2
SIU.PCR[3].R=0x0443: //CS3
MPC5554的EBI模塊對(duì)外部數(shù)據(jù)總線進(jìn)行設(shè)置,對(duì)某片選信號(hào)相對(duì)應(yīng)的外擴(kuò)存儲(chǔ)器進(jìn)行地址與存儲(chǔ)空間設(shè)置。其中,OR寄存器通過掩碼的方式設(shè)置片選信號(hào)控制的存儲(chǔ)空間大小。例如,CS[3]連接的FLASH起始地址為0x20000000,存儲(chǔ)器空間為2 MB。
EBI.CS[3].BR.R=0x20000003;
EBI.cs[3].OR.R=0xffe00020;
該系統(tǒng)的重點(diǎn)是對(duì)FLASH進(jìn)行操作的程序,主要是對(duì)AM29LV160DT內(nèi)部的命令寄存器按一定的時(shí)序?qū)懭朊睿绫?所示。通過這些命令或命令序列可以實(shí)現(xiàn)獲得芯片信息、數(shù)據(jù)讀取、整體擦除、扇區(qū)擦除和數(shù)據(jù)寫入等功能。
下面附一部分FLASH擦寫程序。
5 結(jié) 語(yǔ)
在此實(shí)現(xiàn)了在JTAG模式下對(duì)MPC5554外部FLASH的編程設(shè)計(jì),驗(yàn)證了Codewarrior,PE與JTAG組合開發(fā)平臺(tái)的可用性,為MPC5554微控制器用于復(fù)雜多變量系統(tǒng)開發(fā)打下了基礎(chǔ)。
評(píng)論