亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        TMS320C6713 DSP的FLASH自引導及一種另類的燒寫方法

        2016-03-13 00:46:34陜西凌云電器集團有限公司設(shè)計所劉延海
        電子世界 2016年1期
        關(guān)鍵詞:設(shè)計所凌云存儲器

        陜西凌云電器集團有限公司設(shè)計所 張 亮 劉延海

        ?

        TMS320C6713 DSP的FLASH自引導及一種另類的燒寫方法

        陜西凌云電器集團有限公司設(shè)計所張亮劉延海

        1 引言

        FLASH存儲器是在EPROM和EEPROM的基礎(chǔ)上發(fā)展起來的一種非易失性存儲器,在掉電情況下仍能保證數(shù)據(jù)不丟失,并能夠在不離開電路板或數(shù)據(jù)設(shè)備的情況下實施檫除和在編程操作。由于其具備結(jié)果簡單、維護便利、存取速度快、對環(huán)境適應性強、抗震性好等優(yōu)點十分適用于嵌入式系統(tǒng)的設(shè)計和開發(fā),并且以成為目前流行的數(shù)字信號處理系統(tǒng)的一個基本配置。

        TI高速信號處理器TMS320C6000系列DSP需要從外部的ROM存儲器中引導程序,由于外部存儲器的種類很多,TI不在提供統(tǒng)一的燒寫工具,需要使用者自行解決,如何將寫好的程序燒寫入ROM中并能讓DSP引導運行起來,是TMS320C6000系列DSP開發(fā)過程中的重點和難點之一。本文主要介紹基于TMS320C6713 DSP的FLASH自引導及一種另類的FLASH燒寫方法。

        2 TMS320C6713 DSP的引導方式

        DSP加電后,RESET信號為低,芯片復位。在RESET信號上升沿,讀取BOOTMODE[4:0]狀態(tài),以此來決定DSP的存儲器映射方式、地址0處得存儲器類型及復位后芯片的自引導方式。

        TMS320C6713 DSP有三種引導方式,其操作過程分別如下:

        1)不加載。CPU直接開始執(zhí)行地址0處得存儲器中的指令。如果該處存儲器是SDRAM,那么DSP會先掛起,等待SDRAM的初始化完成。

        2)主機加載。核心CPU停留在復位狀態(tài),芯片其余部分保持正常狀態(tài),在這期間,外部主機通過主機接口初始化CPU的存儲空間,包括片內(nèi)配置寄存器。主機完成所有的初始化工作后,結(jié)束引導過程,CPU退出復位狀態(tài),開始執(zhí)行地址0處得指令。

        3)ROM加載。位于外部CE1空間的ROM中的程序首先通過DMA/EDMA被搬入地址0處。盡管加載過程是在芯片從復位信號被釋放后才開始的,但是當芯片仍處于復位時,就開始了上述傳輸過程。傳輸完成之后,CPU退出復位狀況,開始執(zhí)行地址0處得指令。

        3 TMS320C6713 DSP的FLASH自引導

        本文介紹的DSP的Flash自引導屬于上述 3種引導模式中的ROM加載模式,TMS320C6713 DSP每次只能搬移1Kb大小的數(shù)據(jù)到地址0處,而實際使用中程序肯定會大于1K,因此必須進行二次引導搬運(secondary bootloader)。二次引導搬運是指,DSP啟動后,CPU被鎖住,DMA/EDMA自動從外部Flash首地址搬移1Kb的程序到DSP內(nèi)部cache的首地址,搬移完成,激活CPU,運行該1Kb的程序,而該1Kb程序是二次引導搬運程序,即將真正需要運行的程序從外部Flash搬運至DSP內(nèi)部cache中,完成后,進入中斷c_int00(),進行DSP系統(tǒng)的初始化,開始運行main()主程序,完成自啟動。下面介紹二次引導搬運程序也就是Bootloader()程序的編寫。

        首先Bootloader()程序一般編寫都是采用匯編語言來實現(xiàn),可以在互聯(lián)網(wǎng)上找到很多現(xiàn)成的例子,這里就不多做介紹。其實用C語言也一樣可以實現(xiàn),并且簡單易懂。將Bootloader()程序?qū)懭?**.c的文件中然后加入到目標工程中即可,具體程序如下:

        //Flash使用的是AMD公司的AM29LV033C(4M*8-Bit)

        #define MEM_ADDR0x00000400

        #define FLASH_ ADDR0x90000400

        #define EMIF_GCR0x01800000

        #pragma CODE_SECTION(bootload,".boot_load");

        extern far void c_int00(void);

        void bootload(void)

        {register int code_i , code_Num;

        *(unsigned char *)EMIF_GCR = 0x3300;

        code_Num = 0x10000; // 這個地址存放的是要搬移的字節(jié)數(shù),可根據(jù)實際情況修改

        for((code_i) = 0;(code_i)<(code_Num);(code_i)++)

        {

        *(unsigned char *)(MEM_ADDR+(code_i)) = *(unsigned char *)(FLASH_ADDR + (code_i));

        }

        c_int00();

        }

        修改目標工程的.cmd文件,將Bootloader程序指向DSP內(nèi)部RAM中的前1Kb地址中(粗體為需加入的代碼),目標工程的其他代碼放在其后,必須避開這1Kb(0x400)的空間。

        MEMORY

        {

        BOOT_RAM: org =0x0000000len = 0x0000400

        IRAM: org = 0x0000400len = 0x0002FC00

        }

        SECTIONS

        {

        .boot_load > BOOT_RAM

        ………..//省略若干

        .cio > IRAM

        }

        4 TMS320C6713 DSP的FLASH 燒寫

        配置好引導方式和引導文件,還需將目標程序的生成的目標代碼寫入Flash中。一般的方法是用TI的編譯工具CCS編譯連接生成目標文件(.out文件),但該.out文件不是COFF文件格式,F(xiàn)LASH不支持這種文件,所以不能直接寫入FLASH中,必須使用TI公司提供的工具hex6x.exe將.out轉(zhuǎn)換.hex文件,再通過工具hex2bin.exe轉(zhuǎn)換為.bin文件,根據(jù)具體使用的Flash型號編寫相應的燒寫程序?qū)?bin文件寫入Flash中。

        本文介紹Flash燒寫方法是將DSP片內(nèi)RAM中運行的程序直接燒寫入Flash中,首先通過JTAG將目標文件的.out文件下載到片內(nèi)RAM,這時再通過JTAG下載一個Flash燒寫程序,將片內(nèi)RAM中的程序?qū)懭隖lash中即可,省去了前面轉(zhuǎn)換文件格式的過程。創(chuàng)建一個FlashBurn工程,將她所占用的數(shù)據(jù)空間避開前面要燒寫目標程序所使用的數(shù)據(jù)空間。因為前面加載的工程文件已經(jīng)占用了片內(nèi)RAM前面的地址,如果地址重疊的話,后面加載的Flash燒寫程序會改變前面工程文件占用的片內(nèi)RAM地址中的內(nèi)容,導致燒寫內(nèi)容錯誤。可以通過前面工程文件生成的.map文件查看工程文件所占用的片內(nèi)RAM地址。如下:

        MEMORY CONFIGURATION

        nameoriginlengthusedattrfill

        -----------------------------------------------------------

        BOOT_RAM0000000000000400000000a0RWIX

        IRAM000004000002fc00000197acRWIX

        工程文件分配長度為0x2fc00字節(jié),實際使用0x197ac字節(jié)。Flash燒寫程序避開0x19bac(0x400+0x197ac)之前的地址即可,推薦這個地址盡可能的大于分配的地址0x30000(0x400+0x2fc00)。

        Flashburn工程文件的.cmd文件如下

        MEMORY

        {

        IRAM: org = 0x00030000len = 0x00000C00

        }

        這樣Flashburn.out文件就會下載到0x00030000~0x00030C00地址之間,不會把之前下載的.out文件沖掉。

        下載Flashburn.out文件并點擊運行,首先檫除整片F(xiàn)LASH,由于FLASH型號不同所以檫除指令有所差異,具體檫除指令可以查詢所使用芯片的數(shù)據(jù)手冊,這里不作具體描述。其次將片內(nèi)RAM中0x00000000的數(shù)據(jù)(也就是Bootloader的代碼)寫進0x90000000,具體寫多少可以根據(jù)Map文件決定,也可以直接寫1K數(shù)據(jù)。最后把從0x00000400的開始代碼寫進0x90000400之后.寫進去的字節(jié)數(shù)就是上述.map文件中的0x197ac。

        到此,片內(nèi)RAM中從0x00000000開始存放的目標文件的代碼就全部寫進flash中去了,可以通過CCS窗口去查看是不是一樣。

        斷開電源,再開電,DSP首先把0x900000000開始的1K字節(jié)搬移進片內(nèi),也就是Bootloader,然后Bootloader把代碼從0x90000400搬移到片內(nèi)的0x00000400,搬移完成之后,就跳到C_int00去執(zhí)行程序,完成了自啟動。

        5 結(jié)束語

        本文實現(xiàn)了TMS320C6713 DSP的FLASH自引導及FLASH的燒寫,工程實現(xiàn)簡單可靠,并提出一種另類的FLASH燒寫方法,有助于大家對DSP引導系統(tǒng)的理解。

        參考文獻

        [1]Texas Instruments:TMS320C6713B FLOATING-POINT DIGITAL SIGNAL PROCESSOR data sheet(SPRS294BOCTOBER 2005-REVISED JUNE 2006).

        張亮(1982—),男,工程師,現(xiàn)供職于陜西凌云電器集團有限公司設(shè)計所,主要從事數(shù)字電路設(shè)計、圖像處理、嵌入式方面的應用與開發(fā)。

        劉延海(1983—),男,工程師,現(xiàn)供職于陜西凌云電器集團有限公司設(shè)計所,主要從事數(shù)字電路設(shè)計、圖像處理、嵌入式方面的應用與開發(fā)。

        作者簡介:

        猜你喜歡
        設(shè)計所凌云存儲器
        保留一點兒焦慮感
        做人與處世(2022年2期)2022-05-26 22:34:53
        靜態(tài)隨機存儲器在軌自檢算法
        礦冶科技集團有限公司信息技術(shù)與自動化研究設(shè)計所
        礦冶科技集團有限公司選礦研究設(shè)計所
        礦冶科技集團有限公司選礦研究設(shè)計所
        礦冶科技集團有限公司信息技術(shù)與自動化研究設(shè)計所
        Q萌霸氣凌云秀
        兵器知識(2019年1期)2019-01-23 02:20:44
        唯有凌云多壯“質(zhì)”
        軍工文化(2017年12期)2017-07-17 06:08:02
        瘋狂的凌云
        汽車觀察(2016年3期)2016-02-28 13:16:22
        存儲器——安格爾(墨西哥)▲
        国产精品无码dvd在线观看| 熟女人妻中文字幕一区| 日本中文字幕官网亚洲| 欧美高清视频手机在在线| 欧美大屁股xxxx| 啪啪无码人妻丰满熟妇| 日韩色久悠悠婷婷综合| 三级国产精品久久久99| 大肉大捧一进一出视频| 欧美在线播放一区二区| 日韩一二三四区免费观看| 色婷婷色丁香久久婷婷| 亚洲av无码专区在线播放中文| 国产免费一级在线观看| 日韩精品一区二区三区含羞含羞草 | 丝袜美腿福利一区二区| 农村欧美丰满熟妇xxxx| 香蕉视频毛片| 尤物成av人片在线观看| 香蕉视频在线观看亚洲| 国产精品久久久久久久免费看| 国产精品国产三级在线高清观看| 亚洲av中文字字幕乱码软件 | 91久久青青草原免费| 美女一区二区三区在线观看视频| 女人av天堂国产在线| 亚洲av无码一区二区三区观看| 国产免费一级在线观看| 男女动态视频99精品| 一区二区和激情视频| 日本熟妇人妻xxxxx视频| 久久久99精品视频| 亚洲av综合色一区二区| gv天堂gv无码男同在线观看| 手机在线精品视频| 国产麻豆国精精品久久毛片| 亚洲夜夜性无码| 欧美黑人乱大交| 久久免费精品视频老逼| 性人久久久久| 欧美mv日韩mv国产网站 |