資源描述:
《單片機(jī)模塊化編程的分層設(shè)計經(jīng)驗》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、模塊化編程的分層設(shè)計經(jīng)驗(轉(zhuǎn)載)電腦技術(shù)2011-01-0416:48:54閱讀12評論0??字號:大中小?訂閱模塊化編程的分層設(shè)計經(jīng)驗操作要點(diǎn):1、每一層直接對下一層操作,盡量避免交叉調(diào)用或越級調(diào)用2、某些器件會把硬件驅(qū)動層合并成一個文件時,則歸于較高的層3、相同功能的外部函數(shù)盡量一致,盡量保證通用性4、對于初次編程的模塊,要嚴(yán)格保證中間各層的正確性好處:1、對于后期維護(hù)擴(kuò)展,只需修改應(yīng)用層和物理層,根據(jù)需要擴(kuò)展功能層2、一個新項目只需把要用到的文件加入工程,簡單修改調(diào)試就出來了3、隨著模塊的不斷積累,新的項目將越
2、來越容易完成,后期的維護(hù)擴(kuò)展也變得非常簡單了4、對于C語言編程,只需簡單修改物理層就可完成不同單片機(jī)間的移植呵呵,一些經(jīng)驗,大家有好的想法可以繼續(xù)補(bǔ)充指正一般分為以下幾層:??---應(yīng)用層--面向用戶軟
3、????↓件
4、---協(xié)議層--現(xiàn)成的協(xié)議棧、軟件包、標(biāo)準(zhǔn)庫,大多是移植,不自己寫,如FAT、TCPIP、OS、GAME等相
5、????↓關(guān)
6、????↓??---功能層--實(shí)現(xiàn)器件無關(guān)性,實(shí)現(xiàn)器件的各種功能擴(kuò)展和器件通用性處理,如LCD的線、圓、矩形等功能,如EEPROM的塊寫,自己的print硬
7、????↓?????件
8、
9、---器件層--實(shí)現(xiàn)硬件無關(guān)性,保證IO無關(guān)性,只提供器件的基本功能,如字節(jié)讀寫、點(diǎn)驅(qū)
10、????↓動---物理層--IO相關(guān),直接操作硬件,實(shí)現(xiàn)硬件連接的多種方案對應(yīng)文件舉例1:??---應(yīng)用層--面向用戶的主程序軟
11、????↓件
12、---協(xié)議層--如FAT、TCPIP、OS等現(xiàn)成的協(xié)議棧、算法、游戲等相
13、????↓關(guān)
14、????↓??---功能層--如文件lcd.c;led.c;eeprom.c;time.c;ir.c;keybord.c;harddisk.c;引出LCD的線、圓、矩形、填充等功能硬
15、????↓???
16、?????????↓件
17、---器件層--文件lcd61202.c;lcd1520.c;lcd6963.c;lcd133x.c;lcd44780.c;lcd162x.c;lcd856x.c或者lcd1602.c;lcd12864.c;lcd320240.c等,引出基本的初始化、定位、寫點(diǎn)、寫字節(jié)函數(shù)驅(qū)
18、????↓????????????↓動---物理層--文件lcd61202_io.c;lcd61202_bus.c;引出器件的基本讀寫函數(shù)對應(yīng)文件應(yīng)用舉例2:??---應(yīng)用層--面向用戶的主程序軟
19、????↓件
20、---協(xié)
21、議層--如FAT、TCPIP、OS等現(xiàn)成的協(xié)議棧、算法、游戲等相
22、????↓關(guān)
23、????↓??---功能層--如文件lcd.c;led.c;eeprom.c;time.c;ir.c;keybord.c;harddisk.c;如EEPROM的塊寫統(tǒng)一化硬
24、????↓????????????????????????↓件
25、---器件層--文件ee24xx.c;ee93xx.c;ee_sdcard.c;ee29xx.c;ee28f.c;ee39xx.c;等驅(qū)
26、????↓????????????↓動---物理層--文件bus_
27、i2c.c;bus_spi.c等?一個大的單片機(jī)程序往往包含很多模塊,我是這樣組織的1。每一個C源文件都要建立一個與之名字一樣的H文件,里面僅僅包括該C文件的函數(shù)的聲明,其他的什么也不會有,比如變量的定義啊等等不應(yīng)該有。2。建立一個所有的文件都要共同使用的頭文件,里面當(dāng)然就是單片機(jī)的管腳使用的定義,還有里面放那些需要的KEIL系統(tǒng)的頭文件,比如#include,#include等等,把這個文件命名為common.h,或者干脆就叫main.h3,每個C源文件應(yīng)該包含自己的頭文件以及那個共同的使用的頭文件,里面還放自己本
28、文件內(nèi)部使用的全局變量或者以extern定義的全局變量4。主文件main.c里面包含所有的頭文件包括那個共同使用的文件,main.c里面的函數(shù)可以再做一個頭文件,也可以直接放在文件的開頭部分聲明就可以了,里面一般還有中斷服務(wù)程序也放在main.c里面5。對于那些貫穿整個工程的變量,可以放在那個共同的使用的頭文件里面,也可以用extern關(guān)鍵字在某個C源文件里面定義,哪個文件要使用就重復(fù)定義一下6.建立工程的時候,只要把C源文件加到工程中,把H文件直接放到相應(yīng)的目錄下面就可以了,不需要加到工程里面。三層開發(fā)電腦技術(shù)20
29、10-12-2822:28:57閱讀6評論0??字號:大中小?訂閱1.什么是三層架構(gòu)???所謂的三層開發(fā)就是將系統(tǒng)的整個業(yè)務(wù)應(yīng)用劃分為表示層——業(yè)務(wù)邏輯層——數(shù)據(jù)訪問層,這樣有利于系統(tǒng)的開發(fā)、維護(hù)、部署和擴(kuò)展。??分層是為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。采用“分而治之”的思想,把問題劃分開來各個解決,易于控制,易于延展,易于分配資源。????表示層: