女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]以TMS320VC5402為例,探討一種綜合運(yùn)用C語言、數(shù)據(jù)文件及GEL語言的Flash編程新方法。該方法完全采用C語言編寫燒寫程序,解決了指針 不能訪問高端Flash的問題;把引導(dǎo)表作成數(shù)據(jù)文件,可實現(xiàn)大引導(dǎo)表的分批次加載;通過GEL程序控制C程序執(zhí)行,較好地體現(xiàn)了Flash編程的流程。

引言

  在DSP應(yīng)用系統(tǒng)開發(fā)的后期,一般需要將用戶程序?qū)戇M(jìn)Flash等非易失性存儲器,以便采用并行引導(dǎo)的方法實現(xiàn)用戶程序的自舉加載。這一步驟稱 為“燒寫”;針對Flash的燒寫又稱為Flash編程。以往的編程方法大多采用匯編語言編寫程序,可讀性較差,并將引導(dǎo)表的制作也放在程序中實現(xiàn);用戶 程序一變,燒寫程序就得重新編寫,不具有通用性。參考文獻(xiàn)[1]采用C語言完成Flash讀寫,較清晰地體現(xiàn)了Flash編程的思想,但是它采用指針訪問 Flash空間,不能對高端Flash(64 K字存儲空間以外)進(jìn)行訪問,且將引導(dǎo)表作成數(shù)組的方法仍顯機(jī)械。

  這里提出的Flash編程方法完全采用C語言編寫燒寫程序,運(yùn)用函數(shù)地址訪問高端Flash,借助數(shù)據(jù)文件將引導(dǎo)表加載到數(shù)據(jù)空間。GEL (General Extension Language,通用擴(kuò)展語言)作為一種程序擴(kuò)展語言,被廣泛用于調(diào)試及程序運(yùn)行環(huán)境的定制。這里將GEL語言運(yùn)用于Flash編程,可以控制C程序在 數(shù)據(jù)加載完成后執(zhí)行燒寫過程,從而實現(xiàn)大引導(dǎo)表的燒寫。

1  DSP開發(fā)板及Flash存儲器

  筆者使用的DSP開發(fā)板上有1片TMS320VC5402通用DSP芯片、1片SST39VF400A存儲芯片(Flash)、鍵盤和液晶顯示 器等。其中Flash容量為256 K字(1字=16位),組織為128個扇區(qū)或8個塊。為充分發(fā)揮Flash容量大的特點,本系統(tǒng)在硬件上將Flash空間的映射設(shè)計為:在上電自舉過程 中,F(xiàn)lash空間的0x04000~0x0FFFF映射到數(shù)據(jù)空間的0x4000~0xFFFF;上電自舉完成后,整個Flash空間 0x00000~0x3FFFF映射到程序空間的0x80000~0xBFFFF,即映射到了TMS320VC5402的擴(kuò)展程序空間,處于高地址,因此 稱為“高端Flash”。由此可知,對系統(tǒng)進(jìn)行應(yīng)用開發(fā)時,F(xiàn)lash總是表現(xiàn)為高端Flash。

按此在新窗口瀏覽圖片
圖1  Flash編程流程

2  Flash編程流程

  用戶程序一般以可執(zhí)行COFF(公共目標(biāo)文件格式)文件格式存在(后綴名為.out),F(xiàn)lash編程所要完成的就是將此可執(zhí)行文件轉(zhuǎn)換成特定 的ASCII碼引導(dǎo)表的格式,并按此格式順序?qū)戇M(jìn)Flash。Flash編程流程如圖1所示。下面僅以一個動畫顯示程序qq.out為例,介紹如何將其燒 寫進(jìn)Flash。

2.1  生成引導(dǎo)表

  通過Hex轉(zhuǎn)換工具,將用戶程序qq.out文件轉(zhuǎn)換成十六進(jìn)制形式的ASCII碼流文件(ASCIIHex格式文件[2])qq.asc。首先編寫一個convert.cmd命令文件。部分內(nèi)容如下:

  qq.out/*用戶程序*/
  -a/*轉(zhuǎn)換成ASCIIHex格式文件*/
  -map qq.mxp/*包含引導(dǎo)表的長度等信息*/
  -o qq.asc/*轉(zhuǎn)換成qq.asc*/

  執(zhí)行命令行“hex500 convert.cmd”將產(chǎn)生qq.mxp和qq.asc文件。其中qq.mxp文件有這樣的信息:“CONTENTS: 00000000…0000433b”。表示qq.asc中的引導(dǎo)表長度為0x433C字,內(nèi)容大致為:“10 AA 7F FF 00 02 00 00…”。

