www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式開發(fā)系統(tǒng)編程文件格式解析

摘要: 嵌入式系統(tǒng)編程文件格式多種多樣。為方便嵌入式系統(tǒng)開發(fā)和深度理解各種目標(biāo)系統(tǒng),論文詳細(xì)分析了多種主流的嵌入式可執(zhí)行文件(即機(jī)器碼文件)格式。比較了不同格式的異同點(diǎn),并介紹了各種嵌入式文件格式的主要硬件系統(tǒng)及目標(biāo)器件。

1  常見文件格式解析

雖然不同的開發(fā)集成環(huán)境和不同的硬件架構(gòu)使得嵌入式設(shè)備中可執(zhí)行文件的格式不盡相同,但基本上包含以下一些典型特征:

① 可執(zhí)行文件的基本信息,如文件大小、時(shí)間、權(quán)限等。

② 與硬件架構(gòu)相關(guān)的二進(jìn)制代碼和數(shù)據(jù)。

③ 符號(hào)表與符號(hào)重定位表。

從文件本身所包含的信息來看,嵌入式系統(tǒng)可執(zhí)行文件主要有:純數(shù)據(jù)類文件,記錄類文件以及描述類文件。

1.1  純數(shù)據(jù)文件格式

純數(shù)據(jù)文件就是指文件中不包含地址和校驗(yàn)信息等,只包含純粹的用戶數(shù)據(jù)。純數(shù)據(jù)文件主要包括兩種:BIN格式和HEX格式。BIN格式即二進(jìn)制的文件,使用時(shí)每8位作為一個(gè)字節(jié)來用,傳輸BIN文件時(shí)并不進(jìn)行ASCII編碼。BIN文件格式是沒有結(jié)束標(biāo)記的。顯然,BIN文件格式是除了一些壓縮格式(如ZIP和RAR)之外最節(jié)省空間的格式,它主要是用來編程存儲(chǔ)器器件的,通常會(huì)建議將EPROM數(shù)據(jù)存儲(chǔ)為BIN格式以作為標(biāo)準(zhǔn)文件格式來下載[2].HEX格式相比BIN格式的區(qū)別就是,每個(gè)字節(jié)都轉(zhuǎn)成了2個(gè)0~9和A~F之間值的ASCII碼。整個(gè)文件是分行表示的,每行一般是16或32個(gè)字節(jié),行以空格加回車表示結(jié)束。

1.2  記錄類文件格式

記錄類文件中所有的數(shù)據(jù)行都叫做記錄,每一條記錄一般都分為多個(gè)域來清晰地說明記錄的類型、記錄中數(shù)據(jù)的數(shù)量、數(shù)據(jù)的存儲(chǔ)地址、數(shù)據(jù)校驗(yàn)信息等。而且,記錄類文件一般都有關(guān)于該文件開始和結(jié)束的標(biāo)記信息。各種記錄類文件格式的差異就體現(xiàn)在不同公司定義的記錄標(biāo)記以及一些域格式和順序的差別上。記錄類文件常見的就是各種MCU的燒錄文件。

1.2.1  Intel HEX文件格式(.HEX)

Intel HEX是一種較老的文件格式。它是用ASCII字符來表示文件中數(shù)據(jù)域的二進(jìn)制數(shù)據(jù)。文件中每一行是一條HEX記錄,由一個(gè)回車和一個(gè)換行結(jié)束。Intel HEX文件經(jīng)常被用于將程序或數(shù)據(jù)傳輸存儲(chǔ)到ROM、EPROM,大多數(shù)編程器和模擬器使用Intel HEX文件。

記錄格式如下:

:BBAAAATTHHHH…HHHCC

:--記錄開始標(biāo)記。

BB--長(zhǎng)度域,占一個(gè)字節(jié)。代表這條記錄中數(shù)據(jù)的字節(jié)數(shù),每條記錄最大數(shù)據(jù)字節(jié)數(shù)是255字節(jié),通常為32字節(jié)。長(zhǎng)度域只計(jì)數(shù)數(shù)據(jù)域的大小。

AAAA--地址域,占兩個(gè)字節(jié),存儲(chǔ)方式是MSB.地址域指出這條記錄的第一個(gè)數(shù)據(jù)字節(jié)的地址,隨后地址逐一增加以存儲(chǔ)下面的數(shù)據(jù)。整個(gè)文件中各記錄的地址順序是不重要的,文件中有時(shí)也會(huì)有一段空的地址。

