欧美日韩国产一区二区三区播放-欧美日韩国产一区二区三区-欧美日韩国产一区二区-欧美日韩国产一区-bl双性高h-bl双性调教

低溫18650 3500
無磁低溫18650 2200
過針刺低溫18650 2200
低溫磷酸3.2V 20Ah
23年專注鋰電池定制

TMS320VC5416并行自舉的巧妙實現

鉅大LARGE  |  點擊量:866次  |  2020年02月04日  

摘要:提出了一種巧妙實現DSp并行自舉的方法,即采用“兩次下載法”,利用DSp自身對FLASH編程,以實現DSp的并行自舉。這種在系統編程的DSp自舉實現方式無需文件轉換,簡單靈活。以TI公司的TMS320VC5416和閃爍存儲器SST39VF200為例,介紹了該方法的具體實現過程。


隨著信息技術的飛速發展,數字信號處理器(DSp)得到了廣泛的應用。現今的高速DSp內存不再基于FLASH結構,而是采用存取速度更快的RAM結構。DSp掉電后其內部RAM中的程序和數據將全部丟失,所以在脫離仿真器的環境中,DSp芯片每次上電后必須自舉,將外部存儲區的執行代碼通過某種方式搬移到內部存儲區,并自動執行。目前應用非常廣泛的是TI公司的5000系列DSp,常用的自舉方式有并行自舉、串行自舉、主機接口(HpI)自舉和I/O自舉。HpI自舉需要有一個主機(如單片機)進行干預,雖然可以通過這個主機對DSp內部工作情況進行監控,但電路復雜、成本高;串口自舉代碼加載速度慢;I/O自舉僅占用一個端口地址,代碼加哉速度快,但一般的外部存儲器都需要接口芯片來滿足DSp的自舉時序,故電路復雜,成本高;并行自舉加載速度快,雖然需要占用DSp數據區的部分地址,但無需增加其它接口芯片,電路簡單。因此在TI公司的5000系列DSp中,并行自舉得到了廣泛的應用。


將可執行代碼燒錄到外部存儲器,傳統的做法是通過編程器完成。先利用CCS軟件中的hex500.exe文件將要寫入的*.out文件轉換成編程器能夠識別的*.hex文件格式,再用編程器將轉換后的*.hex文件燒錄到外部EEROM中。然后,隨著芯片制造工藝的不斷提高,芯片集成度越來越高,存儲器正向小型化、貼片式的方向發展,很多貼片封裝的存儲器很難用編程器編程,更不可能頻繁插拔。與傳統的EEROM相比,FLASH存儲器具有支持在線擦寫且擦寫次數多、速度快、功耗低、容量大、價格低廉等優點。目前在很多FLASH芯片采用3.3V單電源供電,與DSp連接時無需采用電平轉換芯片,因此電路連接簡單。在系統編程,利用系統本身的DSp直接對外掛的FLASH存儲器編程,節省了編程器的費用和開發時間、使得DSp執行代碼可以在線更新。


這里,在可執行代碼的FLASH燒錄方面,不再采用hex500.exe文件對*.out文件進行轉換,而是妙巧妙地采用“兩次下載法”,利用DSp對FLASH的寫操作將可執行代碼直接寫到外掛FLASH中去。


本文以一片TMS320VC5416外掛一片SST69VF200FLASH存儲器為例,介紹如何通過DSp對FLASH在系統編程,以實現DSp并行自舉的具體方法,并給出了DSp的C程序部分源碼。


1DSp和FLASH構成的自舉系統


DSp在自舉過程中,是將外部的存儲區當作數據存儲區來訪問的。因此在設計時,雖然FLASH內部存儲的是代碼,但對于DSp而言依然是數據。由于TMS320VC5416的數據總線是16位的,所以選用16位總線接口的FLASH存儲器。數據區中的0x0000~0x7FFF對應為DSp內存的RAM區,所以DSp要對外部的FLASH操作只能訪問0x8000~0xFFF的32K字存儲區。


DSp自舉系統的基本連接如圖1所示。自舉系統中的選用的FLASH為SST公司的SS39VF200,該FLASH存儲器為128K字容量,16位總線接口。為了簡化起見,圖中沒有對FLASH進行分頁處理,僅僅是把它當成外部數據存儲區來處理。由于SS39VF200的讀信號OE和寫信號WE是分開的,且寫信號的優先級高于讀信號,而DSp的讀寫共用一個引腳,所以將DSp的讀寫信號與FLASH的寫信號相連接,而將其讀信號OE直接接地,FLASH的片選信號CE直接與DSp的數據區選擇信號OE相連接,這表明將FLASH作為DSp的數據存儲區進行訪問。如上所述,DSp只能訪問外部數據區的0x8000~0xFFF區域的數據,因此對于39VF200而言,可以將最高位地址A16直接接地。對于上述電路連接方法,39VF200存儲器從0x0000開始的32K的空間是無法訪問的。


2TMS320VC5416對SST39VF200的在系統編程


2.1SS39VF200芯片介紹


SST39VF200的操作不像一般的RAM和ROM,除了讀數據的過程一樣外,其它的操作都不相同,必須按照一定的順序來執行。


