亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 5410燒寫flash實現(xiàn)并行自舉引導,絕對實例教程.txt

?? TI C5410燒寫Flash實現(xiàn)并行自舉引導,絕對實例教程
?? TXT
字號:
5410燒寫Flash實現(xiàn)并行自舉引導,絕對實例教程[經(jīng)典推薦]


在后邊我分別用c和gel重寫了燒寫程序,請注意看一下。和下文的程序有一點區(qū)別。(實際燒寫地址和長度不同)
TMS320C5410燒寫Flash實現(xiàn)并行自舉引導



作者:中國兵器工業(yè)部第58所唐冰轉(zhuǎn)貼自:單片機與嵌入式系統(tǒng)應(yīng)用

摘 要:介紹在TMS320C5410環(huán)境下對Am29LV200B Flash存儲器進行程序燒寫,并且實現(xiàn)了TMS320C5410上電后用戶程序并行自舉引導。
關(guān)鍵詞:Am29LV200B Flash DSP 并行自舉引導 自舉表>>

  Flash是一種可在線進行電擦寫,掉電后信息不丟失的存儲器。它具有低功耗、大容量、擦寫速度快等特點,并且內(nèi)部嵌入算法完成對芯片的操作,因而在數(shù)字信號處理系統(tǒng)中得到了廣泛的應(yīng)用。本文通過一個完整的實例,介紹Am29LV200B Flash存儲器的燒寫方法,實現(xiàn)TMS320C5410(以下簡稱C5410)上電后用戶程序的并行自舉引導。

1 Am29LV200B Flash存儲器

1.1 Flash存儲器簡介

  Am29LV200B是AMD公司生產(chǎn)的Flash存儲器,其主要特點有:3 V單電源供電,可使內(nèi)部產(chǎn)生高電壓進行編程和擦除操作;支持JEDEC單電源Flash存儲器標準;只需向其命令寄存器寫入標準的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;可以對任一扇區(qū)進行讀、寫或擦除操作,而不影響其它部分的數(shù)據(jù)。本文中128K×16位Am29LV200B Flash 映射為C5410的片外數(shù)據(jù)存儲空間,地址為:0x8000~0xFFFF,數(shù)據(jù)總線16位,用于16位方式的并行引導裝載。128K的Flash ROM用32K地址分四頁進行訪問,上電加載程序時使用Flash ROM的第3頁。

1.2 Flash存儲器的操作命令

  向Flash存儲器的特定寄存器寫入地址和數(shù)據(jù)命令,就可對Flash存儲器編程,但要按一定的順序操作,否則就會導致Flash存儲器復(fù)位。由于編程指令不能使“0”寫為“1”,只能使“1”變?yōu)椤?”,而擦除命令可使“0”變?yōu)椤?”,所以正確順序是先擦除,后編程。下面就介紹幾個常用的操作命令:編程命令、擦除命令、讀數(shù)據(jù)命令、復(fù)位命令。

  ①編程命令。該命令向Flash的指定地址中寫入數(shù)據(jù),需要四個總線周期,前兩個是解鎖周期,第三個是建立編程命令,最后一個周期完成向編程地址中寫入編程數(shù)據(jù),如表1所列。


