在早期開發(fā)微處理器的嵌入式軟件時(shí),條件比較簡單,只有一個(gè)CPU、數(shù)量有限的存儲(chǔ)器、若干I/O、還可能有簡單的網(wǎng)絡(luò)。
今天,情況已經(jīng)變化。嵌入式系統(tǒng)可能是多CPU,甚至是DSP和CPU的組合。存儲(chǔ)器和數(shù)據(jù)率都屬于海量,此外,開發(fā)隊(duì)伍遍布全球,而且客戶要求提供幾乎不可能達(dá)到的可靠性。
嵌入式軟件供應(yīng)商怎樣才能夠滿足開發(fā)商的需要,包括消息傳送、存儲(chǔ)器管理、CPU/DSP之間的通信、容錯(cuò)和系統(tǒng)級(jí)開發(fā)工具呢?
當(dāng)DSP越來越復(fù)雜和更加強(qiáng)大時(shí),開發(fā)商逐漸認(rèn)識(shí)到,必須在這些器件上運(yùn)行實(shí)時(shí)操作系統(tǒng)。當(dāng)執(zhí)行多任務(wù)時(shí),實(shí)時(shí)操作系統(tǒng)能夠有效地使用DSP的資源,并且對(duì)誤差處理和存儲(chǔ)器地址分配等作業(yè)有幫助。
對(duì)于TigerSHARC等DSP,實(shí)時(shí)操作系統(tǒng)通過“鏈接端口”處理通信,控制其它CPU和DSP,并且產(chǎn)生同步。為CPU和DSP同時(shí)提供通用的API(應(yīng)用程序接口)可改善開發(fā)時(shí)間、編寫文件和代碼維護(hù)。
實(shí)時(shí)操作系統(tǒng)結(jié)構(gòu)的一項(xiàng)重要進(jìn)步是內(nèi)部處理通信能力—嵌入式系統(tǒng)的作業(yè)如何與其它作業(yè)交換數(shù)據(jù)。傳統(tǒng)辦法是分享存儲(chǔ)器的“信箱”,采用信號(hào)量進(jìn)行存取和控制。

圖1消息的通過