TT--類型域,1字節(jié)。表示該條記錄的類型。

HH--數(shù)據(jù)域,長(zhǎng)度受到記錄類型的限制。數(shù)據(jù)記錄以字節(jié)為單位。

CC--校驗(yàn)和,占一個(gè)字節(jié)。計(jì)算方法是將本記錄中除了冒號(hào)和校驗(yàn)字節(jié)之外的所有字節(jié)加起來,將模除256得到的余數(shù)取補(bǔ)碼。

Intel HEX文件格式的6種記錄說明如表1所列。

表1  Intel HEX文件格式的記錄類型

1.2.2  Motorola S/EXORciser/EXORmacs/32位格式

Motorola公司的產(chǎn)品主要基于Motorola S記錄格式,這種文件格式以一種可打印的格式編碼程序和數(shù)據(jù)文件來實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)間的傳輸,可以使下載文件實(shí)現(xiàn)可視化編輯。S記錄由特殊排列的一串ASCII字符序列組成,最大長(zhǎng)度為78字節(jié)。一個(gè)文件內(nèi)的S記錄一般沒有特定的順序要求。目前主要有3種S記錄文件格式:S19格式,地址域是16位,最大可寫64 Kb的文件;S28格式,地址域24位,最大可寫16 Mb的文件;S37格式,地址域32位,最大可寫4 Gb的文件。

S記錄的一般格式是:類型域--長(zhǎng)度域--地址域--數(shù)據(jù)域--校驗(yàn)和。S記錄的各種記錄類型有不同的格式和意義,具體如表2所列。

Motorola S19(又稱Motorola EXORciser)格式是以S0記錄開始,數(shù)據(jù)記錄都是以S1標(biāo)識(shí)的2字節(jié)地址類型的記錄,S9標(biāo)識(shí)結(jié)束記錄格式。Motorola S28(又稱Motorola EXORmacs)格式是以S0記錄開始,數(shù)據(jù)記錄都是以S2標(biāo)識(shí)的3字節(jié)地址類型的記錄,S8標(biāo)識(shí)結(jié)束記錄格式。Motorola S37(又稱Motorola 32位)格式是以S0記錄開始,數(shù)據(jù)記錄以S3字符標(biāo)識(shí)的4字節(jié)地址類型的記錄,S7標(biāo)識(shí)的結(jié)束記錄格式。

表2  S記錄的記錄類型

1.2.3  TektrONix HEX/擴(kuò)展的Tektronix HEX格式

Tektronix HEX格式如下所示:

/AAAABBEEDDDDDDDDCC

/:記錄開始標(biāo)記符。

AAAA:地址域。占兩個(gè)字節(jié),記錄了第一個(gè)數(shù)據(jù)字節(jié)的地址。

BB:長(zhǎng)度域。占1個(gè)字節(jié),因此每條記錄的最大數(shù)據(jù)個(gè)數(shù)為255字節(jié)。

EE:地址和長(zhǎng)度數(shù)據(jù)的校驗(yàn)和域。大小為1個(gè)字節(jié)。

DD:數(shù)據(jù)域。最大為255個(gè)數(shù)據(jù)字節(jié),但一般記錄中為32個(gè)字節(jié)。

CC:數(shù)據(jù)的校驗(yàn)和域。

文件的結(jié)束記錄中包括記錄開始符("/")、傳輸?shù)刂?、?shù)值為"00"的長(zhǎng)度以及傳輸?shù)刂泛烷L(zhǎng)度的校驗(yàn)和字節(jié)。一種可選擇的中斷記錄以2個(gè)開始符("//")為記錄開始,接著是一串任意的ASCII字符串。

擴(kuò)展的Tektronix HEX相對(duì)Tektronix HEX格式具有較為靈活的記錄類型和地址空間。它包括3種類型的記錄:數(shù)據(jù)、符號(hào)和結(jié)束記錄。數(shù)據(jù)記錄中的是目標(biāo)代碼;符號(hào)記錄中的是編程部分的信息,編程器下載時(shí)符號(hào)記錄是被忽略的;結(jié)束記錄包括頭部、下載地址和目標(biāo)代碼。

擴(kuò)展的Tektronix HEX格式模型如下:

%BBMEEAAAAADDDDDD---DCC

%:占1個(gè)ASCII字符,標(biāo)示擴(kuò)展Tek HEX記錄開始。

BB:長(zhǎng)度域。占1個(gè)字節(jié),表示該記錄中除開始標(biāo)志之外的字節(jié)數(shù)。

