<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > TMS320C672x系列浮點(diǎn)DSP的EMIF研究與應用

TMS320C672x系列浮點(diǎn)DSP的EMIF研究與應用

作者: 時(shí)間:2011-03-16 來(lái)源:網(wǎng)絡(luò ) 收藏


Flash在讀操作中類(lèi)似于普通的ROM,在寫(xiě)操作中需要使用一些特殊命令字,按一定的順序編程,且可隨時(shí)編程,編程命令根據器件參考資料。對Flash的讀/寫(xiě)流程如圖7所示。


由表1知,對Flash進(jìn)行16位數據寫(xiě)操作時(shí)每次偏移地址需要左移1位,即:*(short int*)(0x90000000+i*2)=shortint i://對Flash的i地址寫(xiě)入16位數據i由于此Flash高位地址線(xiàn)為擴展的地址線(xiàn),必然導致訪(fǎng)問(wèn)Flash時(shí)地址不連續。每次只能連續訪(fǎng)問(wèn)Flash內部4 Kx16 Bit空間,即0x9000_0000~0x9000_1FFE。需要訪(fǎng)問(wèn)高地址空間時(shí),首先通過(guò)設置相應的GPIO引腳或者通過(guò)數據線(xiàn)利用CPLD設置Flash的相應高地址線(xiàn);然后再分別操作低位地址線(xiàn)進(jìn)行讀寫(xiě),便可完成對高地址空間的讀寫(xiě)。

4 并行Flash自啟動(dòng)
4.1 Flash自啟動(dòng)過(guò)程

在實(shí)際中通常把代碼和數據表存放在外部的非易失性存儲器Flash中。TMS320C672X片上的Bootloader工具只能將1KB的代碼搬移到內部RAM。但是在通常情況下,用戶(hù)程序的大小都會(huì )超過(guò)1 KB,所以需要在外部Flash的前1 KB范圍內預先存放一小段程序,待片上Bootloader工具把此段代碼搬移入內部并開(kāi)始執行后,由此段代碼將Flash中剩余的用戶(hù)程序搬移入內部RAM中。Flash中前1 KB代碼為二級Bootloader。系統上電或復位時(shí),內部固化的啟動(dòng)代碼會(huì )自動(dòng)將位于Flash地址空間(0x90000000~0x9FFFFFFF)開(kāi)頭的1 KB代碼傳輸到RAM存儲空間,這就是一次引導。很明顯,一次引導的代碼并不能滿(mǎn)足絕大多數編程者對代碼長(cháng)度的要求,因此就需要二次引導過(guò)程。二次引導是將一次引導的1 KB代碼編寫(xiě)成一個(gè)搬移程序,搬移程序將用戶(hù)的主程序搬移到高速RAM中,并且搬移完成后自動(dòng)跳轉至主程序入口處運行主程序。由于硬件設計中Flash的地址不連續,因此對高位地址線(xiàn)的控制需要在搬移程序中實(shí)現。圖8為使用二級Bootloader的流程圖。


二級Bootloader代碼的編寫(xiě)必須使用匯編語(yǔ)言,因為在執行二級Bootloader時(shí)C的運行環(huán)境還未建立起來(lái)。
4.2 Flash的燒寫(xiě)方法
應用程序和二次Boot編寫(xiě)和編譯完成之后,便可使用TI公司提供的FlashBurn工具完成Flash燒寫(xiě),燒寫(xiě)完成后需要重新上電或復位,便可實(shí)現自啟動(dòng)。此FlashBurn工具雖然燒寫(xiě)方法較為直觀(guān),但是過(guò)程復雜,首先需要下載一個(gè).out文件(FBTC)至DSP系統中,實(shí)現對Flash的操作;其次FlashBurn工具不能識別.out文件,只能接收.hex的十六進(jìn)制文件,必須將.out文件轉換為.hex文件。
因此,用戶(hù)可以自己根據Flash器件的操作方法編寫(xiě)燒寫(xiě)程序,避免文件格式轉換的繁瑣。首先把用戶(hù)應用程序(包括二級Bootloader)編譯生成的.out文件轉載到DSP的RAM中,然后根據要求編寫(xiě)Flash燒寫(xiě)程序,把燒寫(xiě)程序的.out文件裝載到DSP的另一塊區域(注意修改cmd文件中地址范圍,避免兩次裝載可能產(chǎn)生的地址覆蓋),執行程序完成Flash的燒寫(xiě)。注意:燒寫(xiě)到Flash中的應用程序前面12個(gè)字節用于存放_c _int00地址、應用程序字節數、應用程序在RAM中的起始地址,這12個(gè)字節需要在燒寫(xiě)過(guò)程中添加。

5 結束語(yǔ)
本文主要DSP 接口的功能和使用方法,并針對SDRAM和Flash器件討論了的具體硬件接口設計和軟件配置;同時(shí)分析了的自啟動(dòng)過(guò)程,提出了兩種燒寫(xiě)Flash的方法。該應用方法經(jīng)實(shí)驗驗證,確實(shí)可行并易于實(shí)現。

存儲器相關(guān)文章:存儲器原理



上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>