圖2錯(cuò)誤的處理
隨著嵌入式系統(tǒng)變得更為復(fù)雜。許多開發(fā)團(tuán)隊(duì)轉(zhuǎn)而使用異步的信息通行結(jié)構(gòu)(參閱圖1)。從程序員的觀點(diǎn)來看,例如在OSE實(shí)時(shí)操作系統(tǒng)中,作業(yè)只要簡單地發(fā)送消息和另一個(gè)作業(yè)接收消息。這樣做的優(yōu)點(diǎn)很多,由于實(shí)時(shí)操作系統(tǒng)處理了存儲(chǔ)器的地址分配,系統(tǒng)的調(diào)用數(shù)就減少。作業(yè)可在系統(tǒng)內(nèi)任何地方接收。甚至可通過背板接收到在另一塊電路板的作業(yè);不管作業(yè)在哪里,實(shí)時(shí)系統(tǒng)都可對(duì)它進(jìn)行處理,事實(shí)上,消息通行的異步方式是指一個(gè)作業(yè)不能鎖住另一個(gè)正在等候信號(hào)的作業(yè);有時(shí)候在復(fù)雜的分布系統(tǒng)中,這樣做是很重要的。
異步的消息通行結(jié)構(gòu)還有另外的優(yōu)點(diǎn),它可將項(xiàng)目劃分成幾部分,再分配到幾個(gè)小組作并行開發(fā)。
存儲(chǔ)器管理是另一個(gè)結(jié)構(gòu)問題。當(dāng)系統(tǒng)要得更加動(dòng)態(tài)和更加著重存儲(chǔ)器時(shí),嵌入式系統(tǒng)的存儲(chǔ)器管理就變得十分重要。在動(dòng)態(tài)系統(tǒng)中,一個(gè)不可避免的問題是數(shù)據(jù)分段。雖然無用信息收集法可作為一種解決方案,但是它的風(fēng)險(xiǎn)會(huì)影響到系統(tǒng)的實(shí)時(shí)性能。
OSE實(shí)時(shí)操作系統(tǒng)正用于全球的基站中,經(jīng)常放置在遠(yuǎn)端臺(tái)站。對(duì)網(wǎng)絡(luò)供應(yīng)商來說,損失客房的空中時(shí)間或票據(jù)信息都是不可取的。OSE用兩種地址分配方式來消除分段,“堆置(heap)”,根據(jù)黃金分割法的順序分配存儲(chǔ)器地址,從而限制分段;輪詢緩沖器(a pool of buffers),此時(shí)任務(wù)分配為輪詢存儲(chǔ)器,而且只分配到預(yù)定容量的緩沖器中。一旦某個(gè)緩沖器被使用,它就回到系統(tǒng)內(nèi)。結(jié)果是輪詢的全部存儲(chǔ)器隨時(shí)保持“可用”狀態(tài)。這種辦法還有一些重要特點(diǎn),如不會(huì)受到存儲(chǔ)器搜索延時(shí)的影響。
現(xiàn)代實(shí)時(shí)操作系統(tǒng)結(jié)構(gòu)的進(jìn)展是誤差處理(參閱圖2)。在傳統(tǒng)系統(tǒng)中,軟件開發(fā)者為了處理可能發(fā)生的任何錯(cuò)誤,在系統(tǒng)訪問后必須編寫“差錯(cuò)代碼”,例如,出現(xiàn)失效的存儲(chǔ)器地址分配錯(cuò)誤。不難想到,當(dāng)項(xiàng)目越大和開發(fā)隊(duì)伍擴(kuò)大時(shí),將有許多人寫出大量的差錯(cuò)碼。在OSE結(jié)構(gòu)中,錯(cuò)誤處理是內(nèi)建在系統(tǒng)訪問的運(yùn)作。
從程序員的觀點(diǎn)來看,應(yīng)用提出對(duì)系統(tǒng)訪問,而實(shí)時(shí)操作系統(tǒng)完成其它工作。如果系統(tǒng)訪問失敗,則內(nèi)核將調(diào)用中央錯(cuò)誤處理器去解決問題。
這樣做有很多好處。第一,應(yīng)用碼更加緊湊和可靠,而且開發(fā)和排錯(cuò)也更快。第二,更多錯(cuò)誤處理可在系統(tǒng)級(jí)進(jìn)行,構(gòu)成更牢靠的容錯(cuò)系統(tǒng)。
各種處理器之間的通信
嵌入式開發(fā)的最重要發(fā)展趨勢(shì)也許就是混合設(shè)計(jì)和多CPU/DSP設(shè)計(jì)了。這種設(shè)計(jì)有系統(tǒng)級(jí)、電路板級(jí)、甚至芯片級(jí),例如,集成器件諸如TI公司的OMAP,它的特點(diǎn)是ARM核和一個(gè)DSP結(jié)合。
實(shí)時(shí)操作系統(tǒng)開發(fā)商加緊CPU和DSP兩者的開發(fā),但是怎樣解決DSP與CPU的通信呢?Enea嵌入式科技公司構(gòu)建了一種鏈接處理器。它是實(shí)時(shí)操作系統(tǒng)的一部分,用來處理整個(gè)系統(tǒng)內(nèi)各任務(wù)的分散消息,不管消息來自鄰近的DSP或是在另一插卡上的CPU。它的工作能夠跨越大部分通信機(jī)制,包括以太網(wǎng)、串行口、CAN和Compact PCI等。這種鏈接處理器是智能的,能夠檢測出傳輸機(jī)制的故障和尋找出新的路由。它還能夠根據(jù)名稱來分配任務(wù),甚至發(fā)送不知道接收方的位置/路徑的任務(wù)。
構(gòu)建在鏈接處理器上,OSE的開發(fā)人員開發(fā)出兩種系統(tǒng)訪問方式,稱為“搜索”和“連接”?!八阉鳌痹L問讓某一任務(wù)決定需要與另一任務(wù)通信的路徑。一旦知道路徑后,該任務(wù)即可“連接”上接收的任務(wù)。同時(shí)表明,如果該任務(wù)遇到有任何事件發(fā)生,則內(nèi)核將會(huì)告知發(fā)送任務(wù)方。接收任務(wù)所駐留的電路板是否已移走或失效,都會(huì)告訴發(fā)送方。因而,該任務(wù)可將(失效)的復(fù)印件重新“搜索”一次,或者將一份新的接收方任務(wù)復(fù)印件送到(熱插拔)的替換電路板上。
縮短開發(fā)時(shí)間
面市時(shí)間是大事迫使軟件和工具供應(yīng)商提出解決方案。例如Ericsson等公司的許多前階段開發(fā),在實(shí)際硬件未完成前是在OSE的“軟內(nèi)核”上進(jìn)行的,軟內(nèi)核是一種已移植到Windows上的一種實(shí)時(shí)操作系統(tǒng),使工程師能夠在臺(tái)式PC上開發(fā)代碼。這種開發(fā)環(huán)境可支持多內(nèi)核,甚至支持鏈接處理器技術(shù)。
在查錯(cuò)階段,許多工作可使用“系統(tǒng)級(jí)”查錯(cuò)工具。工具對(duì)運(yùn)行在系統(tǒng)內(nèi)的任務(wù),狀態(tài)以及性能提供可見度,工具可動(dòng)態(tài)地分析存儲(chǔ)器的使用情況;用一個(gè)任務(wù)或一組任務(wù)分析對(duì)CPU的要求;對(duì)通過系統(tǒng)的消息進(jìn)行跟蹤;甚至可讓工程師在系統(tǒng)級(jí)上設(shè)置斷點(diǎn),以及對(duì)運(yùn)行中的系統(tǒng)注入測試和分析用的信號(hào)。因而,工程師即可在工作臺(tái)上而無需在現(xiàn)場快速查錯(cuò)。
- 多處理器(9209)
- 入式系統(tǒng)(9935)
異構(gòu)多處理器產(chǎn)品系列在嵌入式評(píng)估板上實(shí)現(xiàn)
8715GPGPU的流式多處理器微架構(gòu)原理解析
168532位嵌入式處理器的市場
嵌入式處理器是什么
嵌入式處理器是什么
嵌入式處理器的分類
嵌入式處理器的各種類別
嵌入式處理器簡介
嵌入式系統(tǒng)中單片機(jī)與處理器區(qū)別及散熱設(shè)計(jì)分析
嵌入式Linux多線程編程
嵌入式云計(jì)算與視頻大數(shù)據(jù)——基于TI嵌入式處理器
嵌入式分布模塊控制系統(tǒng)設(shè)計(jì)方案
嵌入式微處理器如何選擇
CH32V103基礎(chǔ)教程65-USART-多處理器通信
SoC 多處理器混合關(guān)鍵性系統(tǒng)
為嵌入式系統(tǒng)選擇合適的多處理器(一)
什么是嵌入式系統(tǒng)?ARM處理器有幾種尋址方式
什么是MSP430多處理器?MSP430多處理器有哪些技術(shù)要點(diǎn)?
你怎么看8位、16位、32位及64位嵌入式處理器?
分享一種不錯(cuò)的基于NiosII的SOPC多處理器系統(tǒng)設(shè)計(jì)方法
多核處理器SoC設(shè)計(jì)怎么才能滿足嵌入式系統(tǒng)應(yīng)用?
如何在多處理器系統(tǒng)中使用EMIF?
求一種多處理器并行計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)方案
求一種在多處理器系統(tǒng)中的Nios II軟核處理器的啟動(dòng)方案
請(qǐng)問如何實(shí)現(xiàn)片上嵌入式Nios Ⅱ軟核六處理器系統(tǒng)的設(shè)計(jì)?
請(qǐng)問有誰做過串口的多處理器通信嗎?
總線可重配置的多處理器架構(gòu)
11一種基于共享總線的冗余容錯(cuò)多處理器系統(tǒng)
11基于21554的無主多處理器系統(tǒng)實(shí)現(xiàn)
16異構(gòu)多處理器系統(tǒng)Cache一致性解決方案
11多處理器分組實(shí)時(shí)調(diào)度算法
11嵌入式處理器和嵌入式操作系統(tǒng)
2127基于NiosII的SOPC多處理器系統(tǒng)設(shè)計(jì)方法
1447
嵌入式異構(gòu)多處理器系統(tǒng)中的通信實(shí)現(xiàn)
47異質(zhì)性多處理器嵌入式系統(tǒng)微核心之設(shè)計(jì)與實(shí)作
23為嵌入式系統(tǒng)選擇合適的多處理器
28片上嵌入式多處理器的一致性機(jī)制設(shè)計(jì)
911怎樣使用Nios II處理器來構(gòu)建多處理器系統(tǒng)
19嵌入式多媒體應(yīng)用的多處理器核軟件設(shè)計(jì)框架解析
0滿足嵌入式系統(tǒng)應(yīng)用的多核處理器SoC設(shè)計(jì)
437面向異構(gòu)多處理器設(shè)備的自適應(yīng)命令解釋系統(tǒng)
0嵌入式處理器匯總_常見的嵌入式處理器對(duì)比分析
14703用于多處理器實(shí)時(shí)系統(tǒng)可調(diào)度性分析模板
0嵌入式處理系統(tǒng)4_多DSP系統(tǒng)入
8如何構(gòu)建基于處理器的嵌入式安全系統(tǒng)?
3074
使用Visual DSP++4.0開發(fā)TigerSHARC DSP多處理器系統(tǒng)及其應(yīng)用的說明
7嵌入式系統(tǒng)教程之嵌入式處理器的詳細(xì)資料說明
18嵌入式教程之嵌入式實(shí)時(shí)操作系統(tǒng)RTEMS的詳細(xì)資料介紹
27嵌入式處理器是怎樣分類的
5300
什么是同步多處理器
1451嵌入式微處理器定義_嵌入式微處理器的分類
3753使用ARM實(shí)現(xiàn)嵌入式處理器的最小系統(tǒng)
16常見的嵌入式處理器分類對(duì)比
2732嵌入式處理器的分類對(duì)比分析詳細(xì)說明
13ADSP-BF561:Blackfin嵌入式對(duì)稱多處理器數(shù)據(jù)手冊(cè)
9AD14060/AD14060L:Quad-SHARC?多處理器DSP系列產(chǎn)品手冊(cè)
1EE-167:使用VisualDSP++?的TigerSHARC?多處理器系統(tǒng)簡介
12基于多處理器系統(tǒng)的串行通信方式研究
2583
ARM處理器與嵌入式系統(tǒng)
5嵌入式控制系統(tǒng)的ARM處理器
3嵌入式處理器
1嵌入式處理器
3GPGPU流式多處理器架構(gòu)及原理
3634GPGPU流式多處理器架構(gòu)剖析(上)
3009
GPGPU流式多處理器架構(gòu)剖析(下)
2626
嵌入式處理器有哪些種類 目前主流的嵌入式處理器架構(gòu)有哪些
11421基于VPX6—460的多處理器通信設(shè)計(jì)
0基于VPX6-460的多處理器通信設(shè)計(jì)
0嵌入式處理器簡介和種類
1863嵌入式微處理器的原理和應(yīng)用
1842什么是嵌入式微處理器?嵌入式微處理器有哪些?
1956為Xilinx? Zynq?UltraScale?系列多處理器中的VCCINT_VCU軌供電
0對(duì)稱多處理器和非對(duì)稱多處理器的區(qū)別
3111對(duì)稱多處理器的特點(diǎn)是什么
1595EE-202:將專家鏈接器用于多處理器LDFs
0EE-148:使用VisualDSP的SHARC多處理器系統(tǒng)簡介
0EE-167:使用VisualDSP的TigerSHARC多處理器系統(tǒng)簡介
0
電子發(fā)燒友App




評(píng)論