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
工程
工程
工程
工程
主站蜘蛛池模板: 免费毛片视频| 亚洲中文字幕精品| 亚洲最猛黑人xxxx黑人猛交| 国产福利免费视频| 国产无人区一区二区三区| 亚洲AV无码一区二区三区牲色| 国产在线专区| 亚洲日韩AV无码一区二区三区人 | 精品国产免费第一区二区三区日韩| 偷拍久久网| 欧美综合区自拍亚洲综合绿色| 午夜视频在线观看免费网站| 国产人人乐人人爱| 97久久精品人人| 2018日日摸夜夜添狠狠躁| 第一页亚洲| 免费全部高H视频无码无遮掩| 精品無碼一區在線觀看 | 欧美中文字幕无线码视频| 青青草91视频| 国产亚洲高清在线精品99| 亚洲第一中文字幕| 少妇人妻无码首页| 亚洲第一色视频| 伊人无码视屏| 在线精品视频成人网| 国产在线拍偷自揄观看视频网站| 中日韩一区二区三区中文免费视频| 日韩毛片在线播放| 伊人色在线视频| 国产主播在线观看| 91热爆在线| 亚洲一区二区三区麻豆| 免费一级毛片在线播放傲雪网| 亚洲一区精品视频在线| 好吊色妇女免费视频免费| 国产欧美精品一区二区 | 无码中文字幕精品推荐| 国产欧美视频在线观看| 99这里只有精品免费视频| 国产国产人免费视频成18| 亚洲第一视频网| 一本色道久久88综合日韩精品| 国产成人精品优优av| 日韩高清一区 | 日韩无码真实干出血视频| 日韩高清一区 | 欧美三级不卡在线观看视频| 一区二区三区在线不卡免费| 国产成人1024精品下载| 丝袜美女被出水视频一区| 秘书高跟黑色丝袜国产91在线 | 久草热视频在线| 国产女人在线| 99中文字幕亚洲一区二区| 国产9191精品免费观看| 中文纯内无码H| 国产成人一区| 美女无遮挡免费网站| 精品国产福利在线| 91福利片| 久久夜色撩人精品国产| 伊人蕉久影院| 在线国产你懂的| 伊人精品视频免费在线| 亚洲嫩模喷白浆| 永久免费av网站可以直接看的| 日韩成人在线一区二区| 亚洲精品中文字幕无乱码| 久久久久免费精品国产| 99re精彩视频| 久久中文字幕2021精品| 日韩黄色在线| 老司机午夜精品视频你懂的| 中文无码影院| 中文字幕第4页| 一级毛片免费观看久| 亚洲美女一区二区三区| 亚洲,国产,日韩,综合一区| 久久久久久午夜精品| 四虎精品免费久久| 国产麻豆va精品视频|