成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 正文
    • 1、前言
    • 2、為何要模塊化
    • 3、如何拆分模塊
    • 4、如何理解
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

嵌入式軟件架構(gòu)設(shè)計-模塊化

04/11 15:00
932
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1、前言

模塊化程序設(shè)計是指在進(jìn)行程序設(shè)計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一個確定的功能,并在這些模塊之間建立必要的聯(lián)系,通過模塊的互相協(xié)作完成整個功能的程序設(shè)計方法。

比如搭積木,可以用一個個積木模塊組合成我們想要的任何樣子,而且通過使用相同的積木模塊組合成不同的樣子

2、為何要模塊化

為什么要模塊化程序設(shè)計?那就需要從程序模塊化的好處說起!只有了解了其優(yōu)點,才能更好的實現(xiàn)模塊化編程。

1.降低程序設(shè)計的復(fù)雜度

有利于程序的設(shè)計和調(diào)試,功能相對獨立,結(jié)構(gòu)清晰;主要是封裝實現(xiàn)細(xì)節(jié),提供使用接口即可

2.提供代碼的復(fù)用性

現(xiàn)成的程序代碼,直接移植到另一個項目中簡單修改甚至不用修改就能使用,多個模塊程序組合就完成了一個新的功能;這也是模塊化最大的意義所在

3.便于功能維護(hù)和擴(kuò)展

一旦出現(xiàn)問題,能迅速定位哪個模塊出現(xiàn)的問題

4.程序的結(jié)構(gòu)一目了然

可以看出程序中使用了哪些驅(qū)動、有哪些外設(shè)模塊、大概有哪些功能等

5.保證系統(tǒng)穩(wěn)定性

該模塊程序已通過之前的項目經(jīng)過反復(fù)驗證,穩(wěn)定性高,在新項目中移植比重寫更穩(wěn)定

6.有利于團(tuán)隊開發(fā)

各模塊之間功能獨立,有利于任務(wù)分解,團(tuán)隊分工,各自實現(xiàn)對應(yīng)的功能,并且可以單獨進(jìn)行測試驗證

3、如何拆分模塊

基本思路是自頂向下、逐步分解、分而治之,即將一個較大的程序按照功能分割成一些小模塊;比如手持遙控器,主要功能就是人機(jī)交互,可能還會有參數(shù)設(shè)置等,那么依次往下分解得到以下模塊:

在拆分模塊時應(yīng)該注意以下幾個主要原則:

1.模塊獨立

模塊的獨立性原則表現(xiàn)在模塊完成獨立的功能,與其他模塊的聯(lián)系應(yīng)該盡可能得簡單,各個模塊具有相對的獨立性。

2.模塊的規(guī)模要適當(dāng)

模塊的規(guī)模不能太大,也不能太小。如果模塊的功能太強,可讀性就會較差,若模塊的功能太弱,就會有很多的接口。開發(fā)者需要通過較多的程序設(shè)計來進(jìn)行經(jīng)驗的積累。

3.分解模塊時要注意層次

在進(jìn)行多層次任務(wù)分解時,要注意對問題進(jìn)行抽象化。在分解初期,可以只考慮大的模塊,在中期,再逐步進(jìn)行細(xì)化,分解成較小的模塊進(jìn)行設(shè)計。

4.不對外開放全局變量

模塊內(nèi)部使用的全局變量,需要外部修改或者獲取時,需要通過封裝成 API 函數(shù)對外提供,同時可以在函數(shù)內(nèi)有相關(guān)限制,防止外部直接操作模塊內(nèi)部的全局變量引發(fā)模塊運行異常,因此模塊內(nèi)部的全局變量可定義為靜態(tài)全局變量。

4、如何理解

通常一個模塊就是一個.c 文件和一個.h 文件的結(jié)合,頭文件(.h)中是對于該模塊接口的聲明

1.該模塊的.c文件實現(xiàn)具體功能,而.h文件則為該功能模塊的接口函數(shù)等

2.一個大模塊中也會存在多個小模塊,即模塊中存在多個.c和.h文件,每個.c和.h作用各不相同

3.一個.c 文件必須一個對應(yīng)的.h文件,而.h文件不一定需要對應(yīng)的.c 文件

比如實現(xiàn)一個OLED驅(qū)動模塊,可能會有以下的文件:

  • oled.c 和 oled.h

實現(xiàn)具體功能,如清屏、畫圖、字符顯示等;.h 文件對外提供 API 接口函數(shù)

  • oledio.c 和 oledio.h

實現(xiàn)底層接口初始化和通信IICSPI),為oled.c文件提供驅(qū)動接口

  • oledconf.c 和 oledconf.h

驅(qū)動配置, 如字體大小、分辨率等配置信息

  • fontxxx.h 和 bmpxxx.h

用來存放字體和BMP圖形點陣數(shù)據(jù)

相關(guān)推薦

海兴县| 灵宝市| 三穗县| 高碑店市| 利川市| 桓台县| 托克逊县| 元江| 依兰县| 清徐县| 双鸭山市| 新民市| 扎囊县| 亚东县| 锦屏县| 张家界市| 广河县| 渝北区| 五家渠市| 孝昌县| 临邑县| 华宁县| 南木林县| 美姑县| 通城县| 剑河县| 洪雅县| 平乡县| 远安县| 嘉善县| 治县。| 碌曲县| 枞阳县| 循化| 灵川县| 尼勒克县| 连平县| 高密市| 乐至县| 温宿县| 博野县|