《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > DSP外掛FLASH的在系統(tǒng)編程及并行引導(dǎo)裝載方法的研究

DSP外掛FLASH的在系統(tǒng)編程及并行引導(dǎo)裝載方法的研究

2008-08-28
作者:丁 潔 魏 豐 李廣宇

  摘? 要: 詳細(xì)介紹了TMS320VC5402外掛程序存儲器" title="程序存儲器">程序存儲器的在系統(tǒng)編程" title="在系統(tǒng)編程">在系統(tǒng)編程技術(shù)和方法,結(jié)合實(shí)例給出了創(chuàng)建系統(tǒng)引導(dǎo)表的具體步驟,并在此基礎(chǔ)上重點(diǎn)敘述了TMS320VC5402的并行16位引導(dǎo)裝載" title="引導(dǎo)裝載">引導(dǎo)裝載方法。設(shè)計(jì)的系統(tǒng)具有較大的靈活性和良好的可擴(kuò)展性。

  關(guān)鍵詞: DSP? TMS320VC5402 FLASH? SST39VF400A? 在系統(tǒng)編程? 引導(dǎo)裝載

?

  TMS320VC5402(以下簡稱C5402)是TI公司的一款性價(jià)比極好的16位定點(diǎn)DSP芯片。由于C5402內(nèi)部只有16K×16位RAM和4K×16位掩膜ROM,用戶程序必須存放在外掛的程序存儲器中。對程序存儲器的編程(即離線編程)通常是通過通用編程器" title="編程器">編程器完成的,即用戶將要寫入的程序轉(zhuǎn)換成編程器能夠接收的格式,再通過編程器寫入存儲器中。隨著芯片制造工藝的不斷提高,芯片集成度越來越高,存儲器正在向小型化、貼片式發(fā)展,從而使表面封裝或PLCC封裝的存儲器難以利用編程器編程。目前普遍采用的在系統(tǒng)編程ISP(In System Programming)技術(shù)不需要編程器,通過系統(tǒng)的DSP可直接對用戶板上的存儲器編程,這樣不僅節(jié)省了通用編程器及適配器的費(fèi)用,還減少了頻繁插拔存儲器的麻煩,從而大量節(jié)省了系統(tǒng)開發(fā)時(shí)間,滿足了用戶程序在線更新的要求。外掛的程序存儲器通常選用容量大、存儲速度快、功耗低、性價(jià)比高的FLASH存儲器。

  由于DSP仿真軟件編譯鏈接后生成的是二進(jìn)制的COFF格式文件,不能直接寫入FLASH中,還需通過Hex轉(zhuǎn)換工具將COFF目標(biāo)文件轉(zhuǎn)換為標(biāo)準(zhǔn)的ASCII碼十六進(jìn)制格式(即Hex格式)。對于離線編程,只需將這種Hex文件直接作為編程器的輸入,即可寫入FLASH;而在系統(tǒng)編程,則是利用系統(tǒng)本身的DSP,通過軟件編程來實(shí)現(xiàn)整個(gè)燒寫" title="燒寫">燒寫過程。因此,如何對FLASH進(jìn)行燒寫是整個(gè)在系統(tǒng)編程的一個(gè)關(guān)鍵。本文以一片C5402外掛一片F(xiàn)LASH存儲器構(gòu)成的最小系統(tǒng)為實(shí)例,介紹采用C語言編寫FLASH燒寫程序,并通過DSP將用戶程序代碼寫入FLASH,從而實(shí)現(xiàn)在系統(tǒng)編程。

1 DSP與FLASH構(gòu)成的最小系統(tǒng)

  本系統(tǒng)的FLASH存儲器選用SST公司的SST39VF400A,用作DSP的數(shù)據(jù)空間。FLASH的片選信號/CE由DSP的數(shù)據(jù)空間選擇信號/DS和存儲器選通信號/MSTRB產(chǎn)生,讀使能信號/OE和寫使能信號/WE由DSP的讀寫脈沖信號R/W和/DS、/MSTRB組合產(chǎn)生。FLASH的地址線A0~A15和DSP的A0~A15直接相連,A16和A17接地。由于DSP數(shù)據(jù)空間0000H~3FFFH為存儲器映象寄存器、暫存器和片內(nèi)RAM,對外部FLASH來講是不可見的,所以FLASH可操作的地址范圍為4000H~0FFFFH。設(shè)用戶程序從FLASH中8000H單元開始存放,則系統(tǒng)上電時(shí)引導(dǎo)程序就從數(shù)據(jù)空間的8000H單元開始搬運(yùn)數(shù)據(jù)到DSP內(nèi)部RAM指定區(qū)域,引導(dǎo)完畢后即跳轉(zhuǎn)到RAM中程序入口地址運(yùn)行用戶程序。

