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