當前位置:首頁 >  站長 >  建站經驗 >  正文

嵌入式系統(tǒng)c語言編程該怎么學?

 2013-02-19 07:35  來源:   我來投稿 撤稿糾錯

  域名預訂/競價,好“米”不錯過

C語言博大精深,玩了很長時間了,一直徘徊在入門處。看了很多別人的編程經驗,加上項目程序越做越大,直到這半年來突然有很多體會,明天就要回家了,下午閑來無事也試著總結一些心得體會,喜歡對師弟妹們的學習有所幫助。

首先要說說編程的幾個重要原則,看了很多別人的編程經驗,更多的是說技巧。技巧能顯著提高程序的效率,固然重要但是技巧的掌握靠了還是大量的工程實踐,只有在有一定功底后才可以去追求這些編程技巧。但是編程的原則卻是要在學習一開始就要認真貫徹,才能養(yǎng)成良好的編程習慣,苦練內功后練上層功夫才不會走火入魔。

言歸正傳,嵌入式系統(tǒng)C語言編程需要遵守什么樣的原則呢?隨著時代和技術的不斷發(fā)展,這個問題也許仁者見仁智者見智了,但是總結起來大家還是有很多共識。根據(jù)目前提倡的軟件工程的做法,和我們教研室的做法,列舉最重要原則:

一、模塊劃分.C語言作為一種結構化的程序設計語言,在模塊的劃分上主要依據(jù)功能:

(1) 一個功能模塊即是一個.c文件和一個.h文件的結合,.h文件中是對于該模塊功能函數(shù)和使變 量的聲明

(2) 該模塊提供給其它模塊調用的外部函數(shù)及數(shù)據(jù)都需要在.h中文件中以extern關鍵字聲明

(3) 模塊內的函數(shù)和全局變量只能在.c文件定義

(4) 不允許在.h文件中定義變量(定義變量和聲明變量的區(qū)別在于定義會產生內存分配的操作,而聲明則只是告訴包含該聲明的模塊在連接階段從其它模塊尋找外部函數(shù)和變量)。

二、一個嵌入式系統(tǒng)程序包括兩類模塊分三層編寫:

(1)硬件驅動模塊,一種特定硬件對應一個模塊,包括了片內集成的硬件模塊和外部擴展的

(2)軟件功能模塊,軟件功能模塊是建立在硬件驅動模塊上的與硬件無關的邏輯功能。

(3)三層編寫即HAL(硬件應用層),API(應用函數(shù)包),APP(邏輯應用層)注:名稱是借用的,表大個意思而已。HAL就是硬件驅動模塊和系統(tǒng)硬件密切相關,API可以是建立在HAL上的硬件應用服務程序也可以是通用的函數(shù)模塊,APP則是最終構成嵌入式系統(tǒng)應用的功能邏輯關系。HAL和API是為了方便技術積累和提高開發(fā)效率而分開了,APP則是針對特殊應用而定制的。

三、中斷服務程序的要求:

(1)不能返回值

(2)不能向ISR傳遞參數(shù)

(3)ISR應該盡可能的短小精悍,不允許有等待信號的操作

四、編程風格問題

五、需要學會熟練應用的C語言的基本手法

(1)數(shù)據(jù)指針,不能僅僅只會使用數(shù)組

(2)宏定義,定義寄存器地址,定義宏函數(shù)等

(3)函數(shù)指針的應用

(4)條件編譯,在帶操作系統(tǒng)的應用時經常要用

六、不要偷懶,寫好必要的注釋

七、做到以上幾點時就可以吸收高超的編程技巧了。

轉載請保留連接

本文由www.uchn.org整理

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關文章

熱門排行

信息推薦