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

圖1消息的通過

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




評論