嵌入式大家肯定是很熟悉了,但是要說到嵌入式開發(fā)中的處理器的話達(dá)內(nèi)科技相信很多的人還是不了解的,也更加是不知道嵌入式開發(fā)培訓(xùn)中為什么要用處理器的,今天達(dá)內(nèi)科技的小編就來給大家整理下。
嵌入式開發(fā)培訓(xùn)中 大規(guī)模的并行運算:想利用多個CPU的特點,如DM642這樣的方案,應(yīng)用于復(fù)雜的視頻方案。想利用DSP的浮點計算能力,同時也使用ARM的事務(wù)計算能力。
嵌入式開發(fā)培訓(xùn)中單純的提高系統(tǒng)的性能:對于普通的應(yīng)用,提高系統(tǒng)性能是基本出發(fā)點。但嵌入式系統(tǒng)應(yīng)用多處理器并不是一個簡單的事情。多處理器的軟件設(shè)計難度很大,調(diào)試也是很大的問題。
嵌入式開發(fā)培訓(xùn)中如果不采用操作系統(tǒng)處理,采用前后臺系統(tǒng)。那么自己還要設(shè)計一個通信算法,還要設(shè)計一個結(jié)果整合系統(tǒng)。這樣的系統(tǒng)自己設(shè)計很多東西,其中總線的可靠和容錯設(shè)計至關(guān)重要。所以可能的話,利用成熟穩(wěn)定的操作系統(tǒng)來支持多處理器可以減少不少的開發(fā)難度。然而,尋找這樣的一個操作系統(tǒng)并非易事。
首先要明確自己的應(yīng)用,需要線程進(jìn)程遷移嗎?需要處理器平衡嗎?對于多處理器,如果不支持線程進(jìn)程遷移,那也就談不上處理器任務(wù)的動態(tài)平衡,不然只能事前指定好線程進(jìn)程運行于哪個處理器。對于異構(gòu)型多處理器,線程遷移和進(jìn)程遷移并沒有多大的實際意義。對于追求利益的公司來說,目前還談不上實用價值。所以,遷移只限于對稱處理器。
然而,嵌入式開發(fā)培訓(xùn)中對稱處理器也不是什么進(jìn)程可遷移。對于對稱處理器,操作系統(tǒng)封裝好底層,讓用戶開發(fā)起來像是對一個CPU再做開發(fā),當(dāng)然不可能與單個CPU完全一致,但起碼減輕了許多難度。
那么嵌入式開發(fā)培訓(xùn)中通訊顯得尤為重要,多個RTEMS需要多個系統(tǒng)的TICK,那么TICK從哪里來,CMP共享著很多資源,那么就要求,使用者必須為RTEMS手動的指定中斷源,劃分內(nèi)存空間,這就造成了,CMP上的多個CPU雖然都是跑RTEMS,但是想關(guān)于CPU的驅(qū)動很多都是不一樣的。這種緊耦合的系統(tǒng)是非常難辦的。
嵌入式開發(fā)培訓(xùn)中相對于CMP,同 種CPU組成的SMP就要簡單一些,因為全部驅(qū)動都是一樣的,可能會因為通信方式的問題,通信驅(qū)動要特殊處理一下,但這會極大的減輕了開發(fā)的壓力和調(diào)試的難度??偤帽让總€CPU一個Core,那是要崩潰了。特別是調(diào)試問題,所以從經(jīng)濟(jì)角度的問題考慮,還是比較喜歡這種多個相同的單個CPU組成的多處理器系統(tǒng)。
很多時候,嵌入式開發(fā)培訓(xùn)中對于那個異構(gòu)型的處理器,當(dāng)然用RTEMS也可以輕松擺平,但是還是一個問題,多個核心需要自己的RTEMS支持,開發(fā)多有不便。況且,操作系統(tǒng)的調(diào)試還是比較復(fù)雜的。所以現(xiàn)實版的方案都是,異構(gòu)型處理器當(dāng)中負(fù)責(zé)事務(wù)運算的處理器跑操作系統(tǒng),而負(fù)責(zé)計算的處理器采用前后臺系統(tǒng),簡單的通過共享內(nèi)存通訊,響應(yīng)操作系統(tǒng)的計算請求。
這樣大大的減小了開發(fā)難度,反正嵌入式開發(fā)培訓(xùn)中操作系統(tǒng)把DSP當(dāng)作了個硬件的寄存器,寫幾個寄存器就能得到結(jié)果,或者是輸入一組天文一樣的數(shù)據(jù),得到一個復(fù)雜的結(jié)果。Anyway,總之這樣的反應(yīng)式的處理方式是絕大部分工程中采用的方式。就是簡單、可靠、實用。