M:類型域,一個(gè)ASCII字符。類型域中:6代表數(shù)據(jù)記錄,3代表符號(hào)記錄,8代表結(jié)束記錄。

EE:地址和長(zhǎng)度數(shù)據(jù)的校驗(yàn)和,大小為1個(gè)字節(jié)。

AAAAA:地址域。地址域包括2~17個(gè)字符,第1個(gè)字符決定了地址的長(zhǎng)度,一般為8,0代表16個(gè)字符的地址長(zhǎng)度。地址域第1個(gè)字符之外的字符指出了數(shù)據(jù)在存儲(chǔ)器存放的地址。

DD:數(shù)據(jù)域。包括可執(zhí)行代碼,下載到存儲(chǔ)器的數(shù)據(jù)以及傳輸中的描述信息。

CC:校驗(yàn)和,占一個(gè)字節(jié)。校驗(yàn)和域?qū)Ρ緱l記錄中除了"%"和校驗(yàn)數(shù)據(jù)本身之外的所有數(shù)據(jù)計(jì)算校驗(yàn)和。

根據(jù)是否有數(shù)據(jù)和結(jié)束記錄,記錄中域的數(shù)量是不一樣的,2種記錄都有6個(gè)字符的頭以及2~17個(gè)字符的地址。

1.3  描述類文件格式

描述類文件格式的文件信息有相對(duì)豐富的文件格式,文件不僅有關(guān)于數(shù)據(jù)的記錄信息,還包含了關(guān)于目標(biāo)機(jī)的一些說明信息,改變硬件結(jié)構(gòu)的信息或者測(cè)試信息等。該類型的文件最常見的是用于PLD和FPGA的下載文件。

1.3.1  JEDEC 文件

JEDEC(Joint Electron Device Engineering Council)標(biāo)準(zhǔn)是用于現(xiàn)場(chǎng)可編程邏輯器件的。該標(biāo)準(zhǔn)定義了在開發(fā)系統(tǒng)和編程器之間傳輸熔絲狀態(tài)的數(shù)據(jù)格式。它并不涉及諸如邏輯陣列類型和輸出宏單元等設(shè)備結(jié)構(gòu)信息?,F(xiàn)場(chǎng)可編程邏輯器件比可編程的存儲(chǔ)器件需要更多的測(cè)試信息,所以該標(biāo)準(zhǔn)還定義了一些簡(jiǎn)單的測(cè)試格式。JEDEC格式的合法字符包括所有可打印的ASCII字符和4個(gè)控制字符,包括STX(Start of Text)、ETX(End of Text)、CR(Carriage Return)和LF(Line Feed)。一般使用BNF(BackusNaur Form,巴科斯諾爾范式)來定義JEDEC格式的語法。

JEDEC格式的第1個(gè)域是強(qiáng)制的關(guān)于設(shè)備信息設(shè)計(jì)規(guī)格書,這個(gè)域沒有開始標(biāo)記符。在JEDEC文件中每一個(gè)域都有域識(shí)別符以指明該域的類型,每一個(gè)域都是以星號(hào)結(jié)束。JEDEC文件各種域識(shí)別符如表3所列。

描述及定義域主要用來說明用戶和廠商信息、日期和版本號(hào)等各種信息。

N--說明域。用來在JEDEC文件傳輸中插入說明信息,編程器是忽略這一域的。

D--器件域。編程器支持的器件并不是遵從這一域,而是由QF和QP域以及手動(dòng)選擇器件而決定。

QF,QP和QV--數(shù)值域。QF子域定義了器件中熔絲的數(shù)量,在器件編程或者測(cè)試域之前,這些數(shù)值域都是必須的;只有測(cè)試域的文件不需要QF域,編程數(shù)據(jù)的文件不需要QP和QV域;QF子域向編程器指出了熔絲數(shù)據(jù)需要多少存儲(chǔ)器,多少熔絲要被設(shè)置到初始條件以及計(jì)算校驗(yàn)和所包含的熔絲數(shù);QP子域定義了測(cè)試向量中的引腳數(shù)目或者測(cè)試條件;QV子域指出了測(cè)試向量的最大數(shù)。