2 SST39VF400A的在系統(tǒng)編程

2.1 芯片簡介及常用命令

  SST39VF400A是SST公司的256K×16位FLASH存儲器,工作電壓3.3V、擦寫壽命100 000次,訪問時(shí)間70~90ns。用戶只需向其特定地址寫入特定的指令序列,那么通過這些命令用戶即可啟動(dòng)內(nèi)部寫狀態(tài)機(jī),從而使其自動(dòng)完成指令序列要求的內(nèi)部操作,其中包括:復(fù)位、整片擦除、塊擦除、扇區(qū)擦除、操作字寫入等。

2.2 SST39VF400A編程操作

  對采用在系統(tǒng)編程的FLASH存儲器,整個(gè)編程過程由用戶控制,因此用戶必須了解FLASH存儲器的各狀態(tài)位,以便知道編程或擦除是否結(jié)束。SST39VF400A內(nèi)部提供兩種軟件檢查方法:檢查狀態(tài)位Data# Polling(DQ7)和Toggle Bit(DQ6)。現(xiàn)以檢查Toggle Bit(DQ6)位為例來具體說明SST39VF400A的編程及檢查機(jī)制。SST39VF400A在進(jìn)行內(nèi)部編程或擦除時(shí),對任何地址進(jìn)行連續(xù)讀取都會引起DQ6的跳變,當(dāng)操作停止就會結(jié)束跳變。因此可以通過連續(xù)兩次讀取檢查DQ6的變化情況來判斷編程擦除操作是否完成。單字編程及檢查流程如圖1所示(其中WA為要寫入數(shù)據(jù)的存儲地址)。

?

3?C5402的并行引導(dǎo)裝載

  通過在系統(tǒng)編程操作可以實(shí)現(xiàn)將用戶程序代碼寫入FLASH。如何確定FLASH中用戶程序代碼的存放格式并正確地引導(dǎo)裝載以實(shí)現(xiàn)脫機(jī)運(yùn)行,則是整個(gè)在系統(tǒng)編程的重點(diǎn)之處。在C5402的五種引導(dǎo)方式中,并行引導(dǎo)是DSP系統(tǒng)最常用最簡單的引導(dǎo)方式。下面介紹C5402的并行16位引導(dǎo)裝載方法。

3.1 引導(dǎo)過程簡介

  為了正確引導(dǎo)用戶程序,必須編制引導(dǎo)表,引導(dǎo)表要告訴引導(dǎo)程序采用何種引導(dǎo)方式、程序入口地址、各段的目標(biāo)首地址和長度等。引導(dǎo)表的數(shù)據(jù)格式是由鏈接配置文件和HEX轉(zhuǎn)換配置文件決定的,鏈接配置文件定義各段存放的首地址和長度,而HEX轉(zhuǎn)換配置文件則定義引導(dǎo)方式、程序入口地址和引導(dǎo)表在外部存儲器中存放的首地址。引導(dǎo)程序可以從地址為0FFFFH單元的I/O端口或數(shù)據(jù)存儲器取得引導(dǎo)表的起始地址。本文介紹的是并行引導(dǎo)方式,引導(dǎo)過程如下:引導(dǎo)程序先從外部數(shù)據(jù)空間的0FFFFH單元(即FLASH的0FFFFH單元)讀取引導(dǎo)表起始地址,然后從該起始地址讀取引導(dǎo)標(biāo)識。若為08AAH則為并行8位引導(dǎo)方式;若不是再從起始地址的下一單元讀取內(nèi)容,看由此兩單元內(nèi)容組成的16位字是否為10AAH,若是則為并行16位引導(dǎo)方式。最后從引導(dǎo)表指定的地址搬運(yùn)各段代碼到片內(nèi)RAM對應(yīng)的地址,搬運(yùn)完畢后即從程序入口地址執(zhí)行用戶程序。由此可見,引導(dǎo)表的編制是引導(dǎo)過程的關(guān)鍵。下面結(jié)合實(shí)例具體介紹引導(dǎo)表的形成和裝載過程(設(shè)用戶程序?yàn)闇y試指示燈的程序,源文件為main.asm和vectors.asm,源代碼省略)。

