最近在看公司嵌入式開發的文件和c語言**,真佩服那些設計的人員,從需求分析說明書、時序圖、概要設計、詳細設計、到code階段,都做得很細緻。而且純粹是c語言開發,軟體設計人員必須對硬體有很深的了解才行,我看了一下裡面的code,足足有幾百多個.h和.c檔案,各個模組寫得很細緻。專案都快接近尾聲了,我什麼都不懂,剛做嵌入式開發,對我這個純粹軟體專業出身的來說還是比較有挑戰性的,硬體理解的障礙、文件中專業術語的障礙等等,作為乙個初學者真不知道該如何入手,總覺得自己也許更適合做純軟體應用的網頁開發、遊戲開發這類的工作吧。嵌入式開發與一般的應用軟體最大的不同之處在於它貼近硬體,要求實時性等。
我看了一下**,感覺自己的c語言功底還有待提高,extern的用法、訊息的封裝和處理、任務程序的理解等還得慢慢來。我們使用的開發工具主要是vss和source insight3.5等。
謝謝lushujun2011的部落格我對extern的用法有了一些了解。
問題一、在variable.c中宣告乙個全域性變數int a;在variable.c中有extern int a,這個extern是什麼意思?
答:extern用在變數宣告中常常有這樣乙個作用,在*.c檔案中宣告了乙個全域性的變數,這個全域性的變數如果要被引用,就放在*.h中並用extern來宣告。
問題二、常見extern放在函式的前面成為函式宣告的一部分,那麼,c語言的關鍵字extern在函式的宣告中起什麼作用?
答:如果函式的宣告中帶有關鍵字extern,僅僅是暗示這個函式可能在別的原始檔裡定義,沒有其它作用。即下述兩個函式宣告沒有明顯的區別:
extern int f(); 和int f();當然,這樣的用處還是有的,就是在程式中取代include 「*.h」來宣告函式,在一些複雜的專案中,可以在所有的函式宣告前新增extern修飾。
嵌入式程式設計
1 interrupt double compute area double radis 1 isr不能返回乙個值。2 isr不能傳遞引數。3 在許多處理器中浮點是不可重入的。4 printf 經常有重入和效能上的問題,所以一般不使用printf 2.volatile 1 volatile的語法和c...
嵌入式程式設計
對於簡單的應用程式,輪詢 許多時候也被稱作超級迴圈 實現起來比較簡單,而且非常適合簡單任務 見圖4.4 不過,當應用程式變得複雜或者對處理能力的要求更高時,輪詢就不合適了。例如,當乙個程序占用時間過長,其他模組在這段時間內就不會收到處理器的任何服務。即便不需要任何處理,處理器也得一直執行輪詢程式,這...
嵌入式GUI移植小結
幾天來,移植了乙個小型的gui,小,但是五臟俱全,基本體現了gui的理念,值得推薦學習。下面就移植的方方面面總結如下 1.gui的設計理念 我們知道,當我們不去動鍵盤,不去動觸控螢幕滑鼠的時候,是不會有gui動作的,中斷訊號時鐘訊號除外。所以,gui的設計出發點,實際上是事件,或者說是訊號,當然也可...