2.2  轉(zhuǎn)換成數(shù)據(jù)文件

  編程將ASCIIHex格式文件qq.asc轉(zhuǎn)換成CCS(Code Composer Studio,代碼集成開發(fā)環(huán)境)支持的數(shù)據(jù)文件(后綴名為.dat)。例中的引導(dǎo)表已屬較大的表,這里將其轉(zhuǎn)換為兩個數(shù)據(jù)文件qq_dat1.dat和 qq_dat2.dat,以在同一緩沖區(qū)分兩次裝載,避免因緩沖區(qū)太小而容納不了引導(dǎo)表的情況發(fā)生。

  CCS支持的數(shù)據(jù)文件的第一行為文件頭信息,格式為:

  幻數(shù)  數(shù)據(jù)格式  起始地址  頁類型  數(shù)據(jù)塊大小

其后是文件內(nèi)容,每行表示一個數(shù)據(jù)。其中幻數(shù)固定為“1651”,數(shù)據(jù)格式可以選擇“1”(十六進(jìn)制整型)、“2”(十進(jìn)制整型)、“3”(十進(jìn)制長整型)、“4”(十進(jìn)制浮點型)。

  利用VC6.0編寫該轉(zhuǎn)換程序是簡單的,程序運(yùn)行后產(chǎn)生的qq_dat1.dat文件將是:“1651 1 4000 1 2000 0x10AA…”。從文件頭信息可知,加載該文件可將引導(dǎo)表裝載到數(shù)據(jù)空間0x4000起始的長度為0x2000的緩沖區(qū)中。

2.3  Flash燒寫

  利用GEL程序?qū)⒁龑?dǎo)表形成的數(shù)據(jù)文件qq_dat1.dat和qq_dat2.dat逐次裝載到數(shù)據(jù)空間,調(diào)用C程序執(zhí)行燒寫過程。

  由于Flash空間映射到TMS320VC5402程序空間的0x80000~0xBFFFF,故實際編寫程序時使用的Flash空間的地址均需偏移0x80000。例如,F(xiàn)lash空間的0x5555地址單元實際上為0x85555。

  正如前面所介紹的,雖然高端Flash囊括了整個Flash空間,但是對于C54x系列芯片,其C語言指針的寬度為16位,只能訪問64 K字范圍(0x0000~0xFFFF)之內(nèi)的存儲空間,而不能訪問高端Flash(0x80000~0xBFFFF)。

  參考文獻(xiàn)[3]討論了用C語言指針不能訪問C54x系列DSP擴(kuò)展程序空間的問題,提出了用函數(shù)名代替指針來訪問擴(kuò)展程序空間的方法,并給出了 可供C程序調(diào)用的pfunc_ext.lib庫。這一方法本質(zhì)上是將函數(shù)名代表的程序空間地址(20位)傳送到40位的累加器,進(jìn)行累加器尋址,因此使用 該庫恰好可以解決指針不能訪問高端Flash的問題。庫中以下兩個函數(shù)是有用的:

int PFUNC_wordRead(PFUNC addrProg);
//讀?。〝U(kuò)展)程序空間地址addrProg處的一個字
void PFUNC_wordWrite(PFUNC addrProg,int wData);
//將字wData寫到(擴(kuò)展)程序空間地址addrProg處

  為應(yīng)用pfunc_ext.lib庫,需定義一些函數(shù),并在命令文件中為這些函數(shù)所在的自定義代碼段分配段地址,以使這些函數(shù)的函數(shù)名指向Flash特定的地址單元。例如,可以編寫一個C程序源文件,定義一個空函數(shù)FLASH_5555以指向0x85555:

#pragma CODE_SECTION(FLASH_5555,"bigpointer")
void FLASH_5555(void){}

  Flash的其他地址可依此方法得到, pfunc_ext.lib庫的具體說明見參考文獻(xiàn)[3]。

  下面應(yīng)用pfunc_ext.lib庫編寫了Flash擦除和編程的3個基本函數(shù)flash_erase()、 flash_word_write()、flash_serial_write(),分別完成Flash擦除、字編程和連續(xù)編程。其中連續(xù)編程只是循環(huán)調(diào) 用了字編程函數(shù)。擦除和字編程的流程分別如圖2和圖3所示。擦除函數(shù)的代碼如下:

