1. 程式人生 > >我對嵌入式軟體的理解

我對嵌入式軟體的理解

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

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

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

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

1.C是必須會的,而且水平要比較高。嵌入式軟體的程式設計用到很多C裡面平時不常用的語法,比如內聯,靜態等。以及要清楚所有資料型別所佔用的記憶體。

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

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

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

5.知道如何除錯自己的程式,模擬除錯或者片上除錯,反正就那幾個除錯方法。

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

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

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