0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何采用DATA進(jìn)行Flash的在線燒寫

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-02-06 08:51 ? 次閱讀

引言

自加載后DSP能夠正常運(yùn)行,關(guān)鍵是Flash中原程序代碼的正確燒寫。CCS編譯生成的.out格式文件不能直接用于Flash燒寫,在TI公司給出的技術(shù)文檔閉中,首先將.out文件利用其HEX工具轉(zhuǎn)換為.hex格式文件,然后利用Flash燒寫工具將.hex格式映像文件寫入到片外Flash中。.out格式到.hex格式轉(zhuǎn)換操作,需要編寫特定格式的命令文件;將.hex格式文件燒寫到Flash,需要嚴(yán)格按照.hex文件中的數(shù)據(jù)存放格式,編寫相應(yīng)的Flash燒寫程序。對(duì)于初學(xué)者而言命令文件、燒寫程序的編寫則不容易理解和掌握,其中任何一個(gè)環(huán)節(jié)出現(xiàn)錯(cuò)誤都將導(dǎo)致Flash燒寫的失敗。這里提出了一種簡單且方便可行的DATA直接燒寫方法,不需要數(shù)據(jù)格式的轉(zhuǎn)換,保存有效的燒寫DATA后,只需編寫簡單且容易理解的燒寫程序即可完成Flash在線燒寫。

2 DATA直接燒寫原理

TMS320C671l提供含有DEBUG模塊的JTAG接口,可以通過JTAG接口訪問DSP內(nèi)部寄存器和掛在CPU總線上的設(shè)備,對(duì)DSP內(nèi)部所有部件進(jìn)行編程。在工程開發(fā)初始階段,一般都是通過JTAG口采用硬件仿真器進(jìn)行調(diào)試,將CCS編譯生成的.out文件,通過仿真器加載到DSP板卡系統(tǒng)中,加載成功后,會(huì)彈出一個(gè)Disassembly(反匯編)窗口,如圖1所示。

如何采用DATA進(jìn)行Flash的在線燒寫

從窗口中可以看到程序加載的位置、對(duì)應(yīng)的機(jī)器指令和匯編語言指令。DSP器件正常工作,支持二進(jìn)制機(jī)器指令代碼,仿真器加載.out文件的操作完成了.out格式到.hex格式的轉(zhuǎn)換,將DSP運(yùn)行所需要的二進(jìn)制機(jī)器指令代碼加載到DSP板卡。其加載的位置可由CCS中的cdb配置文件設(shè)定,也可以用戶編寫Linking文件指定。雖然.out文件不能直接用于片外Flash燒寫,但CCS具有存儲(chǔ)器內(nèi)的數(shù)據(jù)保存和加載功能,所以,在仿真器加載.out完成后,將存儲(chǔ)器中的二進(jìn)制機(jī)器指令數(shù)據(jù)保存起來,再通過JTAG口采用在線編程的方式,將保存下來的數(shù)據(jù)燒寫到片外Flash中。這就不必進(jìn)行.out格式到.heX格式的轉(zhuǎn)換,可方便容易地完成片外Flasn直接燒寫,這就是DATA直接燒寫原理。

3 COFF段設(shè)置及保存與二級(jí)加載設(shè)計(jì)

3.1 COFF段設(shè)置

CCS編譯成功后生成一個(gè).map文件,在文件中可以查看存儲(chǔ)器的使用情況,COFF段運(yùn)行地址,加載地址及段的長度。COFF段按屬性可分為Initialized和Unintialized,Initialized段需要在DSP上電復(fù)位時(shí)從加載地址搬移到運(yùn)行地址。要得到在線燒寫方便且有效的DATA,必須為COFF段指定特定的運(yùn)行地址,然后將運(yùn)行地址上的DATA進(jìn)行保存.DSP上電復(fù)位后的加載操作則實(shí)現(xiàn)DATA從Flash到運(yùn)行地址上的還原。

