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