2.2TMS320VC5416對SST39VF200的編程操作


通常,在對FLASH進行編程之前,必須將FLASH中待寫的區域進行擦除,然后才能進行編程操作。需要注意的是,每次對FLASH發出操作命令后,必須等到FLASH完成本次操作才能發送下一個操作命令。判斷FLASH執行命令完畢的方式有兩種,一是利用數據位D7判斷,如果FLASH尚未完成操作,則讀該位總是為低,完成操作后該位變成高;二是利用數據位D6判斷,如果FLASH尚未完成操作,則相鄰兩次讀到的D6位的值不同。當兩次讀到的D6位的值都是一樣的,表明FLASH完成了本次操作。


下面以數據位D6判斷操作完成與否,說明TMS320VC5416對SST39VF200寫操作的具體過程,其它操作過程與該過程基本相同。


VoidWord_program(uint*Ad,uintDQ)//Ad為編程地址,DQ為編程數據


{


uint*Ad_Temp,Temp1,Temp2;//定義臨時地址指針和數據變量


Ad_Temp=(uint*)(0x55555);//第一個寫周期


*Ad_Temp=0x5555;//給地址0x5555,寫數據0x00AA


Ad_Temp=(uint*)(0x2AAA);//第二個寫周期


*Ad_Temp=0x0055;//給地址0x2AAA,寫數據0x0055


Ad_Temp=(uint*)(0x5555);//第三個寫周期


*Ad_Temp=0x00A0;//給地址0x5555寫數據0x00A0


*Ad=DQ;//給編程地址寫編程數據


Again;Temp1=*Ad&0x0040;//兩次讀D6(ToggleBit)


Temp2=*Ad&0x0040;


If(Temp1!=Temp2)//判斷是否命令執行結束,否則繼續讀ToggleBit


gotoAgain;


}

圖2

3TMS320VC5416的并行自舉


通過在系統編程可以實現將執行代碼寫入FLASH。如果確定FLASH中用戶程序代碼的存儲格式并正確自舉以實現脫機運行是整個在系統編程的重點。


3.1自舉表


在介紹DSp并行自舉過程之前,必須對DSp的自舉表加以說明。必須對DSp的自舉表加以說明。自舉表需按照TI公司規定的格式來創建。該表中存放在DSp初始化時要用到的特殊寄存器如SWWSR、BSCR等的值、程序入口地址、各段的目標首地址和長度以及要執行的代碼。


3.2并知自舉過程


完整的并行自舉的流程圖如圖2所示。


SST39VF200FLASH存儲器是16位的,所以實際采用的是16位并行自舉,DSp內部的引導程序從數據空間地址0xFFFF讀取自舉表首地址,最后從自舉表中將可執行代碼搬移到DSp對應的RAM中。


3.3"兩次下載法"實現并行自舉


如何按照規定的自舉表格式將表中的各項內容寫入到外掛的FLASH中去?普通的做法是利用hex200.exe文件將*.out文件轉換后*.hex格式,然后讀取*.hex文件,將其寫入FLASH。這里采用一種更簡便的“兩次下載法”將自舉表寫入FLASH,整個過程無需文件轉換和文件讀取,并且完成此過程的代碼很小,幾乎不占用DSp內部的存儲空間。


所謂的“兩次下載法”就是通過仿真器對DSp進行兩次加載來完成自舉表的建立。第一次加載用戶希望自舉的可執行代碼,稱為代碼1,加載完后不運行此代碼;緊接著加載建立自舉表的代碼,稱為代碼2。代碼1是DSp脫機運行時的代碼,代碼2僅僅是把代碼1按照自舉表的格式寫入到外部FLASH中的代碼。需要注意的是,代碼1和代碼2在分配程序存儲空間時不可以重疊,而且代碼2的數據空間必須包含代碼1和外部FLASH共同占用的空間,因為它要把代碼1按訪問數據的方法寫到外部FLASH中。由于下載完代碼1后并沒有運行,而是緊接著下載代碼2,兩者的程序存儲區又不重疊,因此下載完碼2后,先前下載的代碼1仍舊在DSp中,只是被代碼2看成數據而已。“兩次下載法”的具體操作步驟如下:


(1)將DSp的Mp/MC引腳置高,讓DSp工作在微處理器方式。


(2)將代碼1通過仿真器下載到DSp中,但不運行該代碼。


(3)將代碼2通過仿真器下載到DSp中,運行此代碼。


(4)代碼2運行結束后,去掉仿真器,并將Mp/MC引腳置低,讓DSp工作在微型計算機方式。


(5)復位DSp,觀察程序運行的結果是否正常。


“兩次下載法”中兩次代碼的存儲區分配情況如圖3所示。

圖中,代碼1中的數據段起始地址為0xA,數據段結束地址這0xB,代碼段起始地址為0xC,代碼段結束地址為0xD,其中0xB和0xC可以是同一地址,也可是不同地址;代碼2中的數據段起始地址為0xG,數據段結束地址為0xFFFF,代碼段起始地址為0xE,代碼段結束地址為0xF,其中0xF和0xG可以是同一地址,也可以是不同地址。對TMS320VC5416而言,因其0x0000~0x7FFF對應的是內部的32K字空間,所以兩個表中的地址大小關系為0xG<0xC<0xD<0x8000。