3.2?鏈接配置文件編寫

  (文件名為TestLedLink.cmd)

  MEMORY {

????PAGE 0:??????????

??? VEC: org=0100h,? len=0080h?? ;中斷向量的首地址和塊長度

??? CODE: org=0180h, len=0F80h? ;程序塊的首地址和塊長度

??? PAGE 1:

??? STACKS: org=1100h, len=0100h? ;堆棧區(qū)的首地址和塊長度????

??? DATA: org=1200h,? len=1000h? ;數(shù)據(jù)塊的首地址和塊長度????

??? }

  SECTIONS {

?? .vectors:> VEC PAGE 0?? ? ;將中斷向量放入程序頁的VEC區(qū)

?? .text:> CODE PAGE 0?? ??? ;將程序代碼放入程序頁的CODE區(qū)

?? .stack:> STACKS PAGE 1??? ;將堆棧放入數(shù)據(jù)頁的STACKS區(qū)

?? .bss:> DATA PAGE 1????????;將未初始化變量放入數(shù)據(jù)頁的DATA區(qū)

?? .data:> DATA PAGE 1? ???? ;將初始化數(shù)據(jù)放入數(shù)據(jù)頁的DATA區(qū)

?? }

??? 鏈接配置文件寫好后,通過DSP仿真軟件CCS編譯鏈接即可生成TestLed.out文件。在匯編時(shí)要注意,不論是DOS下的ASM500還是WINDOWS下的CCS都必須加上-v548開關(guān)量,否則不能生成正確的引導(dǎo)表。

3.3 HEX轉(zhuǎn)換配置文件編寫

  (文件名為TestLedHex.cmd)

  TestLed.out????????????????? ;轉(zhuǎn)換的文件名,即編譯鏈接后的.out文件

?????? -a?????????????????    ;ASCII-HEX格式

  -map TestLed.mxp    ???? ;生成的映射文件名,可不生成該文件

  -o? TestLed.hex?????? ??? ?? ;轉(zhuǎn)換后的HEX文件名

  -memwidth 16?????    ??? ;系統(tǒng)存儲器寬度為16位

  -romwidth 16??    ?????? ;ROM器件寬度為16位

  -boot?? ?????????????? ???? ;將COFF文件中各段轉(zhuǎn)換為引導(dǎo)表的格式(替代SECTIONS偽指令)

  -bootorg 0x8000?????     ;引導(dǎo)表放在FLASH的8000H開始的單元

  -e 0x0100    ??????????? ;裝入引導(dǎo)表后程序運(yùn)行的起始地址

  HEX轉(zhuǎn)換配置文件寫好后,使用CCS提供的轉(zhuǎn)換工具HEX500將生成的COFF目標(biāo)文件TestLed.out轉(zhuǎn)化為標(biāo)準(zhǔn)的ASCII—HEX格式的文件TestLed.hex。注意在轉(zhuǎn)換時(shí)一定要把TestLedHex.cmd文件的擴(kuò)展名cmd加上。

3.4 構(gòu)造引導(dǎo)表并寫入FLASH

  經(jīng)過HEX轉(zhuǎn)換生成的TestLed.hex文件內(nèi)容如表1所示。

?

?

  文件開始為ASCII STX字符,結(jié)束為ASCII ETX字符,$A8000表示引導(dǎo)表存放的首地址,接下來的數(shù)據(jù)就是從8000H單元存放的引導(dǎo)表的內(nèi)容,轉(zhuǎn)換后的TestLed.hex文件可直接由編程器燒寫進(jìn)FLASH,也可通過在系統(tǒng)編程的方法由上述的DSP燒寫程序?qū)戇M(jìn)FLASH。執(zhí)行燒寫程序前需要編寫一個(gè)簡單的程序?qū)?HEX文件中起始符、首地址、結(jié)束符等與引導(dǎo)表無關(guān)的信息去掉,并轉(zhuǎn)換為DSP能識別的文件格式(如?觹.Dat),采用.copy或.include命令將該文件作為數(shù)據(jù)段嵌入燒寫進(jìn)程序中,同時(shí)注意在FLASH的0FFFFH單元寫入引導(dǎo)表起始地址8000H。燒寫FLASH后數(shù)據(jù)存放格式如表2所示。

