0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式軟件為什么要模塊化程序設計呢?

strongerHuang ? 來源:大橙子瘋嵌入式 ? 2023-02-03 10:27 ? 次閱讀

一個好的嵌入式項目,通常會有一套比較好的軟件架構的設計。除非你的項目只是一個點燈項目。

1、前言

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

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

2、為何要模塊化

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

降低程序設計的復雜度

有利于程序的設計和調試,功能相對獨立,結構清晰;主要是封裝實現細節(jié),提供使用接口即可

提供代碼的復用性

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

便于功能維護和擴展

一旦出現問題,能迅速定位哪個模塊出現的問題

程序的結構一目了然

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

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

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

有利于團隊開發(fā)

各模塊之間功能獨立,有利于任務分解,團隊分工,各自實現對應的功能,并且可以單獨進行測試驗證

3、如何拆分模塊

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

745b8e92-a30e-11ed-bfe3-dac502259ad0.png

在拆分模塊時應該注意以下幾個主要原則:

模塊獨立

模塊的獨立性原則表現在模塊完成獨立的功能,與其他模塊的聯系應該盡可能得簡單,各個模塊具有相對的獨立性。

模塊的規(guī)模要適當

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

分解模塊時要注意層次

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

不對外開放全局變量

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

4、如何理解

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

該模塊的.c文件實現具體功能,而.h文件則為該功能模塊的接口函數等

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

一個.c 文件必須一個對應的.h文件,而.h文件不一定需要對應的.c 文件

比如實現一個OLED驅動模塊,可能會有以下的文件:

oled.c 和 oled.h

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

oledio.c 和 oledio.h

實現底層接口初始化和通信(IIC或SPI),為oled.c文件提供驅動接口

oledconf.c 和 oledconf.h

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

fontxxx.h 和 bmpxxx.h

用來存放字體和BMP圖形點陣數據





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 人機交互
    +關注

    關注

    12

    文章

    1199

    瀏覽量

    55269
  • 遙控器
    +關注

    關注

    18

    文章

    829

    瀏覽量

    65871
  • BMP
    BMP
    +關注

    關注

    0

    文章

    48

    瀏覽量

    17027
  • 嵌入式軟件
    +關注

    關注

    4

    文章

    239

    瀏覽量

    26598
  • OLED驅動
    +關注

    關注

    1

    文章

    13

    瀏覽量

    10214

原文標題:嵌入式軟件架構模塊設計

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式模塊化程序設計的相關資料分享

    模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一
    發(fā)表于 11-09 08:20

    嵌入式C語言程序設計基礎大匯總

      學習嵌入式的基礎語言是C語言,因此先掌握C語言對于后續(xù)嵌入式的學習有著非常大的意義。下面講解下嵌入式C語言程序設計基礎,尤其是C語言的一些語言特點?! 語言是一種結構
    發(fā)表于 11-09 07:13

    嵌入式編程中C語言的模塊化和模擬面向對象的相關資料推薦

    模塊化嵌入式編程中需要對程序進行模塊劃分的"劃"是規(guī)劃的意思,意指怎樣合理的將一個很大的軟件劃分為一系列功能獨立的部分合作完成系統(tǒng)的需求。C
    發(fā)表于 12-15 08:51

    C語言模塊化程序設計理解

    C語言嵌入式系統(tǒng)編程修煉(軟件架構篇)模塊劃分模塊劃分的"劃"是規(guī)劃的意思,意指怎樣合理的將一個很大的軟件劃分為一系列功能獨立的部分合作完成
    發(fā)表于 12-15 06:34

    嵌入式軟件程序設計

    嵌入式系統(tǒng)設計師學習筆記二十七:嵌入式軟件程序設計②——嵌入式程序設計程序設計語言機器語言:由二
    發(fā)表于 12-21 08:28

    嵌入式系統(tǒng)的微模塊化程序設計有何作用

    什么是嵌入式系統(tǒng)的微模塊化程序設計嵌入式系統(tǒng)的微模塊化程序設計有何作用?
    發(fā)表于 12-24 06:35

    嵌入式系統(tǒng)的C程序設計

    嵌入式系統(tǒng)的C程序設計
    發(fā)表于 04-07 22:42 ?86次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)的C<b class='flag-5'>程序設計</b>

    嵌入式系統(tǒng)的C程序設計

    嵌入式系統(tǒng)的C程序設計
    發(fā)表于 11-10 08:59 ?54次下載

    嵌入式系統(tǒng)的c程序設計

    嵌入式系統(tǒng)的c程序設計
    發(fā)表于 02-11 09:21 ?65次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)的c<b class='flag-5'>程序設計</b>

    模塊化程序設計

    模塊化程序設計思想,單片機c語言的模塊化設計,方便移植,將程序封裝備用。
    發(fā)表于 03-22 15:29 ?9次下載

    模塊化程序設計

    模塊化程序設計,利用c語言的移植性好特點,更好的利用c語言。
    發(fā)表于 03-23 09:25 ?0次下載

    嵌入式系統(tǒng)與C程序設計

    嵌入式系統(tǒng)與C程序設計
    發(fā)表于 10-30 10:20 ?13次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)與C<b class='flag-5'>程序設計</b>

    嵌入式軟件開發(fā)之模塊化程序設計(三)

    模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一
    發(fā)表于 11-03 21:06 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發(fā)之<b class='flag-5'>模塊化</b><b class='flag-5'>程序設計</b>(三)

    C語言嵌入式培訓 嵌入式C語言程序設計基礎

      學習嵌入式的基礎語言是C語言,因此先掌握C語言對于后續(xù)嵌入式的學習有著非常大的意義。下面講解下嵌入式C語言程序設計基礎,尤其是C語言的一些語言特點。  C語言是一種結構
    發(fā)表于 11-03 21:06 ?32次下載
    C語言<b class='flag-5'>嵌入式</b>培訓  <b class='flag-5'>嵌入式</b>C語言<b class='flag-5'>程序設計</b>基礎

    嵌入式軟件架構設計之模塊化

    模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一
    的頭像 發(fā)表于 02-15 14:42 ?938次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>架構設計之<b class='flag-5'>模塊化</b>