嵌入式開(kāi)發(fā)是指利用分立元件或集成器件進(jìn)行電路設(shè)計(jì)、結(jié)構(gòu)設(shè)計(jì),再進(jìn)行軟件編程(通常是高級(jí)語(yǔ)言),實(shí)驗(yàn),經(jīng)過(guò)多輪修改設(shè)計(jì)、制作,最終完成整個(gè)系統(tǒng)的開(kāi)發(fā)。這種嵌入式開(kāi)發(fā),適用于未來(lái)產(chǎn)品比較單一,產(chǎn)量比較大,產(chǎn)品開(kāi)發(fā)周期比較長(zhǎng),成本控制比較嚴(yán)格的系統(tǒng)。接下來(lái)我給大家介紹一下嵌入式開(kāi)發(fā)的關(guān)鍵技術(shù)是什么?應(yīng)該考慮哪些因素?
一、嵌入式開(kāi)發(fā)的關(guān)鍵技術(shù)是什么?
1.開(kāi)發(fā)過(guò)程中的相關(guān)技術(shù)
在嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中,主要包括宿主機(jī)與目標(biāo)機(jī)兩個(gè)部分的開(kāi)發(fā),宿主機(jī)能夠?qū)η度胧较到y(tǒng)中的代碼編譯、定址及鏈接進(jìn)行執(zhí)行,而目標(biāo)機(jī)則是嵌入式系統(tǒng)中的硬件平臺(tái)。在對(duì)嵌入式系統(tǒng)進(jìn)行開(kāi)發(fā)時(shí),需要將應(yīng)用程序轉(zhuǎn)換成相應(yīng)的二進(jìn)制代碼,這些二進(jìn)制代碼能夠在目標(biāo)機(jī)中運(yùn)行。在上述開(kāi)發(fā)過(guò)程中,主要可分為三個(gè)步驟,分別是編譯過(guò)程;鏈接過(guò)程與定址過(guò)程,其中,嵌入式系統(tǒng)中的交叉編譯器能夠進(jìn)行編譯,交叉編譯器屬于一種計(jì)算機(jī)平臺(tái)中的代碼生成編譯器,較為常見(jiàn)的交叉編譯器是GNU C/C++(gcc),它會(huì)將所有編譯完成的目標(biāo)文件均和一個(gè)目標(biāo)文件進(jìn)行鏈接,這便是鏈接過(guò)程。而定址過(guò)程則會(huì)在目標(biāo)文件的各個(gè)偏移位置對(duì)相應(yīng)的物理存儲(chǔ)器地址進(jìn)行指定,在定址過(guò)程中所生成的文件便是二進(jìn)制文件。在嵌入式系統(tǒng)調(diào)試過(guò)程中,主要是利用交叉調(diào)試器來(lái)進(jìn)行,其調(diào)試方式通常采用宿主機(jī)-目標(biāo)機(jī)形勢(shì),宿主機(jī)與目標(biāo)機(jī)之間的連接是通過(guò)以太網(wǎng)或串行口線來(lái)實(shí)現(xiàn)的,在交叉調(diào)試任務(wù)中,主要包括任務(wù)級(jí)調(diào)試、匯編級(jí)調(diào)試與源碼級(jí)調(diào)試,在調(diào)試過(guò)程中需要將宿主機(jī)中存儲(chǔ)的系統(tǒng)內(nèi)核與應(yīng)用程序分別下載到目標(biāo)機(jī)當(dāng)中的RAM或ROM當(dāng)中。當(dāng)目標(biāo)機(jī)運(yùn)行后,會(huì)對(duì)宿主機(jī)中的調(diào)試器控制命令進(jìn)行接收,同時(shí)配合調(diào)試器來(lái)對(duì)應(yīng)用程序進(jìn)行下載、運(yùn)行與調(diào)試,然后將調(diào)試信息發(fā)送到宿主機(jī)當(dāng)中。
2.軟件移植技術(shù)
在嵌入式系統(tǒng)開(kāi)發(fā)中,軟件移植技術(shù)無(wú)疑是其中的一項(xiàng)關(guān)鍵技術(shù),其是以移植協(xié)議來(lái)完成軟件功能移植的,在移植協(xié)議中主要包括三個(gè)部分,分別是字節(jié)順序、字節(jié)對(duì)齊與位段空間分配。在字節(jié)順序中,現(xiàn)有的字節(jié)順序主要包括小段字節(jié)與大段字節(jié)兩種方式,小段字節(jié)順序是依據(jù)存儲(chǔ)地址中的數(shù)據(jù)排列順序來(lái)實(shí)現(xiàn)的,也就是低地址用于存儲(chǔ)低字節(jié)數(shù)據(jù),高地址則用于存儲(chǔ)高字節(jié)數(shù)據(jù)。而大段字節(jié)則恰好與小段字節(jié)的排序順序是對(duì)調(diào)的。在字節(jié)對(duì)齊方面,現(xiàn)有的字節(jié)對(duì)齊方式非常多,其主要是以GCC中的MakeFile命令來(lái)編譯字節(jié),然后對(duì)這些字節(jié)進(jìn)行對(duì)齊,不過(guò)這種對(duì)齊方式會(huì)存在一些缺陷,因此需要在收數(shù)據(jù)包位置與發(fā)數(shù)據(jù)位置中分別加入相應(yīng)的拆包函數(shù)與組包函數(shù),以此提高嵌入式系統(tǒng)中軟件的互通性與移植性。位段空間分配也是軟件移植技術(shù)中的重要因素,通常在對(duì)位段進(jìn)行分配時(shí),其順序應(yīng)從左至右進(jìn)行,也有一部分系統(tǒng)是從右向左進(jìn)行的。通過(guò)位段排序來(lái)確保嵌入式系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確保存,并利用編程方法來(lái)編譯位段排序,這樣在位段排序過(guò)程中只需要將對(duì)應(yīng)的程序進(jìn)行直接調(diào)用即可。
二、嵌入式開(kāi)發(fā)應(yīng)該考慮哪些因素?
1.功能可靠實(shí)用,便于升級(jí);
2.實(shí)時(shí)并發(fā)處理,及時(shí)響應(yīng);
3.體積符合要求,結(jié)構(gòu)緊湊;
4.接口符合規(guī)范,易于操作;
5.配置精簡(jiǎn)穩(wěn)定,維護(hù)便利;
6.功耗嚴(yán)格管理,成本低廉。
-
嵌入式
+關(guān)注
關(guān)注
5088文章
19159瀏覽量
306506 -
嵌入式開(kāi)發(fā)
+關(guān)注
關(guān)注
18文章
1034瀏覽量
47637
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論