//實現(xiàn)片擦除、塊擦除或扇區(qū)擦除,type定義擦除方式,addr給出扇區(qū)起始地址或塊起始地址
unsigned int flash_erase(PFUNC addr,unsigned type){
  //執(zhí)行SST39VF400A的擦除命令序列
  PFUNC_wordWrite(FLASH_5555,FLASH_CMD1);
  //0xAA﹥*(0x85555)
  …
  PFUNC_wordWrite(addr,type);//擦除類型命令
  …
  }

按此在新窗口瀏覽圖片
圖2  擦除流程

按此在新窗口瀏覽圖片
圖3  字編程流程

  有了這些基本函數(shù),就可以在主函數(shù)中完成Flash的燒寫。下面的主函數(shù)實現(xiàn)將引導(dǎo)表燒寫進(jìn)Flash。

void main(){
  …
  asm("erase:");//擦除0x80000~0x97FFF,塊擦除
  for(i=0;i<3;i++)
  flag=flash_erase((PFUNC)i,FLASH_BLOCK_ERASE);
  asm("program1:");//連續(xù)編程
  flag=flash_serial_write(FLASH_BASE,MEM_BASE,usercode_length1);//FLASH_BASE指向0x84000
  asm("program2:");//連續(xù)編程
  …
  asm("program_bootaddr:");//字編程
  flag=flash_write_word(FLASH_FFFF,0x4000);
}

  例中采用了塊擦除的方式。MEM_BASE是多次加載引導(dǎo)表的緩沖區(qū)起始地址,為與數(shù)據(jù)文件qq_dat1.dat中文件頭對應(yīng),應(yīng)保證 MEM_BASE指向0x4000。其方法類似于上述函數(shù)名的地址分配(使用#pragma DATA_SECTION偽指令)。最后完成字編程,使Bootloader上電時得以在數(shù)據(jù)空間的0xFFFF處讀取引導(dǎo)表在數(shù)據(jù)空間的起始地址,例中 為0x4000。

  為使主函數(shù)正確執(zhí)行,需借GEL語言的運(yùn)行調(diào)試功能,由此設(shè)計的GEL程序真正體現(xiàn)了Flash燒寫的流程。GEL程序流程如圖4所示,部分代碼如下:

menuitem "PROGRAMMING";
hotmenu FlashFiring(){…
  GEL_Load("ProgramFlash.out");//加載C燒寫程序
  …
  if(flag){
  GEL_Load("qq_dat1.dat");//加載數(shù)據(jù)文件
  GEL_Go(program1); //執(zhí)行連續(xù)編程
  …
  GEL_Load("qq_dat2.dat");//加載數(shù)據(jù)文件
  GEL_Go(program2); //執(zhí)行連續(xù)編程…
}
  }

按此在新窗口瀏覽圖片
圖4  GEL程序流程

  GEL程序在C程序每次執(zhí)行前設(shè)定正確的環(huán)境變量并初始化緩沖區(qū)。例如,數(shù)據(jù)文件的長度usercode_length1就是需要根據(jù)實際的數(shù)據(jù)文件長度進(jìn)行設(shè)定的環(huán)境變量;而在進(jìn)行連續(xù)編程之前,需要GEL程序重新加載MEM_BASE緩沖區(qū)。

3  運(yùn)行結(jié)果

  在CCS環(huán)境下選擇File/Load GEL,裝載以上GEL程序,選擇GEL/ PROGRAMMING/FlashFiring,即可實現(xiàn)Flash燒寫。拔掉仿真器,給系統(tǒng)重新上電,可以看到液晶顯示器上QQ企鵝的動畫。

4  結(jié)論

  通過函數(shù)地址可以進(jìn)行Flash的全空間訪問;采用C語言編寫Flash擦除和編程函數(shù),增強(qiáng)了程序的可讀性;將引導(dǎo)表作成多個數(shù)據(jù)文件,一方 面適于大引導(dǎo)表的加載,另一方面使Flash編程算法與編程數(shù)據(jù)完全分離,提高了算法的通用性;僅在GEL程序中修改參數(shù)即可實現(xiàn)另一用戶程序的燒寫,體 現(xiàn)了方法的靈活性。

參考文獻(xiàn)

[1]  張勇.C/C++語言硬件程序設(shè)計——基于TMS320C5000系列DSP[M].西安:西安電子科技大學(xué)出版社,2003(5):206-230.
[2]  Texas Instruments. TMS320C54x Assembly Language Tools User's Guide. SPRUF102,200-210.
[3]  David M Alter. Using C to Access Data Stored in Program Memory on the TMS320C54x DSP[R]. SPRA177A, Texas Instruments Application Report,2005-08.
[4]  北京合眾達(dá)電子技術(shù)有限公司. SEED——MMI5402用戶指南. 2004-06.

王海濤(碩士),主要研究方向為機(jī)器視覺、焊接自動控制;
張文明(教授),主要研究方向為焊接自動控制;
王濱(教授),主要研究方向為機(jī)器視覺。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

近日,沈陽京東MALL涌進(jìn)大批玩家,大部分都為此前在“沈陽京東MALL”微信公眾號獲得線下首發(fā)購買機(jī)會的朋友。據(jù)悉,此次GeForce RTX 4090顯卡現(xiàn)貨線下首發(fā)活動,受到眾多玩家熱烈追捧。...

關(guān)鍵字: GE FORCE 顯卡 NVIDIA

最近看到APP上,給我推送了很多類似的回答,借此機(jī)會,也想著重新審視一下自己的學(xué)習(xí)歷程,以及結(jié)合自身和大牛,分享一些學(xué)習(xí)經(jīng)驗,希望對大家有所啟發(fā)和幫助。

關(guān)鍵字: APP 嵌入式 C語言

艾伯森(Albertsons)正在與其競爭對手克羅格(Kroger) 就合并進(jìn)行談判。兩家連鎖雜貨店最早可能于本周達(dá)成協(xié)議。(全球企業(yè)動態(tài))...

關(guān)鍵字: GE

通用電氣公司(GE)周二表示,其醫(yī)療健康部門分拆的新公司將名為GE HealthCare,由四個業(yè)務(wù)部門組成——成像、超聲波、病人護(hù)理解決方案和醫(yī)藥診斷。通用電氣計劃創(chuàng)設(shè)三個獨(dú)立運(yùn)作的上市公司,分別專注于醫(yī)療健康、航空和...

關(guān)鍵字: HEALTH 通用電氣 HC GE

SQLite是一個跨平臺的輕量級數(shù)據(jù)庫,支持C/C++開發(fā),可用于嵌入式中,關(guān)于C/C++使用SQLite的簡單實例,可參考這篇:“玩轉(zhuǎn)SQLite6:使用C語言來讀寫數(shù)據(jù)庫”,本篇來繼續(xù)介紹SQLite的基礎(chǔ)運(yùn)算符與表...

關(guān)鍵字: SQLite C語言 數(shù)據(jù)庫

今天晚上21點,RTX 4090公版將在國內(nèi)首發(fā),在這個關(guān)鍵時刻,NVIDIA也是再次提醒大家,不要忘記。除了線上發(fā)售外,10月15日GeForce RTX 4090系列顯卡將在線下正式開售,華碩、七彩虹、微星推出現(xiàn)貨,...

關(guān)鍵字: NVIDIA FORCE 顯卡 GE

法拉第未來(Faraday Future,FFIE)提交8K公告,宣布FFIE執(zhí)行董事長兼董事Sue Swenson,董事Scott Vogel和Jordan Vogel,已正式辭去FFIE董事會董事和公司其他全部相關(guān)職...

關(guān)鍵字: 法拉第未來 GE ADAM FARADAY

默沙東(MSD)和國藥集團(tuán)聯(lián)合宣布,雙方簽署合作框架協(xié)議,默沙東將其和Ridgeback公司合作研發(fā)的抗新冠病毒口服藥物莫諾拉韋的經(jīng)銷權(quán)和獨(dú)家進(jìn)口權(quán)授予國藥集團(tuán),同時雙方將評估技術(shù)轉(zhuǎn)讓的可行性,以便該藥物在中國境內(nèi)生產(chǎn)、...

關(guān)鍵字: SD GE CK AC

(全球TMT2022年9月27日訊)Jabra推出Jabra Engage 50II及Engage 40兩款全新聯(lián)絡(luò)中心耳麥。Jabra Engage 50 II采用了先進(jìn)算法來檢測用戶語音波形及分析背景噪聲。配備的3...

關(guān)鍵字: GE 耳機(jī) 噪聲 麥克風(fēng)

打造更高的通話效率和客服評分 Jabra Engage 50 II 配備協(xié)同工作的強(qiáng)大 3 麥克風(fēng)系統(tǒng),可提供更清晰的語音和出色的背景噪聲消除功能 Jabra Engage 40 憑借清晰語音以及超...

關(guān)鍵字: GE BSP 耳機(jī) 麥克風(fēng)

智能硬件

21972 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