由于向每個編程地址寫入數(shù)據(jù)都需要四個周期,所以在循環(huán)寫Flash時使用宏比較簡單。Flash ROM的首地址為0x8000,故偏移地址0x555對應(yīng)物理地址就為0x8555。編程程序如下: 
_WRITECOMMAND .macro pa,pd ;單一周期編程的寫命
;令宏,pa是編程地址,pd是編程數(shù)據(jù)
PSHM AR1
STM pa,AR1 ;AR1指向編程地址
LD pd,A
STL A,*AR1 ;把編程數(shù)據(jù)放入AR1的編程地址中
RPT #12
NOP
POPM AR1
.endm 
_WRITEFlash .macro par,pdr ;編程宏,par是編程地址寄存
;器,pdr是存放編程數(shù)據(jù)的寄存器
_WRITECOMMAND #8555H,#0AAH ; 周期1(解鎖)
_WRITECOMMAND #82AAH,#055H ; 周期2(解鎖)
_WRITECOMMAND #8555H, #0A0H ; 周期3(建立)
LD pdr, A ; 周期4(編程)
STL A, par ; 把pdr寄存器中數(shù)據(jù)放入par
;寄存器的地址中
RPT #12
NOP
_JUDGE par, pdr ;檢測編程是否正確,見Flash
;的操作檢測
.endm
_WRITECOMMAND是實現(xiàn)一個周期編程的寫命令宏,而_WRITEFlash是完成對指定地址編程的四個完整周期。

  ② 擦除命令。該命令有片擦除和扇區(qū)擦除兩種,都需要6個總線周期,前兩個解鎖周期,第三個建立周期,四、五兩個解鎖周期,最后是片擦除或扇區(qū)擦除周期,如表2所列。一旦執(zhí)行編程或擦除命令后,就啟動Flash的內(nèi)部編程或擦除算法,自動完成編程或擦除操作。擦除程序如下:>>

_ERASEFlash .macro ;擦除宏 
_WRITECOMMAND #8555H,#0AAH ; 周期1(解鎖)
_WRITECOMMAND #82AAH,#055H ; 周期2(解鎖)
_WRITECOMMAND #8555H,#080H ; 周期3(建立)
_WRITECOMMAND #8555H,#0AAH ; 周期4(解鎖)
_WRITECOMMAND #82AAH,#055H ; 周期5(解鎖)
_WRITECOMMAND #8555H,#010H ; 周期6(片擦除)
STM #8555H,AR3
LD #010H ,A
STL A,*AR5
_JUDGE *AR3,*AR5 ;檢測是擦除結(jié)束,見Flash的
;操作檢測
.endm

  ③讀數(shù)據(jù)命令。上電或內(nèi)部編程、擦除操作結(jié)束后就進入讀數(shù)據(jù)狀態(tài),寫入要讀取的地址即可讀出該地址的數(shù)據(jù)。

  ④復(fù)位命令。它使存儲器復(fù)位,進入讀數(shù)據(jù)狀態(tài),向任何一個地址寫入數(shù)據(jù)0xF0就能使Flash存儲器復(fù)位。在進行編程、擦除之前,都應(yīng)先復(fù)位,在編程或擦除等正常操作中出現(xiàn)錯誤時也要復(fù)位。復(fù)位程序如下:
_RESETFlash .macro
_WRITECOMMAND #8001H,#0F0H
;向8001H寫入0F0H使Flash復(fù)位
RPT #12
NOP
.endm

1.3 Flash的操作檢測

  Flash內(nèi)部的編程或擦除算法可自動完成編程或擦除操作,但我們必須了解其內(nèi)部的操作檢測機制,以便知道操作是否完成或正確。常用檢測的狀態(tài)位有:跳變位(DQ6)、超時標志位(DQ5)、數(shù)據(jù)查詢位(DQ7)和Ready/Busy引腳(RY/)。檢測的方法有三種。第一種是判斷引腳RY/的狀態(tài),在編程、擦除或擦除掛起操作過程中,RY/引腳一直為“0”,操作完成后變?yōu)椤?”。第二種是檢測跳變位DQ6,在編程或擦除時對任何地址進行連續(xù)的讀均引起DQ6連續(xù)跳變,直至操作結(jié)束才停止跳變。最后一種是使用數(shù)據(jù)線的DQ7、DQ5:DQ7位在編程或擦除過程中輸出的數(shù)是寫入該位數(shù)據(jù)的反碼,當操作完成時輸出才變?yōu)閷懭朐撐坏臄?shù)據(jù);DQ5的狀態(tài)為“1”時表示操作超時,此時應(yīng)再讀一次DQ7的狀態(tài),若DQ7輸出仍不是寫入的數(shù)據(jù),則操作失敗,復(fù)位Flash,其流程如圖1所示。