COFF段運(yùn)行地址的指定可以手動(dòng)編寫Linking文件,應(yīng)用DSP/BIOS操作系統(tǒng)時(shí)也可直接對(duì)MEM屬性進(jìn)行設(shè)置。這里選用的TMS320C6711器件,內(nèi)部RAM為64 K,在程序小于64 K、RAM不做他用時(shí),將COFF段運(yùn)行地址全部指定在內(nèi)部RAM。因?yàn)門MS320C6711上電復(fù)位自加載l K大小的程序,大多數(shù)情況下遠(yuǎn)不能滿足需求,需采用二級(jí)加載的方式,將自加載的1K字節(jié)指令代碼設(shè)計(jì)成二級(jí)加載程序,完成剩余代碼的搬移。DSP上電復(fù)位結(jié)束后是從內(nèi)部RAM的零地址開始執(zhí)行,需要將內(nèi)部RAM零地址開始的1 K大小的存儲(chǔ)區(qū)域分配給二級(jí)加載程序代碼段,剩余的內(nèi)部RAM作為存儲(chǔ)其他COFF段使用。內(nèi)部RAM劃分情況如表l所示。

如何采用DATA進(jìn)行Flash的在線燒寫

應(yīng)用DSP/BIOS操作時(shí),圖2給出在.cdb文件中對(duì)COFF段運(yùn)行地址的設(shè)置。二級(jí)加載程序.boot段不能通過.cdb文件設(shè)置,需要在工程的Linking文件中以下面的格式設(shè)定其運(yùn)行地址:

在沒有應(yīng)用DSP/BIOS,而是手動(dòng)編寫Linking文件時(shí),需要以同樣的格式在SECTI*大括弧內(nèi)設(shè)定所需要加載的COFF段。

3.2 DATA保存與二級(jí)加載設(shè)計(jì)

由于TMS320C67ll自加載的l K程序不能滿足需求,需要進(jìn)行二級(jí)加載程序設(shè)計(jì)。DATA方法二級(jí)加載的實(shí)質(zhì)就是將運(yùn)行地址下的有效數(shù)據(jù)通過二級(jí)加載從外部Flash還原到運(yùn)行地址下,使程序能夠按照仿真器模式那樣的狀態(tài)正常運(yùn)行。二級(jí)加載所需要的正確EMIF配置,二級(jí)加載方式以及加載結(jié)束后跳轉(zhuǎn)到C語言入口函數(shù)_c_int00()等設(shè)計(jì)在很多資料中都有介紹,在此不予贅述。這里主要介紹用于二級(jí)加載所需要的DATA保存操作,以及二級(jí)加載程序中,搬移表源地址,目的地址及其長度的設(shè)計(jì)方法。

如何采用DATA進(jìn)行Flash的在線燒寫

文中3.1部分將COFF段運(yùn)行地址指定為IRAM,在編譯生成的.map文件中,可看到圖3所示的COFF段信息。從COFF段可看到其運(yùn)行起始地址,長度及屬性信息,將.out文件通過仿真器加載到DSP中后,根據(jù).map文件保存屬性為Initialized的COFF段。在保存操作中發(fā)現(xiàn)Initialized段可能不連續(xù),需要分多個(gè)數(shù)據(jù)段進(jìn)行保存。當(dāng)Uninitialized段與相鄰的Initialized段大小比較可忽略時(shí),可將Initialized段間的Uninitialized段一起保存起來,它不會(huì)影響二級(jí)加載后程序的運(yùn)行,這樣做既能減少需要保存數(shù)據(jù)段的個(gè)數(shù),又能簡化保存操作,二級(jí)加載程序及在線燒寫程序的設(shè)計(jì)。

如何采用DATA進(jìn)行Flash的在線燒寫

在二級(jí)加載程序搬移表中,要嚴(yán)格按照保存的DATA段信息進(jìn)行搬移表配置,其格式如下:

如何采用DATA進(jìn)行Flash的在線燒寫

其中,Length為所保存的DATA段的長度:Destination Addr為DATA段IRAM中的起始地址;Source Addr為將保存的DATA段存放于外部Flash的起始位置。在線燒寫程序中要嚴(yán)格按照此搬移表中的Source Addr值將保存的DATA段燒寫到Flash的相應(yīng)位置。有多個(gè)DATA段時(shí),要配置相應(yīng)個(gè)數(shù)的搬移參數(shù)表。

4 Flash在線燒寫設(shè)計(jì)