器件編程域。每一個(gè)熔絲有2種可能的狀態(tài):0為低阻連接,1為高阻連接。熔絲編號(hào)從0開始一直到最大熔絲數(shù)目。L域中L之后是該域第一個(gè)熔絲的十進(jìn)制序號(hào)數(shù)字,接下來就是指示熔絲狀態(tài)的二進(jìn)制數(shù)字列表,熔絲號(hào)和熔絲列表之間由空格或者回車分開。F域定義了L域中未明確定義的熔絲狀態(tài)信息。C域是把從第一個(gè)熔絲開始的整個(gè)器件的熔絲狀態(tài)每8位作為一個(gè)字節(jié)來計(jì)算的,最后一個(gè)字中若有未使用的位則填0.U域允許指定JEDEC文件中的不影響邏輯和電特性的用戶數(shù)據(jù)熔絲。E域允許定義不影響器件邏輯功能也不影響已有的JEDEC文件的特性,數(shù)據(jù)可以用二進(jìn)制或者十六進(jìn)制來表示。J--器件標(biāo)識(shí)域。提供邏輯識(shí)別碼指出文件對(duì)應(yīng)器件的邏輯結(jié)構(gòu),由以空格分開的分別大于等于0的2個(gè)十進(jìn)制數(shù)組成:第1個(gè)是結(jié)構(gòu)碼,第2個(gè)是引腳碼。J域中的編碼是由JEDEC組織分配的。

設(shè)備測(cè)試域。功能性的測(cè)試由測(cè)試向量包含的測(cè)試條件來定義,每一個(gè)測(cè)試向量包括n個(gè)測(cè)試條件。n是器件引腳數(shù),測(cè)試條件如表4所列。

X--默認(rèn)測(cè)試條件域。定義了未精確定義的測(cè)試向量的輸入邏輯電平,即把QV域中的測(cè)試向量1設(shè)置為默認(rèn)輸入測(cè)試條件。若使用X域,應(yīng)當(dāng)在QV和QP域之后第一個(gè)測(cè)試向量之前。V--測(cè)試向量域。由十進(jìn)制的向量編號(hào)開始,之后是空格以及每個(gè)引腳的一串測(cè)試條件。P--Pin引腳序列域。P域映射出了器件輸出引腳,一般和V域一起使用。代碼如下所示:

P 1 2 3 4 5 6 14 15 16 17 7 8 9 10 11 12 13 18 19 20 *

V0001 111000HLHHNNNNNNNNNN*

V0002 100000HHHLNNNNNNNNNN*

編程及測(cè)試選項(xiàng)類域:G為熔絲安全域。用來使能某些邏輯器件的加密熔絲,在G域發(fā)送1,即G1*;R、S、T為屬性分析測(cè)試;A為訪問時(shí)間域,定義了測(cè)試向量在十億分之一秒內(nèi)的傳播延時(shí)。

表3  JEDEC文件各種域識(shí)別符

表4  設(shè)備引腳的各種測(cè)試條件

1.3.2  POF文件

POF文件中的包類型如表5所列。POF(Programmer Object File, 編程目標(biāo)文件) 格式提供高度壓縮的數(shù)據(jù)文件,可方便有效地傳輸大量的邏輯器件編程信息。這種文件目前主要應(yīng)用于MAX系列器件。POF文件由文件頭和各種包組成,每個(gè)包對(duì)應(yīng)一個(gè)標(biāo)記,指出包中的數(shù)據(jù)類型以及數(shù)據(jù)本身結(jié)構(gòu),各個(gè)包的長(zhǎng)度和結(jié)構(gòu)各異。每個(gè)數(shù)據(jù)包的最前6個(gè)字節(jié)是包類型和其余字節(jié)的數(shù)量。編程設(shè)備在讀取POF文件時(shí),若包類型未被識(shí)別,則該包棄之不用。在一個(gè)POF文件中,除了結(jié)束標(biāo)記包外,各種類型都可多次出現(xiàn)。有些包編程器是需要包中信息的,有些包編程器是不使用的(跳過),有些包則是編程器只讀包中信息但不直接應(yīng)用該信息的(只讀)。

表5  POF文件中的包類型

2  總結(jié)

為方便用戶使用,目前大多數(shù)主流公司生產(chǎn)的編程器都能夠在下載文件時(shí)自動(dòng)進(jìn)行某幾種文件格式的檢測(cè)識(shí)別以及文件格式的轉(zhuǎn)換。然而這畢竟解決不了文件格式之間互不兼容的實(shí)際問題。因此,我們期望在未來幾年內(nèi)文件格式可以逐步走向統(tǒng)一,擁有一種或少數(shù)幾種格式標(biāo)準(zhǔn)。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