檢測程序如下:
_JUDGE .macro par,pdr;檢測宏程序。par是編程地址寄存
;器,pdr是存放編程數(shù)據(jù)的寄存器
_JUDGEBEGIN?: PSHM AR1
LD pdr,B ;獲取寫入的數(shù)據(jù)
AND #00FFh,B ;取被寫入數(shù)據(jù)的DQ7~DQ0
LD par,A ;讀被燒寫地址的數(shù)據(jù)
AND #00FFh,A ;取DQ7~DQ0
STL A ,TEMP ;保存
LD A,-7,A ;讀DQ7狀態(tài)
XOR B,-7,A ;是否是反碼?
BC _JUDGESUCCESS?,AEQ 
; DQ7不是反碼而是寫入數(shù)據(jù)表示操作成功
BITF TEMP,#20h 
BC _JUDGEBEGIN?,ntc
;DQ5=1表示操作超時
LD par,A ;再讀被燒寫地址的數(shù)據(jù)
AND #00FFh,A
LD A,-7,A
XOR B,-7,A
BC _JUDGESUCCESS?,AEQ
; DQ7不是寫入數(shù)據(jù),表示操作失敗
_JUDGEERRO?
_RESETFlash ;復(fù)位Flash
_JUDGESUCCESS?
POPM AR1
.endm

2 C5410 的自舉引導

  脫離仿真器獨立運行程序一般有兩種方式:一種是上電后用戶程序直接在Flash存儲器中運行,這種運行速度比較慢;另一種是上電或復(fù)位后將用戶程序從Flash存儲器引導到高速數(shù)據(jù)存儲器中運行,此方法最常用,可以較低的成本實現(xiàn)高速的運行。為了實現(xiàn)這個過程就必須運用DSP自舉引導功能。

  (1)自舉引導

  C5410上電復(fù)位后,首先檢查MP/MC狀態(tài):如果為高電平,說明DSP處于微處理器工作方式,即從外部程序存儲器0FF80H地址開始執(zhí)行用戶程序;若為低電平,說明DSP被設(shè)置為微計算機工作方式,從片內(nèi)ROM的0FF80H地址開始執(zhí)行程序。0FF80H地址存放的是中斷向量表,它實為一條分支轉(zhuǎn)移指令(BD 0F800H),使程序跳轉(zhuǎn)至0F800H執(zhí)行自舉引導程序(Bootloader)。Bootloader是固化在DSP芯片內(nèi)ROM中的一段程序代碼,其功能是將用戶程序從外部加載至片內(nèi)RAM或擴展的RAM中,使其高速運行。在搬運程序之前,Bootloader首先完成初始化工作:使中斷無效,內(nèi)部RAM映射到程序/數(shù)據(jù)區(qū)(OVLY=1),對程序和數(shù)據(jù)區(qū)均設(shè)置7個等待狀態(tài)等。C5410有以下幾種自舉引導方式:主機接口HPI、并行口(8/16位)、標準串行口(MCBSP0是16位引導模式,MCBSP2是8位引導模式)以及I/O口(8/16位)自舉引導方式。

  (2)并行自舉引導

  這種方式是比較常用的一種,外部存儲器的字寬為8位或16位。在自舉引導時,通過外部并行接口總線將這些代碼從數(shù)據(jù)存儲空間傳送到程序存儲空間,而且可以重新設(shè)置SWWSR及BSCR寄存器的內(nèi)容。并行自舉引導方式首先從地址為0FFFFH的I/O口讀取自舉表首地址的內(nèi)容,如果此內(nèi)容不符合8位或16位的引導方式,就從地址為0FFFFH的數(shù)據(jù)存儲器讀取,進行8位或16位并行自舉引導。所以,在燒寫Flash數(shù)據(jù)的同時,也要在0FFFFH燒入自舉表的首地址。引導流程如圖2所示。

(3)建立自舉表

  自舉表內(nèi)容不僅包括欲加載的各段代碼,而且包括各段代碼長度、各代碼段存放的目標地址、程序入口地址等信息。若要完成自舉引導功能,必須建立正確的自舉表。自舉表可以由hex500格式轉(zhuǎn)換器自動生成;也可以手動建立自舉表,就是把被燒寫的程序直接放在燒寫程序中,根據(jù)被燒寫程序的相關(guān)信息手動建立自舉表。 