將用戶程序代碼寫入Flash的方法一般有2種:①用專門的Flash編程器實(shí)現(xiàn);②根據(jù)DSP與Flash的接口,通過在線編程來實(shí)現(xiàn)。前者的主要優(yōu)點(diǎn)是使用方便可靠,但要求Flash只能是雙列直插等一些可插拔的封裝形式,且表面貼裝或PLCC封裝的Flash難以利用編程器實(shí)現(xiàn);后者克服了前者的缺點(diǎn),使用靈活,因而在DSP系統(tǒng)中得到廣泛采用。

Flash在線燒寫操作就是將保存起來的DATA,燒寫到二級(jí)加載程序搬移表所指定位置的Flash中。在線燒寫的思想是,首先將保存起來的DATA加載到DSP的內(nèi)部RAM或系統(tǒng)的外部RAM中,再通過在線燒寫程序?qū)⒓虞d的DATA寫入到Flash中。DSP實(shí)驗(yàn)板Flash采用的是AM29LV160D,根據(jù)其數(shù)據(jù)手冊分別建立擦除void ChipErase(void)和寫入Byte Write(int offsent,short data)子函數(shù)。編寫在線燒寫程序如下:

如何采用DATA進(jìn)行Flash的在線燒寫

在對(duì)Flash寫操作前首先要進(jìn)行其擦除,在擦除后要指定DATA存放首地址Saddr,要燒寫到的Flash首地址FlashAddr,以及待燒寫的數(shù)據(jù)長度Length。在有多個(gè)DATA段時(shí),程序中要進(jìn)行相應(yīng)個(gè)數(shù)的DATA段燒寫指定操作。

在線燒寫程序設(shè)計(jì)完成后,編譯將.out文件下載到DSP中,可以在擦除操作完成,開始燒寫前設(shè)置斷點(diǎn),運(yùn)行完Flash擦除操作后,將保存的DATA加載到程序中指定的位置,為了確保燒寫程序的正常運(yùn)行,不能將DATA加載到燒寫程序占據(jù)的RAM空間。當(dāng)所需要燒寫的DATA全部加載完成后繼續(xù)運(yùn)行燒寫程序,即可完成Flash的在線燒寫。

基于所用到的實(shí)驗(yàn)板,在Flash燒寫完成后斷電,將DSP設(shè)置為Flash啟動(dòng)模式,再上電,測試到應(yīng)用程序中預(yù)先設(shè)計(jì)的運(yùn)行指示,表明Flash已燒寫加載成功,驗(yàn)證了DATA方法的Flash燒寫是切實(shí)可行的。

5 結(jié)語

