使用嵌入式處理器對可編程邏輯器件重編程
2.3.1 程序存儲空間(ROM)使用情況
所需程序存儲空間為:
Jam Player的大小由使用的嵌入式處理器以及接口邏輯的復雜度決定,Jam文件總的程序存儲空間由JTAG鏈上正在被編程的器件數(shù)量決定。如果JTAG鏈上只有一個器件,該器件對應Jam文件的大小即為所需程序存儲空間的大小。Jam文件的大小還取決于目標器件,在壓縮后一般在26K字節(jié)到30K字節(jié)。假設JTAG鏈中有3個器件,所有3個器件都將要編程,所需Jam文件存儲空間將為3個Jam文件大小的總和。表1給出了單器件所需要程序存儲空間的情況。
表1 單器件需要的程序存儲空間
2.3.2 動態(tài)內(nèi)存(RAM)的使用情況
所需RAM 空間為:
Jam 文件需要的RAM 空間與ROM 空間大小一樣,在程序存儲空間使用情況里已經(jīng)討論過了。在Jam Player從ROM 讀出Jam 文件存儲到RAM 之后,Jam Player 對Jam 文件里的壓縮數(shù)據(jù)解壓并將解壓后的數(shù)據(jù)存儲到RAM。解壓后的數(shù)據(jù)占用RAM 空間的大小可以通過Jam 文件里的ACA 變量來得到。每個ACA 變量都在“變量聲明/初始化”部分列出,每個數(shù)組的大小由變量聲明方括號里的數(shù)值決定。例如:
說明解壓后的ACA變量大小為434460比特,也就是大約53K字節(jié)。
符號表的大小由下式給出:
一個變量或標記名稱的大小為48字節(jié),JAM_C_MAX_SYMBOL_COUNT在jamdefs.h文件里定義,默認值為1021。實際上大多數(shù)Jam文件最多使用400個變量和標記名稱。將JAM_C_MAX_SYMBOL_COUNT修改為400能節(jié)省一部分動態(tài)內(nèi)存,
相比較Jam Player使用的總RAM空間大小而言堆棧和堆需要很少的RAM,jamdefs.h文件里的JAMC_MAX_NESTING_DEPTH常量定義堆棧的最大深度。表2給出了單器件所需要RAM空間的情況。
表2 單器件需要的RAM 空間
3 結論
本文通過軟件、硬件以及內(nèi)存的使用情況等方面的介紹,詳細描述了一種通過嵌入式處理器使用Jam編程與測試語言對ISR器件重編程的新方法,為在產(chǎn)品原型及制造階段對可編程邏輯器件重編程提供了參考,具有很強的實用意義。
本文作者創(chuàng)新點:由于在產(chǎn)品原型及制造階段,單板上的JTAG接口很可能出于產(chǎn)品外形及內(nèi)部結構設計的考慮已經(jīng)無法與下載電纜相連接,此時將無法通過下載電纜對可編程邏輯器件重編程。而通過串行接口或以太網(wǎng)接口將可編程邏輯器件的更新程序發(fā)送到處理器,由處理器對可編程邏輯器件重編程,解決了這個難題。
參考文獻
[1] 杜延,劉從越.嵌入式實時系統(tǒng)軟件測試實踐[J].微計算機信息,2007,4-2:86-88.
[2] Kamal,Raj.嵌入式系統(tǒng):體系結構、編程設計[M].清華大學出版社,2005.
[3] 鄭亞民,董曉舟.可編程邏輯器件開發(fā)軟件QuartusII[M].國防工業(yè)出版社,2006.
[4] Stuart,R.Ball.嵌入式微處理器系統(tǒng)設計實例(第三版)[M].電子工業(yè)出版社,2004.
[5] 田澤.嵌入式系統(tǒng)開發(fā)與應用[M].北京航空航天大學出版社,2005.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論