我對嵌入式軟件的理解

嵌入式軟件就是給專門的嵌入式系統設計的軟件,和一般的PC軟件差別不是很大,主要的區別在嵌入式系統對功耗和內存大小上有嚴格的限制,所以嵌入式軟件一定要精簡,高效。

一個嵌入式系統一般都包含以下幾個部分:cpu,存儲器,電源,接口,功能模塊電路。而嵌入式軟件就是用來驅動硬件工作以達到系統的工作目的。

由於嵌入式系統的內存有限,所以軟件大部分是由C寫的,因爲C++,java等語言雖然方便,但是很費內存,但是隨着存儲器的變革,C++最終會取代C的。

作爲一個嵌入式軟件工程師,需要了解一下一些知識:

1.C是必須會的,而且水平要比較高。嵌入式軟件的編程用到很多C裏面平時不常用的語法,比如內聯,靜態等。以及要清楚所有數據類型所佔用的內存。

2.會看懂英文用戶手冊和硬件原理。應爲這方面的很多硬件都是外國生產的,所以要能看懂這些文檔。對於軟件工程師來說,硬件就是一堆寄存器,所以你要看懂硬件裏有哪些寄存器,每個有什麼作用。

3.會一些UI的設計,雖然這方面一般都有專業做界面的人去做,但是也要會一點。

4.知道如何將軟件一直到新的處理器架構上,這個要了解主流的處理器架構的特性。

5.知道如何調試自己的程序,仿真調試或者片上調試,反正就那幾個調試方法。

6.高級的嵌入式系統需要RTOS,所以也要懂操作系統。

嵌入式軟件一層一層的覆蓋在硬件上的,最底層的應該是硬件層,這一層直接對硬件的寄存器操作,是對硬件的第一層抽象。然後應該是驅動層,這一層提供一些硬件的功能函數。最後是接口層,這一層提供最終的函數給上一層的工程師,例如ledLight()這種函數,上層的人可以直接用這個函數來點亮led,而不用知道下面的細節。

這只是我片面的理解,如果有什麼不對的地方請指出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章