詳細(xì)介紹了DATA方法直接燒寫原理,如何進(jìn)行合適的COFF代碼段設(shè)置,如何保存燒寫數(shù)據(jù)DATA以及二級(jí)加載程序和在線燒寫程序的相應(yīng)設(shè)計(jì)。DATA方法容易理解,操作簡單、不易出錯(cuò),能夠簡便、快捷的完成Flash的燒寫操作,為DSP開發(fā)者提供了一條有效的Flash燒寫途徑。該方法適應(yīng)于C6000系列所有DSP,其設(shè)計(jì)思想對(duì)其他系列的DSP也提供了有益的借鑒。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    551

    文章

    7824

    瀏覽量

    346828
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119201
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1598

    瀏覽量

    147336
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    適應(yīng)于C6000系列DSP器件的DATA直接原理和設(shè)計(jì)

    可行的DATA直接方法,不需要數(shù)據(jù)格式的轉(zhuǎn)換,保存有效的DATA后,只需編寫簡單且容易理
    發(fā)表于 09-25 16:35 ?1532次閱讀
    適應(yīng)于C6000系列DSP器件的<b class='flag-5'>DATA</b>直接<b class='flag-5'>燒</b><b class='flag-5'>寫</b>原理和設(shè)計(jì)

    TI的DSP在線方法

    由于 TI 的 DSP 要比單片機(jī)略微復(fù)雜,很多客戶對(duì)不是很熟悉,所以我們將方法做一
    發(fā)表于 07-21 17:07 ?1999次閱讀

    hex文件到flash問題

    本帖最后由 sundonga 于 2014-10-29 10:36 編輯 各位大俠,我仿照別人的程序改寫了一個(gè)自己的hex文件程序,DSP是DSP6713,
    發(fā)表于 10-29 10:31

    并行flash

    并行flash如何實(shí)現(xiàn)在線
    發(fā)表于 08-07 13:19

    TMS320F2812片內(nèi)Flash在線技術(shù)

    基于TMS320F2812內(nèi)部Flash在線技術(shù),提出了一種串口
    發(fā)表于 12-20 17:02 ?57次下載

    基于CCS的DSP片外Flash直接設(shè)計(jì)

    基于CCS的DSP片外Flash直接設(shè)計(jì) 自加載后DSP能夠正常運(yùn)行,關(guān)鍵是Flash中原程序代碼的正確
    發(fā)表于 10-04 09:41 ?3190次閱讀
    基于CCS的DSP片外<b class='flag-5'>Flash</b>直接<b class='flag-5'>燒</b><b class='flag-5'>寫</b>設(shè)計(jì)

    JTAG接口在線Flash的實(shí)現(xiàn)

    本文闡述了一種針對(duì)TMS320VC5509A DSP 簡單有效的Flash 方法, 并提出了程序自舉引導(dǎo)的實(shí)現(xiàn)方法??梢杂行У亟鉀Q程序代碼存儲(chǔ)問題和DSP 脫機(jī)自舉問題.
    發(fā)表于 09-16 14:43 ?1.6w次閱讀
    JTAG接口<b class='flag-5'>在線</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b><b class='flag-5'>Flash</b>的實(shí)現(xiàn)

    CCS4向內(nèi)置flash程序過程

    用CCS4向內(nèi)置flash程序過程這期間要用到100V2仿真器
    發(fā)表于 12-04 14:44 ?18次下載

    FPGA配置– 使用JTAG是如何SPI/BPI Flash的?

    Xilinx的JTAG電纜可以通過FPGA“直接”SPI/BPI。很多對(duì)xilinx開發(fā)環(huán)境不熟悉的用戶,如果第一次接觸這種模式可能會(huì)有疑惑,F(xiàn)PGA是如何做到JTAG和
    發(fā)表于 02-08 02:40 ?7634次閱讀
    FPGA配置– 使用JTAG是如何<b class='flag-5'>燒</b><b class='flag-5'>寫</b>SPI/BPI <b class='flag-5'>Flash</b>的?

    使用JTAGNand Flash實(shí)驗(yàn)解析

    的FS2410及Flash工具為例進(jìn)行講解,不同廠商的開發(fā)板都會(huì)提供相應(yīng)的Flash
    發(fā)表于 10-18 17:03 ?6次下載
    使用JTAG<b class='flag-5'>燒</b><b class='flag-5'>寫</b>Nand <b class='flag-5'>Flash</b>實(shí)驗(yàn)解析

    CCS的DSP片外Flash直接設(shè)計(jì)

    CCS的DSP片外Flash直接設(shè)計(jì)
    發(fā)表于 10-20 08:29 ?3次下載
    CCS的DSP片外<b class='flag-5'>Flash</b>直接<b class='flag-5'>燒</b><b class='flag-5'>寫</b>設(shè)計(jì)

    Jlink使用技巧之SPI Flash存儲(chǔ)芯片

    大多數(shù)玩單片機(jī)的人都知道Jlink可以Hex文件,作為ARM仿真調(diào)試器,但是知道能SPI Flash的人應(yīng)該不多,本篇文章將介紹如何
    發(fā)表于 01-26 18:37 ?4次下載
    Jlink使用技巧之<b class='flag-5'>燒</b><b class='flag-5'>寫</b>SPI <b class='flag-5'>Flash</b>存儲(chǔ)芯片

    可供用戶修改的FLASH驅(qū)動(dòng)介紹

    為方便客戶針對(duì) S698 芯片外接不同種類的 FLASH 進(jìn)行在線編程。V8mon 的 FLASH 提供源碼可以
    發(fā)表于 06-08 14:39 ?0次下載
    可供用戶修改的<b class='flag-5'>FLASH</b><b class='flag-5'>燒</b><b class='flag-5'>寫</b>驅(qū)動(dòng)介紹

    華大單片機(jī)在線工具

    華大單片機(jī)在線工具
    發(fā)表于 09-26 16:32 ?0次下載

    TI、DSP方法介紹

    由于 TI 的 DSP 要比單片機(jī)略微復(fù)雜,很多客戶對(duì)不是很熟悉,所以我們將方法做一
    發(fā)表于 10-07 14:22 ?1166次閱讀
    TI、DSP<b class='flag-5'>燒</b><b class='flag-5'>寫</b>方法介紹