999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2016-03-13 00:46:34陜西凌云電器集團有限公司設計所劉延海
電子世界 2016年1期
關鍵詞:程序工程

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

?

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

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

1 引言

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

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

2 TMS320C6713 DSP的引導方式

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

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

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

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

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

3 TMS320C6713 DSP的FLASH自引導

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

首先Bootloader()程序一般編寫都是采用匯編語言來實現,可以在互聯網上找到很多現成的例子,這里就不多做介紹。其實用C語言也一樣可以實現,并且簡單易懂。將Bootloader()程序寫入***.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; // 這個地址存放的是要搬移的字節數,可根據實際情況修改

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內部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文件格式,FLASH不支持這種文件,所以不能直接寫入FLASH中,必須使用TI公司提供的工具hex6x.exe將.out轉換.hex文件,再通過工具hex2bin.exe轉換為.bin文件,根據具體使用的Flash型號編寫相應的燒寫程序將.bin文件寫入Flash中。

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

MEMORY CONFIGURATION

nameoriginlengthusedattrfill

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

BOOT_RAM0000000000000400000000a0RWIX

IRAM000004000002fc00000197acRWIX

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

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

MEMORY

{

IRAM: org = 0x00030000len = 0x00000C00

}

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

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

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

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

5 結束語

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

參考文獻

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

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

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

作者簡介:

猜你喜歡
程序工程
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
工程
工程
工程
工程
主站蜘蛛池模板: 毛片久久网站小视频| 久久国产精品77777| 国产精品短篇二区| 97久久精品人人| 性欧美在线| 性喷潮久久久久久久久| 久久鸭综合久久国产| 久久综合丝袜长腿丝袜| 精品91自产拍在线| 中文字幕乱码二三区免费| 久久精品欧美一区二区| 精品1区2区3区| 亚洲综合久久一本伊一区| 日韩a在线观看免费观看| 欧美日韩中文国产| 欧美中出一区二区| 亚洲无码高清视频在线观看| 国产成人精品在线1区| 国产成人高清在线精品| 国产欧美性爱网| 嫩草在线视频| 91国内视频在线观看| www.亚洲国产| 91色老久久精品偷偷蜜臀| 国产菊爆视频在线观看| 尤物视频一区| 欧美成a人片在线观看| 无码网站免费观看| 免费av一区二区三区在线| 亚洲AⅤ综合在线欧美一区| 久草性视频| 精品撒尿视频一区二区三区| 久久亚洲黄色视频| 国产尹人香蕉综合在线电影| 狠狠色成人综合首页| 夜夜高潮夜夜爽国产伦精品| 国产性精品| 2020亚洲精品无码| 亚洲天堂视频在线观看免费| 久久91精品牛牛| 乱人伦中文视频在线观看免费| 亚洲无码高清视频在线观看| 国产日韩精品一区在线不卡| 青草视频久久| 青青青国产视频手机| 免费毛片视频| 国产精品欧美日本韩免费一区二区三区不卡 | 人妻一本久道久久综合久久鬼色| 亚洲第一视频网| 亚洲AV无码乱码在线观看代蜜桃 | 午夜视频www| 欧洲亚洲欧美国产日本高清| 日韩毛片在线视频| 午夜视频在线观看区二区| 国产综合精品日本亚洲777| 亚洲三级色| 少妇人妻无码首页| 国产在线麻豆波多野结衣| 国产91成人| 欧美亚洲第一页| 色综合天天视频在线观看| 精品三级网站| 国产精品第一区在线观看| 亚洲人成网18禁| www.精品视频| 狠狠久久综合伊人不卡| 伊人福利视频| 欧美成人综合视频| 就去吻亚洲精品国产欧美| 亚洲成人在线免费观看| 99re免费视频| 精品小视频在线观看| 朝桐光一区二区| 欧美在线中文字幕| 亚洲一级色| 国产成人久久777777| 色国产视频| 亚洲欧美成人影院| 在线观看的黄网| 天天躁夜夜躁狠狠躁图片| 在线观看无码av免费不卡网站| 在线观看精品国产入口|