新聞中心

        EEPW首頁 > 網絡與存儲 > 設計應用 > TMS320VC33外部FLASH在系統編程與并行自舉引導技術

        TMS320VC33外部FLASH在系統編程與并行自舉引導技術

        作者: 時間:2008-02-23 來源: 收藏

          l TMS320C5402片外存儲空間的優化設計

        本文引用地址:http://www.104case.com/article/79144.htm

          C5402的存儲空間可達192 k×16 b。64 k程序空間,64 k數據空間,64 k 1/O空間。C5402片內具有4 k×1 6 b的ROM和16 k×16 b的RAM。片內POM和RAM可以根據PMST寄存器中的DROM,OVLY來靈活設置,使其映像在程序空間和數據空問。程序空間和數據空間未被映像的部分和64 k的1/O空間全部在片外,用片外存儲器來補充。在實際的應用中,應該根據程序量的大小來選擇作為片外空間的存儲芯片的容量,以免造成不必要的浪費,本文選擇IS6lLV256l 6AL(256 k×16 b)作為程序存儲器的片外存儲芯片.SST39LF200A(128 k×16 b)的FLASH作為數據存儲器的片外存儲芯片,以實現自舉家載,使C5402自成獨立系統,圖l為硬件連接圖。

          

         

          IS61LV256l 6AL的工作電壓為3~3.6 V.可以直接與TMS320C5402接口連接,而不必再使用電壓接口芯片進行轉接,使硬件電路更為簡單。Am29LV200B是AMD公司生產的FLASH存儲器.其主要特點有:3 V單電源供電.可使內部產生高電壓進行編程和擦除操作;支持JE-DEC單電源FLASH存儲器標準;只需向其命令寄存器寫入標準的微處理器指令.具體編程、擦除操作由內部嵌入算法實現,并且可以通過查詢特定的引腳或數據線監控操作是否完成;可以對任一扇區進行瀆、寫或擦除操作,而不影響其他部分的數據。

          在訪問存儲空間時,當地址落在片內存儲區域內,自動對這些區域進行訪問;當地址落在片外區域,自動訪問外部存儲器。使用片內存儲器有3個優點:高速執行(不需要等待)、低殲銷、低功耗、所以應盡量使用片內存儲器。

          2 TMS320C5402的Bootload設計

          在T1公司的DSP芯片出廠時,片內ROM中固化有引導裝載程序Bootloa&dr,其主要功能就是將外部的程序裝載到片內RAM中運行,以提高系統的運行速度。TMS320VC5402的Bootloader程序位于片內RoM的0F800H~OFBFFH空間。當系統上電時,DSp將檢查外部引腳MP/MC的狀態,如果該引腳為高電平,則DSP按微處理器模式啟動,從片外OFlF80H地址處開始執行程序;如果該引腳為低電平,則DSP按微計算機模式啟動,系統從片內OFF80H地址處開始執行程序,片內OFF80H~OFFFF是固化的中斷矢量表,此處有一條跳轉指令。因此,如果系統上電時MP/MC的狀態為低電平,DSP復位后將從FF80H處跳轉到F800H開始執行Bootloadel'自動裝載程序。在裝載程序之前,先自動進行如下初始化工作:INTM一1(使中斷無效),OVLY=1(內部RAM映像程序/數據存儲器),對程序和數據區均設置7個等待狀態等。然后,選擇有效的自舉方式進行自舉加載程序。

          2.1選擇自舉方式

          Bootloader能提供許多種引導方式以適配不同的系統設備,包括2種并行總線方式、串口方式以及主機口方式(HPI),還可以支持8 b和16 b的模式,具有很強的系統靈活性。在判斷前面的引導方式無效后,Bootloader會進入并行引導裝載模式,Bootloader首先讀取地址為OFFFFH的I/O空間單元,并將該單元的值作為引導表的首地址。在數據地址空間中讀取引導表的第一個字,來判斷是8 b引導模式還是16 b引導模式。在本設計中,引導表的首地址是存放在數據存儲器0FFFF單元,Bootloader從I/O地址空間中讀取的引導表首地址所對應的引導表中得不到正確的引導信息,于是Bootloader會自動轉向數據空間,從數據空間的OFFFFH地址再去讀一個字作為引導表首地址,進而再從引導表首地址讀取一個字。如果該字為10AAH,則立即進入16 b引導模式;否則,將按8 b方式處理:從OFFFFH讀取一字節作為引導表首地址的低字節,從0FFFEH讀取一字節作為引導首地址的高字節,再從引導表首地址讀取一個值,如果低字節為08H,則再讀引導表的下一個值,如果為AAH,則說明外部存儲器是8 b寬度,進入8 b引導裝載模式。由于在本設計中采用16 b引導模式,Bootloader不會進入8 b模式和后面的串行口引導方式。其選擇流程圖如圖2所示。

          

         

          

         

          2.2 FLASH的數據組織

          自舉表內容包括Boot表頭和欲加載的應用程序代碼。Boot表頭包括欲加載的應用程序代碼長度、代碼段存放的目標地址、程序入口地址等信息。若要完成自舉引導功能,必須建立正確的自舉表,如表1所示。自舉表可以由hex500格式轉換器自動生成;也可以手動建立自舉表,就是把被燒寫的程序直接放在燒寫程序中,根據被燒寫程序的相關信息手動建立自舉表。

          手動建立自舉表的關鍵是設計Boot表頭,下面是一個表頭的設計實例,設程序代碼長度為0150H,運行地址和存放地址都為0200H。

          BOOT.HEADER:

          .WORD 0X10AA ;數據寬度16 b

          .WORD 0X7FFF ;SWWSR

          .WORD OXF800 ;BSCR

          .WORD OX0000 ;程序人口XPC

          .WORD 0X0200 ;程序入口地址

          .WORD OX0150 ;程序段長度

          .WORD 0X0000 ;存放目標XPC

          .WORD OX0200 ;存放目標地址

          手動建立自舉表的過程為:連接好DSP開發系統,運行CCS軟件;將欲加載程序在CCS上運行生存.out文件,并復制;選用16 b FLASH存儲器,生成Boot表頭;將要寫入存儲器的數據存放在cform.dat文件中。然后就可以利用擦寫程序將cform.dat文件中的數據在線寫到FLASH的8000H FFFFH地址段(首地址為8000H)。

          2.3 在線擦寫FLASH程序

          ;先將FLAsH讀寫跳線設置為寫方式

          ;*****FLASH_ erase_ wr.asm******

          .mmregs

          .global-C int00,start,FLASHWR,FLASHERASE

          FLASHMEMl .set 0xd555

          FLASHMEM2 .set 0xaaaa

          .data

          WORDBEGIN:

          .copy "cform.dat"

          WORDEND:

          .text

          _c_int00:B start

          NOP

          NOP

          start:

          STM #0,STO

          STM #0100001101011 11 1b,STl

          NOP

          RSBX SXM

          STM #0010000000100100b,PMST

          NOP

          STM #0aoh,SP

          NOP

          NOP

          STM #7fffh,SWWSR

          NOP

          STM #0,CLKMD

          NOP

          NOP

          STM #17ffh.CLKMD

          NOP

          RPT #255

          NOP

          NOP

          MAIN:

          CALL FLASHERASE

          STM #WORDBEGIN,ARO

          STM #0x8000,Arl

          LD #WORDEND,A

          AND #0xffff,A

          LDM ARO,B

          AND #0xffff,B

          SUB B,A

          NOP

          STLM A,AR2

          STM #8000h,AR3

          NOP

          WRRPT:

          NOP

          LD *AR0+,B

          CALL FLASHWR

          NOP

          BANZ WRRPT,*AR2一

          NOP

          WRFFFF:

          STM #0xffff,Arl

          LD #0x8000,B

          CALL FLASHwr

          NOP

          NOP

          B Mainend

          FLAsHERAsE: ;FLASH擦除程序

          NOP

          LD #0xaa,A

          STL A。*(FLASHMEMl)

          NOP

          NOP

          LD#0x55,A

          STL A,*(FLASHMEM2)

          NOP

          NOP

          LD #0x80,A

          STL A,*(FLASHMEMl)

          NOP

          NOP

          LD #0xaa,A

          STL

          NOP

          NOP

          LD

          STL

          NOP

          NOP

          A,*(FLASHMEMl)

          #Ox55,A

          A,*(FLASHMEM2)

          LD #OxlO,A

          STL A,*(FLASHMEMl)

          NOP

          NOP

          NOP

          RET

          FLAsHwR: ;FLAsH擦除程序

          STM #Ox7fff,SWWSR

          NOP

          NOP

          LD #Oxaa,A

          STL A,*(FLASHMEMl)

          NOP

          NOP

          LD #Ox55,A

          NOP

          NOP

          STL A,*(FLASHMEM2)

          NOP

          NOP

          NOP

          LD#OxaO,A

          NOP

          NOP

          STL A,*(FLASHMEMl)

          NOP

          NOP

          NOP

          STL B,*AR3+

          NOP

          NOP

          NOP

          NOP

          NOP

          STM Ox7 000。SWWSR

          RET

          MAINEND:

          End

          3 結 語

          利用上述方法將程序燒寫入FIASH后,復位TMS320C5402,使其處于微計算機工作方式;將FLASH讀寫跳線設置為讀方式。系統重新加電后,在CCS中觀察數據存儲器空間,其中FLASH所占的空間的內容與cform.dat文件的內容應一致。



        關鍵詞: TMS320VC33

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西乌珠穆沁旗| 赤水市| 息烽县| 化隆| 五峰| 泸水县| 客服| 崇义县| 福鼎市| 冕宁县| 社会| 桦川县| 林甸县| 崇义县| 和龙市| 汝阳县| 库伦旗| 南皮县| 楚雄市| 达孜县| 澄迈县| 光泽县| 财经| 老河口市| 成武县| 正镶白旗| 山阳县| 登封市| 潼关县| 南溪县| 鄂伦春自治旗| 公主岭市| 高雄县| 潜山县| 舟曲县| 西城区| 烟台市| 浦县| 嘉峪关市| 吉木乃县| 和林格尔县|