3 C5410 燒寫Flash和并行自舉引導

  下面通過一個Flash燒寫實例,介紹怎樣將用戶程序燒寫進Flash,以及怎樣手動建立自舉表,并且脫離仿真器以并行自舉引導方式使用戶程序獨立運行。被燒寫和燒寫程序如下:
  .title “FLASH”
  .mmregs
SWCR .set 002BH 
TEMP .set 0060H 
  .data
  .sect ".BOOT" 
  .label BOOTTABLE ; 自舉表開始
  .word 10AAH ; 16位自舉標記
  .word 7FFFH ; 7個等待周期(SWWSR)
  .word 0F000H ; 塊轉(zhuǎn)換寄存器(BSCR)
  .word 0000h ; 程序入口XPC
  .word 0200h ; 程序入口地址(MAIN_START)
  .word LOADEND - LOADSTART 
  ; 程序塊長度(0116H)
  .word 0000h ; 存放目標XPC
  .word 0100h ; 存放目標地址
LOADSTART: ;中斷向量表開始地址
  .copy “vector.asm”;復(fù)位處跳轉(zhuǎn)MAIN_START
MAIN_START: ;被燒寫的主程序
  STM #0F7h,SP
  STM #012Ch,PMST 
  ;IPTR=01(中斷向量指針為100,指向目標地址),MP/MC=0,OVLY=1,AVIS=0,DROM=1, CLKOFF=1
LOOPF:RSBX XF ;XF置低
  CALL DELAY ;延時
  SSBX XF ;XF置高
  CALL DELAY
  B LOOPF
DELAY:PSHM AR6
  STM #0090H,AR6
DELAY_LOOP:
  RPT #0FF0h
  NOP
  BANZ DELAY_LOOP,*AR6-
  POPM AR6
  RET
LOADEND ; 被燒寫的程序結(jié)束
  .space 20h
  .mmregs 
  .label FINDTABLE 
  .word 8000h
  .text 
ERASE_WRITE_Flash: ;燒寫程序開始
  STM #0FFA0H,PMST 
  STM #07FFFH,SWWSR
  STM #0FFFFH,SWCR
  _RESETFlash ; Flash復(fù)位
  _ERASEFlash ;擦除Flash
WRIFlashSTART: ;開始編程Flash
  SSBX SXM
  RSBX OVM
  _RESETFLASH ; Flash復(fù)位
  STM #8000H,AR0 ;Flash起始地址8000H
  STM BOOTTABLE,AR5 ;被燒寫的源地址(自舉
  ;表首地址)
  STM #( LOADEND- BOOTTABLE),AR4 
          ; 寫入011E個字
WRI_RPT 
  _WRITEFlash *AR0,*AR5 ;調(diào)入編程宏
  LD *AR0+,A 
  LD *AR5+,A ;完成AR0和AR5地址自動加1
  BANZ WRI_RPT,*AR4-
  STM #0FFFFH,AR0; AR0指向數(shù)據(jù)空間的FFFF
              ;地址
  STM FINDTABLE,AR5 
  _WRITEFlash *AR0,*AR5 ; 向數(shù)據(jù)空間的FFFF
;地址寫入自舉表的首地址8000H
ENDD: NOP
  B ENDD
  .end

  被燒寫的主程序是從MAIN_START開始,一直到LOADEND。程序的主要功能是不斷改變XF引腳的狀態(tài)。LOADSTART是中斷向量文件(vector.asm)的開始,在中斷復(fù)位(RESET)處放入一條跳轉(zhuǎn)到MAIN_START指令(BD MAIN_START)。ERASE_WRITE_FLASH是燒寫程序的開始,只要程序指針( PC)指向ERASE_WRITE_FLASH,開始運行就可以完成對Flash的燒寫操作。從自舉表首地址BOOTTABLE (0F8H)到LOADEND(0216H)存放的數(shù)據(jù)就是要寫入Flash的內(nèi)容,從LOADSTART到LOADEND的數(shù)據(jù)是DSP自舉程序從Flash搬運到片內(nèi)RAM的程序,具體如下:
00F8H: BOOTTABLE ; 自舉表開始
0100H: LOADSTART ;中斷向量表首地址
0100H: RESET :BD MAIN_START
... ;中斷向量表的內(nèi)容
0178H: RESERVED
0200H: MAIN_START
... ;主程序
0216H: LOADEND
  被燒寫的程序只需一個段,根據(jù)以上信息就可以完成自舉表的內(nèi)容,如表3所列。


整個并行自舉引導過程為:C5410上電復(fù)位后,判斷MP/MC=0 處于微計算機工作方式,從片內(nèi)ROM的0FF80H處執(zhí)行中斷向量表的分支轉(zhuǎn)移指令(BD 0F800H),使程序跳轉(zhuǎn)至0F800H處執(zhí)行自舉引導程序。自舉引導程序完成初始化后,讀取數(shù)據(jù)空間的0FFFFH地址的內(nèi)容,找到自舉表首地址8000H,從8000H處開始讀取內(nèi)容。首先,是16位自舉標記(10AA)。然后分別是寄存器SWWSR及BSCR的內(nèi)容,程序入口地址、代碼段長度、存放代碼段的目標地址等信息。最后,根據(jù)這些信息把Flash的8008H到811EH的程序搬運到片內(nèi)RAM的100H開始的地址中,跳轉(zhuǎn)至片內(nèi)RAM 100H、即PC為100H、XPC為0,開始執(zhí)行用戶程序,完成用戶程序的并行自舉過程。