基于上述思想,假設代碼1的程序段為0x4000~0x7FFF,數據段為0x3000~0x3FFF,代碼2的程序段為0x2000~0x2FFF,數據段為0x3000~0xFF7F(需要注意的是,代碼2的數據段必須包含代碼1的代碼段和FLASH所占據的地址空間,代碼2的代碼段絕對不能與代碼1的代碼段有重疊),外部FLASH占據的地址空間為0x8000~0xFF7F,自舉表的首地址從0x8000開始,并且SWWSR和BSCR的值分別為0x0E38和0x8806,程序入口地址為0x004089,代碼1長度為16K字,代碼1的存放起始地址為0x004000,那么代碼2在FLASH中建立自舉表的程序如下:


UINTI;//定義臨時變量


UINT*Addr1,*Addr2;//定義臨時地址指針變量


Addr1=(uint*)0xffff;


Word_program(Addr1,0x8000);//在數據空間0xffff地址寫自舉表起始地址0x8000


Addr1=(uint*)0x8000;//自舉表首地址


Word_program(Addr1,0x10AA);//自舉總線寬度為16位,即第一個字為0x10AA


Addr1++;//累為地址


Word_program(Addr1,0x0E38);//SWWSR的值


Addr1++;//累加地址


Word_program(Addr1,0x8806);//BRSC的值


Addr1++;//累加地址


Word_program(Addr1,0);//程序入口地址XpC為0


Addr1++;//累加地址


Word_program(Addr1,0x4089);//程序入口地址pC為0x4089


Addr1++;//累加地址


Word_program(Addr1,0x4000);//代碼長度為0x4000


Addr1++;//累加地址


Word_program(Addr1,0);//目標程序入口地址XpC為0


Addr1++;


Word_program(Addr1,0x4000);//目標程序入口地址pC為0x4000


Addr1+;//累加地址


Addr2=(uint*)0x4000//代碼1起始地址


for(I=0;I<0x4000;I++)//寫代碼1到FLASH,長度為16K字


Word_program(Addr1++,*(Addr1++));


Word_program(Addr1,0x0000);//自舉表結尾的一個字寫入0x0000,自舉表建立結束


代碼2除了上面的自舉表的建立外還包括FLASH的擦除和自舉表數據的校驗。需要注意的是,在對FLASH進行寫操作之前,必須對其進行擦除,擦除部分的程序可參考前面的Word_program()子函數。


這樣,通過簡單的“兩次下載法”,利用代碼2將要脫機運行的代碼1以自舉表的格式寫到FLASH存儲器中,校驗正確后DSp即可脫機工作了。


采用“兩次下載法”利用DSp自身對FLASH進行編程,可實現DSp的并行自舉。這種在系統編程的DSp自舉實現方式簡單靈活。文中給出的硬件電路僅適用于程序代碼小于32K字的系統中。在一般DSp系統中,都會有FpGA等可編程器件,利用它們可以靈活地對FLASH進行分頁操作。這樣,在程序量超過32K字的情況下,此方法也適用。


技術專區慕展上,世強帶來的SiC、GaN、三電平讓你的效率直達最high點如何利用二級輸出濾波器防止開關電源噪聲陶瓷垂直貼裝封裝(CVMp)的焊接注意事項及布局DC-DC轉換器的平均小信號數學建模及環路補償設計常用基準穩壓電源產生辦法有哪些?

鉅大鋰電,22年專注鋰電池定制

鉅大核心技術能力

主站蜘蛛池模板: 亚洲欧洲精品在线 | 亚洲天堂视频在线免费观看 | 免费av动漫片 | 在线免费看黄的网站 | 三级网站免费观看 | 色噜噜色偷偷 | 免费在线观看一区二区 | 真正免费一级毛片在线播放 | 一区二区三区中文国产亚洲 | 啪视频网站 | 久久精品国产一区二区 | 99re视频这里只有精品 | 自拍偷拍国语对白 | 国产高清在线视频一区二区三区 | 免费色视频 | 韩国演艺圈精品一区二区 | 亚洲伦理网站 | 国产精品国产自线拍手机观看 | 99热精品久久只有精品黑人 | 亚洲男人天堂色 | 重口调教女虐女长篇小说 | 四虎在线最新地址4hu | 国产真实系列在线 | 2022国产精品视频 | 成人黄色在线 | 窝窝影院午夜色在线视频 | 国产新疆成人a一片在线观看 | 麻豆视传媒 | 亚洲精品www | 91网站入口最新 | 亚洲免费成人网 | 九九色播 | 午夜精品久久久久久91 | 日韩欧美高清在线观看 | 在线亚洲欧美 | 久久久久久9 | 国产中文字幕在线 | 免费观看男女羞羞的视频网站 | 免费精品国偷自产在线读大二 | 毛片网站在线观看 | 国产九九精品视频 |