?

  引導(dǎo)表燒寫進(jìn)FLASH后,將MP/Mc引腳置低,上電復(fù)位后引導(dǎo)程序就會自動(dòng)將FLASH中的用戶程序搬進(jìn)片內(nèi)RAM,搬運(yùn)完畢后即跳轉(zhuǎn)到程序入口地址,高速運(yùn)行用戶程序。

  此方法適用于程序代碼小于16K的情況,將用戶程序全部導(dǎo)入C5402片內(nèi)RAM中即可;當(dāng)用戶程序較大而超過16K時(shí),需要外擴(kuò)程序存儲器,此時(shí)在引導(dǎo)表中需用到擴(kuò)展的程序計(jì)數(shù)器(XPC),來尋址擴(kuò)展的程序存儲空間。

?

參考文獻(xiàn)

1 TMS320VC5402 Fixed-Point Signal Processor. Texas Instruments, 2000.8(SPRS079E)

2 TMS320VC5402 and TMS320UC5402 Bootloader. Texas?Instruments Application Report, 2002.3(SPRA618A)

3 SST39VF400A Data Sheet.Silicon Storage TechnologyInc, 2001

4 汪安民. TMS320C54xx DSP 實(shí)用技術(shù).北京:清華大學(xué)出版社,2002.7