結(jié)語

  把程序燒寫入Flash后,復(fù)位C5410,使其處于微計算機工作方式;使用示波器測試XF引腳,觀察程序運行正確與否。通過上述方法可完成C5410對Am29LV200B Flash 的燒寫,很好地實現(xiàn)了C5410上電后的用戶程序自舉引導功能

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产色综合久久久蜜香臀| 久久精品人人做人人爽人人| 91精品国产综合久久小美女| 国产亲近乱来精品视频| 亚洲国产精品一区二区尤物区| 国产一区二区h| 欧美日韩电影一区| 18涩涩午夜精品.www| 另类欧美日韩国产在线| 欧美性猛交xxxx黑人交| 中文字幕亚洲区| 国产精品中文字幕欧美| 日韩欧美自拍偷拍| 日日夜夜精品视频天天综合网| 91麻豆免费看片| 中文字幕久久午夜不卡| 国产一区二区视频在线| 欧美一区二区三区日韩视频| 亚洲福利一二三区| 欧洲另类一二三四区| 日韩毛片在线免费观看| 波多野结衣欧美| 国产精品女上位| 国产91精品久久久久久久网曝门 | 激情深爱一区二区| 欧美疯狂做受xxxx富婆| 午夜视频一区二区| 欧美日韩一区二区不卡| 亚洲高清免费视频| 欧美亚洲禁片免费| 五月天亚洲精品| 91精品在线一区二区| 日韩中文字幕区一区有砖一区| 欧美日韩激情一区二区三区| 午夜成人在线视频| 91精品国产黑色紧身裤美女| 日韩精品一二区| 日韩欧美色电影| 国产一区二区三区久久久| 久久免费电影网| 成人白浆超碰人人人人| 亚洲免费观看视频| 欧美少妇一区二区| 日本在线观看不卡视频| 日韩视频在线你懂得| 国产在线视视频有精品| 中文字幕精品在线不卡| 色综合久久88色综合天天6| 亚洲一区在线电影| 日韩视频一区二区三区在线播放| 国内久久精品视频| 国产精品不卡一区二区三区| 欧美在线影院一区二区| 日本不卡视频在线观看| 久久嫩草精品久久久精品一| 福利一区福利二区| 尤物在线观看一区| 在线观看网站黄不卡| 日本aⅴ精品一区二区三区| 久久九九久久九九| 91国偷自产一区二区开放时间| 香港成人在线视频| 欧美国产乱子伦| 91在线视频观看| 国产精品毛片大码女人| 韩国女主播成人在线| 成人性生交大片免费看视频在线 | 欧美一级午夜免费电影| 91国产福利在线| 91免费版在线| 91在线你懂得| 色哟哟亚洲精品| 91久久线看在观草草青青| 91亚洲精华国产精华精华液| 国产成人在线看| 国产成人精品亚洲777人妖| 国产精品亚洲第一| 国产资源在线一区| 国产精品自拍毛片| 成人黄色大片在线观看| 成人小视频在线| av网站免费线看精品| 99视频在线精品| 色先锋aa成人| 欧美日韩国产色站一区二区三区| 欧美日韩一区二区三区四区| 欧美日韩精品一区二区| 欧美精品123区| 欧美大度的电影原声| 精品第一国产综合精品aⅴ| 久久久久久久电影| 国产精品色噜噜| 一区二区三区在线观看动漫| 亚洲成人久久影院| 麻豆免费精品视频| 国产乱人伦偷精品视频免下载 | 在线成人av影院| 欧美一区二区三区喷汁尤物| 精品国产亚洲一区二区三区在线观看| 精品国产污污免费网站入口 | 九色综合国产一区二区三区| 国产福利不卡视频| 色999日韩国产欧美一区二区| 欧美色倩网站大全免费| 欧美成人高清电影在线| 亚洲国产高清aⅴ视频| 亚洲综合色视频| 激情图片小说一区| 91免费观看在线| 日韩欧美国产一区二区在线播放| 国产清纯在线一区二区www| 亚洲精品老司机| 精品一区二区三区在线播放| 成人app网站| 欧美一区二区网站| 亚洲视频在线一区| 青青草国产精品亚洲专区无| 成人av电影免费观看| 67194成人在线观看| 国产精品久久免费看| 日韩va欧美va亚洲va久久| 成人一二三区视频| 91精品免费观看| 亚洲人妖av一区二区| 国产专区欧美精品| 精品视频资源站| 国产精品美女久久久久av爽李琼| 日韩二区三区在线观看| 99免费精品在线观看| 精品少妇一区二区三区免费观看| 亚洲免费av高清| 国产精品一卡二卡| 欧美一区二区啪啪| 亚洲激情校园春色| 国产福利一区在线| 日韩美女主播在线视频一区二区三区| 亚洲天堂网中文字| 国产一区二区不卡在线| 欧美精品亚洲二区| 一区二区久久久久| 91久久香蕉国产日韩欧美9色| 精品免费国产一区二区三区四区| 亚洲专区一二三| 91美女在线看| 国产精品电影一区二区| 久久疯狂做爰流白浆xx| 欧美乱熟臀69xxxxxx| 亚洲男同1069视频| 99在线精品一区二区三区| 亚洲精品一区二区三区精华液| 午夜精品久久久久久久99水蜜桃| 91麻豆国产自产在线观看| 欧美高清在线一区二区| 久久99国产精品成人| 91精品国产免费| 日韩和欧美一区二区三区| 欧美私模裸体表演在线观看| 中文字幕一区二| 97久久精品人人做人人爽50路 | 555www色欧美视频| 午夜视频在线观看一区二区| 欧美性猛交xxxxxx富婆| 亚洲精品一二三区| 91久久精品一区二区二区| 亚洲日本一区二区| 色呦呦网站一区| 亚洲午夜视频在线| 欧美日韩一区三区四区| 亚洲成人免费观看| 欧美日韩国产三级| 日本伊人色综合网| 欧美一区二区观看视频| 美腿丝袜亚洲三区| 久久综合五月天婷婷伊人| 国产一区二区视频在线| 久久精品一区二区三区av| 成人免费高清在线| 综合色天天鬼久久鬼色| 99久久精品费精品国产一区二区| 中文字幕一区二区三区在线观看| 成人avav影音| 亚洲一区二区高清| 欧美精品乱码久久久久久| 麻豆一区二区在线| 久久九九99视频| 一本久道中文字幕精品亚洲嫩| 亚洲自拍偷拍av| 日韩欧美国产三级| 国产a视频精品免费观看| 亚洲日本欧美天堂| 欧美精品久久99| 国产乱码精品一品二品| 国产精品国产三级国产三级人妇 | 日韩精品视频网站| 久久久亚洲欧洲日产国码αv| 丰满亚洲少妇av| 亚洲色图.com| 日韩你懂的在线播放| 成人小视频在线| 午夜精品一区二区三区电影天堂|