南通颐猩文化传播有限公司

當前位置:首頁 >  站長 >  建站經(jīng)驗 >  正文

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

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

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

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

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

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

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

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

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

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

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

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

(1)硬件驅(qū)動模塊,一種特定硬件對應(yīng)一個模塊,包括了片內(nèi)集成的硬件模塊和外部擴展的

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

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

三、中斷服務(wù)程序的要求:

(1)不能返回值

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

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

四、編程風格問題

五、需要學會熟練應(yīng)用的C語言的基本手法

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

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

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

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

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

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

轉(zhuǎn)載請保留連接

本文由www.uchn.org整理

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

相關(guān)文章

熱門排行

信息推薦