5 劉益成. TMS320C54x DSP 應(yīng)用程序設(shè)計(jì)與開發(fā).北京:北京航空航天大學(xué)出版社,2002.5

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久亚洲人| 国产伦精品一区二区三区高清 | 午夜精品一区二区三区在线播放 | 99视频国产精品免费观看| 在线视频成人| 在线观看国产精品淫| 国内免费精品永久在线视频| 国产一区二区三区直播精品电影| 国产欧美一区二区精品婷婷| 国产精品日韩欧美一区| 国产精品高潮久久| 国产精品久久久久久模特| 欧美色大人视频| 欧美日韩中文字幕综合视频 | 欧美婷婷六月丁香综合色| 欧美日韩一区高清| 欧美视频亚洲视频| 国产精品高潮粉嫩av| 国产精品久久久久久久第一福利| 国产精品狠色婷| 国产精品一区亚洲| 国产亚洲成av人在线观看导航| 国产欧美日韩一区二区三区在线观看 | 久久综合电影| 欧美成人精品1314www| 欧美激情 亚洲a∨综合| 欧美日韩四区| 国产精品区免费视频| 国产日韩视频| 1024亚洲| 99国产精品久久久久久久| 亚洲婷婷国产精品电影人久久| 亚洲在线观看视频网站| 久久精品国产精品亚洲综合| 91久久精品日日躁夜夜躁国产| 亚洲精品乱码久久久久久按摩观| 亚洲色图综合久久| 性久久久久久久| 乱中年女人伦av一区二区| 欧美国产丝袜视频| 国产精品成人播放| 国产亚洲人成网站在线观看| 亚洲国产精品久久| 亚洲视频专区在线| 久久本道综合色狠狠五月| 亚洲伦理网站| 欧美一区二区三区免费视频| 六月婷婷久久| 国产精品不卡在线| 樱桃国产成人精品视频| 999亚洲国产精| 欧美亚洲专区| 日韩亚洲一区在线播放| 香蕉成人啪国产精品视频综合网| 久久这里只有| 欧美亚州一区二区三区| 国产综合色在线视频区| 日韩视频在线一区二区三区| 欧美一区深夜视频| 一区二区三区视频在线观看| 久久久国产午夜精品| 欧美日韩视频一区二区三区| 国产一区二区三区观看| 日韩一区二区精品在线观看| 久久国产综合精品| 亚洲欧美变态国产另类| 亚洲欧美日韩成人| 日韩香蕉视频| 久久精品国产精品亚洲综合| 中日韩午夜理伦电影免费| 久久久久久久久久码影片| 欧美日韩一区二区三区在线看 | 小黄鸭视频精品导航| 亚洲美女在线视频| 久久精品国产亚洲aⅴ| 欧美日一区二区在线观看| 激情五月综合色婷婷一区二区| 一区二区三区精品国产| 亚洲黄色成人久久久| 欧美在线欧美在线| 欧美色综合网| 亚洲黄色在线观看| 欧美专区日韩视频| 亚洲欧美日韩精品久久久| 欧美精品免费视频| 一区精品在线| 亚洲欧美在线视频观看| 国产精品99久久久久久久久久久久| 久久免费精品视频| 国产精品视频xxx| 日韩午夜在线| 亚洲精一区二区三区| 久久亚洲捆绑美女| 国产亚洲激情在线| 亚洲一区二区免费看| 一区二区三区视频在线| 欧美激情按摩在线| 亚洲电影免费观看高清完整版在线观看| 亚洲欧美日韩综合aⅴ视频| 亚洲一区二区少妇| 欧美日韩国产麻豆| 亚洲欧洲在线播放| 91久久午夜| 免费成人黄色| 影音先锋亚洲电影| 亚洲高清电影| 麻豆精品传媒视频| 激情综合色综合久久| 久久精品免费| 久久久伊人欧美| 国产在线精品二区| 欧美在线观看一区| 久久精品国产精品亚洲| 国产无一区二区| 欧美一区二区视频免费观看| 久久国产精品久久久久久| 国产精品国产三级国产普通话三级 | 在线观看欧美激情| 亚洲日本成人| 欧美精品大片| 亚洲精选中文字幕| 正在播放日韩| 欧美性色综合| 亚洲在线观看免费| 欧美专区在线播放| 国产在线视频不卡二| 亚洲国产成人久久综合| 老司机精品福利视频| 在线观看视频一区二区欧美日韩| 亚洲国产导航| 欧美乱妇高清无乱码| 亚洲乱码国产乱码精品精天堂| 亚洲无限乱码一二三四麻| 国产精品久久久久久久app | 亚洲综合色在线| 国产农村妇女精品| 欧美在线亚洲在线| 免费久久99精品国产自| 亚洲福利视频专区| 一区二区三区国产精品| 国产精品毛片一区二区三区 | 国产精品免费看| 欧美亚洲视频一区二区| 久久一区二区三区国产精品| 一区在线电影| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲日本理论电影| 欧美日韩在线免费| 亚洲综合日韩在线| 久久婷婷综合激情| 亚洲欧洲在线播放| 亚洲欧美在线免费观看| 国语对白精品一区二区| 日韩午夜av在线| 国产精品视频网址| 亚洲电影免费观看高清完整版在线观看 | 亚洲风情在线资源站| 欧美精品日本| 亚洲一区二区三区视频播放| 久久久久99| 亚洲精选在线观看| 久久精品国产亚洲高清剧情介绍| 亚洲电影网站| 午夜国产不卡在线观看视频| 精品va天堂亚洲国产| 中文一区字幕| 国产综合视频在线观看| 99精品国产福利在线观看免费| 国产精品揄拍一区二区| 亚洲韩国青草视频| 国产精品国产三级国产普通话蜜臀| 欧美一站二站| 欧美天天影院| 亚洲国产成人精品女人久久久 | 99精品国产在热久久婷婷| 久久国产精品色婷婷| 亚洲精品视频免费观看| 欧美在线精品免播放器视频| 最近看过的日韩成人| 欧美一级视频免费在线观看| 91久久国产精品91久久性色| 欧美一级专区免费大片| 亚洲欧洲一区二区三区久久| 久久国产免费| 一本久道久久久| 欧美88av| 欧美一区二区黄| 欧美色网在线| 亚洲精品一区在线观看香蕉| 国产无遮挡一区二区三区毛片日本| 99精品国产热久久91蜜凸| 国内成人自拍视频| 亚洲欧美日韩国产| 亚洲国内自拍| 久久嫩草精品久久久精品一| 中国日韩欧美久久久久久久久| 欧美国产高清| 亚洲第一久久影院| 国产一区91| 亚洲欧美日韩在线不卡|