<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>DSP外掛Flash在系統(tǒng)編程及并行引導(dǎo)裝載方法

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

      時(shí)間:2023-02-21 00:14:25 電子通信論文 我要投稿
      • 相關(guān)推薦

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

        摘要:詳細(xì)介紹了TMS320VC5402外掛程序存儲(chǔ)器的在系統(tǒng)編程技術(shù)和方法,結(jié)合實(shí)例給出了創(chuàng)建系統(tǒng)引導(dǎo)表的具體步驟,并在此基礎(chǔ)上重點(diǎn)敘述了TMS320VC5402的并行16位引導(dǎo)裝載方法。設(shè)計(jì)的系統(tǒng)具有較大的靈活性和良好的可擴(kuò)展性。
        關(guān)鍵詞:DSPTMS320VC5402FLASHSST39VF400A在系統(tǒng)編程引導(dǎo)裝載
        
        TMS320VC5402(以下簡(jiǎn)稱C5402)是TI公司的一款性價(jià)比極好的16位定點(diǎn)DSP芯片。由于C5402內(nèi)部只有16K×16位RAM和4K×16位掩膜ROM,用戶程序必須存放在外掛的程序存儲(chǔ)器中。對(duì)程序存儲(chǔ)器的編程(即離線編程)通常是通過通用編程器完成的,即用戶將要寫入的程序轉(zhuǎn)換成編程器能夠接收的格式,再通過編程器寫入存儲(chǔ)器中。隨著芯片制造工藝的不斷提高,芯片集成度越來越高,存儲(chǔ)器正在向小型化、貼片式發(fā)展,從而使表面封裝或PLCC封裝的存儲(chǔ)器難以利用編程器編程。目前普遍采用的在系統(tǒng)編程ISP(InSystemProgramming)技術(shù)不需要編程器,通過系統(tǒng)的DSP可直接對(duì)用戶板上的存儲(chǔ)器編程,這樣不僅節(jié)省了通用編程器及適配器的費(fèi)用,還減少了頻繁插拔存儲(chǔ)器的麻煩,從而大量節(jié)省了系統(tǒng)開發(fā)時(shí)間,滿足了用戶程序在線更新的要求。外掛的程序存儲(chǔ)器通常選用容量大、存儲(chǔ)速度快、功耗低、性價(jià)比高的FLASH存儲(chǔ)器。
        
        由于DSP仿真軟件編譯鏈接后生成的是二進(jìn)制的COFF格式文件,不能直接寫入FLASH中,還需通過Hex轉(zhuǎn)換工具將COFF目標(biāo)文件轉(zhuǎn)換為標(biāo)準(zhǔn)的ASCII碼十六進(jìn)制格式(即Hex格式)。對(duì)于離線編程,只需將這種Hex文件直接作為編程器的輸入,即可寫入FLASH;而在系統(tǒng)編程,則是利用系統(tǒng)本身的DSP,通過軟件編程來實(shí)現(xiàn)整個(gè)燒寫過程。因此,如何對(duì)FLASH進(jìn)行燒寫是整個(gè)在系統(tǒng)編程的一個(gè)關(guān)鍵。本文以一片C5402外掛一片FLASH存儲(chǔ)器構(gòu)成的最小系統(tǒng)為實(shí)例,介紹采用C語(yǔ)言編寫FLASH燒寫程序,并通過DSP將用戶程序代碼寫入FLASH,從而實(shí)現(xiàn)在系統(tǒng)編程。
        
        1DSP與FLASH構(gòu)成的最小系統(tǒng)
        
        本系統(tǒng)的FLASH存儲(chǔ)器選用SST公司的SST39VF400A,用作DSP的數(shù)據(jù)空間。FLASH的片選信號(hào)/CE由DSP的數(shù)據(jù)空間選擇信號(hào)/DS和存儲(chǔ)器選通信號(hào)/MSTRB產(chǎn)生,讀使能信號(hào)/OE和寫使能信號(hào)/WE由DSP的讀寫脈沖信號(hào)R/W和/DS、/MSTRB組合產(chǎn)生。FLASH的地址線A0~A15和DSP的A0~A15直接相連,A16和A17接地。由于DSP數(shù)據(jù)空間0000H~3FFFH為存儲(chǔ)器映象寄存器、暫存器和片內(nèi)RAM,對(duì)外部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)行用戶程序。
        
        2SST39VF400A的在系統(tǒng)編程
        
        2.1芯片簡(jiǎn)介及常用命令
        
        SST39VF400A是SST公司的256K×16位FLASH存儲(chǔ)器,工作電壓3.3V、擦寫壽命100000次,訪問時(shí)間70~90ns。用戶只需向其特定地址寫入特定的指令序列,那么通過這些命令用戶即可啟動(dòng)內(nèi)部寫狀態(tài)機(jī),從而使其自動(dòng)完成指令序列要求的內(nèi)部操作,其中包括:復(fù)位、整片擦除、塊擦除、扇區(qū)擦除、操作字寫入等。
        
        2.2SST39VF400A編程操作
        
        對(duì)采用在系統(tǒng)編程的FLASH存儲(chǔ)器,整個(gè)編程過程由用戶控制,因此用戶必須了解FLASH存儲(chǔ)器的各狀態(tài)位,以便知道編程或擦除是否結(jié)束。SST39VF400A內(nèi)部提供兩種軟件檢查方法:檢查狀態(tài)位Data#Polling(DQ7)和ToggleBit(DQ6)。現(xiàn)以檢查ToggleBit(DQ6)位為例來具體說明SST39VF400A的編程及檢查機(jī)制。SST39VF400A在進(jìn)行內(nèi)部編程或擦除時(shí),對(duì)任何地址進(jìn)行連續(xù)讀取都會(huì)引起DQ6的跳變,當(dāng)操作停止就會(huì)結(jié)束跳變。因此可以通過連續(xù)兩次讀取檢查DQ6的變化情況來判斷編程擦除操作是否完成。單字編程及檢查流程如圖1所示(其中WA為要寫入數(shù)據(jù)的存儲(chǔ)地址)。
        
        3C5402的并行引導(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)最常用最簡(jiǎn)單的引導(dǎo)方式。下面介紹C5402的并行16位引導(dǎo)裝載方法。
        
        3.1引導(dǎo)過程簡(jiǎn)介
        
        為了正確引導(dǎo)用戶程序,必須編制引導(dǎo)表,引導(dǎo)表要告訴引導(dǎo)程序采用何種引導(dǎo)方式、程序入口地址、各段的目標(biāo)首地址和長(zhǎng)度等。引導(dǎo)表的數(shù)據(jù)格式是由鏈接配置文件和HEX轉(zhuǎn)換配置文件決定的,鏈接配置文件定義各段存放的首地址和長(zhǎng)度,而HEX轉(zhuǎn)換配置文件則定義引導(dǎo)方式、程序入口地址和引導(dǎo)表在外部存儲(chǔ)器中存放的首地址。引導(dǎo)程序可以從地址為0FFFFH單元的I/O端口或數(shù)據(jù)存儲(chǔ)器取得引導(dǎo)表的起始地址。本文介紹的是并行引導(dǎo)方式
        
        
        
        ,引導(dǎo)過程如下:引導(dǎo)程序先從外部數(shù)據(jù)空間的0FFFFH單元(即FLASH的0FFFFH單元)讀取引導(dǎo)表起始地址,然后從該起始地址讀取引導(dǎo)標(biāo)識(shí)。若為08AAH則為并行8位引導(dǎo)方式;若不是再?gòu)钠鹗嫉刂返南乱粏卧x取內(nèi)容,看由此兩單元內(nèi)容組成的16位字是否為10AAH,若是則為并行16位引導(dǎo)方式。最后從引導(dǎo)表指定的地址搬運(yùn)各段代碼到片內(nèi)RAM對(duì)應(yīng)的地址,搬運(yùn)完畢后即從程序入口地址執(zhí)行用戶程序。由此可見,引導(dǎo)表的編制是引導(dǎo)過程的關(guān)鍵。下面結(jié)合實(shí)例具體介紹引導(dǎo)表的形成和裝載過程(設(shè)用戶程序?yàn)闇y(cè)試指示燈的程序,源文件為main.asm和vectors.asm?源代碼省略)。
        
        3.2鏈接配置文件編寫
        
        (文件名為TestLedLink.cmd)
        
        MEMORY{
        
        PAGE0:
        
        VEC:org=0100h,len=0080h?;中斷向量的首地址和塊長(zhǎng)度
        
        CODE:org=0180h,len=0F80h?;程序塊的首地址和塊長(zhǎng)度
        
        PAGE1:
        
        STACKS:org=1100h,len=0100h?;堆棧區(qū)的首地址和塊長(zhǎng)度
        
        DATA:org=1200h,len=1000h?;數(shù)據(jù)塊的首地址和塊長(zhǎng)度
        
        }
        
        SECTIONS{
        
        .vectors:>VECPAGE0?;將中斷向量放入程序頁(yè)的VEC區(qū)
        
        .text?>CODEPAGE0?;將程序代碼放入程序頁(yè)的CODE區(qū)
        
        .stack?>STACKSPAGE1?;將堆棧放入數(shù)據(jù)頁(yè)的STACKS區(qū)
        
        .bss?>DATAPAGE1?;將未初始化變量放入數(shù)據(jù)頁(yè)的DATA區(qū)
        
        .data?>DATAPAGE1?;將初始化數(shù)據(jù)放入數(shù)據(jù)頁(yè)的DATA區(qū)
        
        }
        
        鏈接配置文件寫好后,通過DSP仿真軟件CCS編譯鏈接即可生成TestLed.out文件。在匯編時(shí)要注意,不論是DOS下的ASM500還是WINDOWS下的CCS都必須加上-v548開關(guān)量,否則不能生成正確的引導(dǎo)表。
        
        3.3HEX轉(zhuǎn)換配置文件編寫
        
        (文件名為TestLedHex.cmd)
        
        TestLed.out;轉(zhuǎn)換的文件名,即編譯鏈接后的.out文件
        
        -a?;ASCII-HEX格式
        
        -mapTestLed.mxp?;生成的映射文件名,可不生成該文件
        
        -oTestLed.hex?;轉(zhuǎn)換后的HEX文件名
        
        -memwidth16?;系統(tǒng)存儲(chǔ)器寬度為16位
        
        -romwidth16?;ROM器件寬度為16位
        
        -boot?;將COFF文件中各段轉(zhuǎn)換為引導(dǎo)表的格式(替代SECTIONS偽指令)
        
        -bootorg0x8000;引導(dǎo)表放在FLASH的8000H開始的單元
        
        -e0x0100?;裝入引導(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)容。
        
        文件開始為ASCIISTX字符,結(jié)束為ASCIIETX字符,$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è)簡(jiǎn)單的程序?qū)ⅲ龋牛匚募衅鹗挤⑹椎刂贰⒔Y(jié)束符等與引導(dǎo)表無關(guān)的信息去掉,并轉(zhuǎn)換為DSP能識(shí)別的文件格式(如.Dat),采用.copy或.include命令將該文件作為數(shù)據(jù)段嵌入燒寫進(jìn)程序中?同時(shí)注意在FLASH的0FFFFH單元寫入引導(dǎo)表起始地址8000H。燒寫FLASH后數(shù)據(jù)存放格式。
        
        引導(dǎo)表燒寫進(jìn)FLASH后,將MP/Mc引腳置低,上電復(fù)位后引導(dǎo)程序就會(huì)自動(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ò)程序存儲(chǔ)器,此時(shí)在引導(dǎo)表中需用到擴(kuò)展的程序計(jì)數(shù)器(XPC),來尋址擴(kuò)展的程序存儲(chǔ)空間。
        
        
        
        

      【DSP外掛Flash在系統(tǒng)編程及并行引導(dǎo)裝載方法】相關(guān)文章:

      DSP+FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)08-06

      TMS320VC5402 DSP并行8bit EPROM引導(dǎo)裝載方法研究08-06

      DSP56362的雙引導(dǎo)裝載方法研究與實(shí)現(xiàn)08-06

      TMS320VC5402外部并行引導(dǎo)裝載方法的研究08-06

      TMS320C6x DSP的FLASH引導(dǎo)方法研究與實(shí)現(xiàn)08-06

      TMS320C6711的FLASH引導(dǎo)裝載系統(tǒng)研究與設(shè)計(jì)08-06

      TMS320C6000 DSP自動(dòng)引導(dǎo)的方法和編程實(shí)現(xiàn)08-06

      雙核DSP片TMS320VC5421的并行引導(dǎo)方案08-06

      通過JTAG口對(duì)DSP外部Flash存儲(chǔ)器的在線編程08-06

      主站蜘蛛池模板: 亚洲中文字幕伊人久久无码| 国产乱弄免费视频观看| 99久久婷婷国产综合精品| 无码人妻aⅴ一区二区三区蜜桃| 四虎永久精品在线视频| 久久精品视频这里有精品| 亚洲熟女乱色一区二区三区| 国产av综合色高清自拍| 亚洲 小说区 图片区 都市| 思思99热精品在线| 欧美人与zoxxxx另类| 青青草原国产精品啪啪视频| 欧美不卡无线在线一二三区观| 内射中出无码护士在线| 国产精品中文字幕自拍| 99欧美日本一区二区留学生| 18禁无遮拦无码国产在线播放| 国产午夜福利在线视频| 国产成人亚洲精品狼色在线| 国产成人一区二区三区免费| 国产精品永久免费成人av| 亚洲码国产精品高潮在线| 亚洲欧洲日产国产av无码| аⅴ天堂国产最新版在线中文| 2022最新国产在线不卡a| 国产女人在线视频| 欧美一区二区三区欧美日韩亚洲| 国产超高清麻豆精品传媒麻豆精品| 蜜桃视频在线免费观看一区二区 | 国产乱子伦视频在线播放| 午夜精品福利亚洲国产| 亚洲最大成人在线播放| 精品亚洲精品日韩精品| 强奷漂亮人妻系列老师| 双乳奶水饱满少妇呻吟免费看| 亚洲a∨国产av综合av| 精品国产一区二区三区av性色| 巨爆乳中文字幕爆乳区| 国产av一区二区不卡| 少妇人妻偷人精品系列| 男女性杂交内射女bbwxz|