色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

汽車電子技術(shù) ? 來源:大橙子瘋嵌入式 ? 作者: 大橙子瘋 ? 2023-02-15 14:42 ? 次閱讀

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é),提供使用接口即可

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

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

  1. 便于功能維護(hù)和擴展

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

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

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

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

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

  1. 有利于團隊開發(fā)

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

3、如何拆分模塊

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

圖片

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

  1. 模塊獨立

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

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

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

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

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

  1. 不對外開放全局變量

模塊內(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)底層接口初始化和通信(IIC或SPI),為oled.c文件提供驅(qū)動接口

  • oledconf.c 和 oledconf.h

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

  • fontxxx.h 和 bmpxxx.h

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

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

    關(guān)注

    7

    文章

    2695

    瀏覽量

    47433
  • 程序設(shè)計
    +關(guān)注

    關(guān)注

    3

    文章

    261

    瀏覽量

    30391
  • 模塊化程序
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1162
收藏 人收藏

    評論

    相關(guān)推薦

    誠聘嵌入式軟件工程師

    計經(jīng)驗或者BSP開發(fā)經(jīng)驗;6、熟悉Windows操作系統(tǒng),具備一定的上位機應(yīng)用程序開發(fā)經(jīng)驗;7、熟悉嵌入式軟件設(shè)計方法,有程序架構(gòu)設(shè)計經(jīng)驗,對軟件
    發(fā)表于 03-10 10:31

    嵌入式系統(tǒng)模塊化設(shè)計有什么方法?

    嵌入式系統(tǒng)設(shè)計要求做到可測性、高效性和靈活性。目前,嵌入式系統(tǒng)物理尺寸越來越小,功能越來越復(fù)雜。為了方便調(diào)試、維護(hù)系統(tǒng),完全可測顯得極為重要。另一方面,模塊化的設(shè)計方法越來越引起人們的關(guān)注。
    發(fā)表于 08-23 07:31

    嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計!

    軟件架構(gòu)設(shè)計!2. 嵌入式環(huán)境下軟件設(shè)計的特點要談嵌入式軟件
    發(fā)表于 08-10 07:46

    為何要進(jìn)行嵌入式軟件架構(gòu)設(shè)計?如何設(shè)計?

    為何要進(jìn)行嵌入式軟件架構(gòu)設(shè)計?如何進(jìn)行嵌入式軟件架構(gòu)設(shè)計?
    發(fā)表于 11-01 06:31

    嵌入式軟件架構(gòu)設(shè)計的目的及思路

    【1】架構(gòu)設(shè)計的目的1.應(yīng)用的代碼邏輯清晰,且避免重復(fù)造輪子。2.方便軟件的移植。3.最大限度地復(fù)用。4.高內(nèi)聚低耦合。 【2】嵌入式架構(gòu)思路1.功能
    發(fā)表于 11-08 06:41

    嵌入式系統(tǒng)中的架構(gòu)設(shè)計的理解

    【閱讀這篇文章,你能了解到什么】1. 從事嵌入式開發(fā)12年的我,對架構(gòu)設(shè)計的理解;2. 對嵌入式系統(tǒng)中的架構(gòu)設(shè)計要刻意訓(xùn)練;3. 嵌入式系統(tǒng)
    發(fā)表于 11-08 08:23

    決定嵌入式系統(tǒng)軟件架構(gòu)的因素和架構(gòu)的影響

    嵌入式系統(tǒng)軟件架構(gòu)設(shè)計目錄1.前言42.決定架構(gòu)的因素和架構(gòu)的影響42.1.常見的誤解52.1.1.小型的系統(tǒng)不需要
    發(fā)表于 11-08 06:54

    嵌入式軟件開發(fā)過程中的模塊化

    對很多人來,嵌入式軟件開發(fā)過程中模塊化(Modularization)是一個海市蜃樓、是一個書面詞匯、是一個過氣的時尚——模塊化似乎從未真正的實現(xiàn)過。吹牛時人們常不屑的說:沒吃...
    發(fā)表于 12-20 07:22

    嵌入式軟件架構(gòu)設(shè)計資料分享

    作為程序員,我覺得如果要走的更遠(yuǎn)必須要成為工程師,畢竟年齡和資歷都擺在那里了。所以就讓我這個老程序員淺談一下嵌入式軟件架構(gòu)設(shè)計。我參考的也是一篇博文。原圖如下![在這里插入圖片描述](?x-oss-process=image/w
    發(fā)表于 12-24 07:09

    嵌入式軟件架構(gòu)設(shè)

    嵌入式軟件架構(gòu)的設(shè)計,幫助我們建立合理,有效的軟件架構(gòu)
    發(fā)表于 11-09 17:34 ?19次下載

    嵌入式軟件架構(gòu)設(shè)

    【1】架構(gòu)設(shè)計的目的1.應(yīng)用的代碼邏輯清晰,且避免重復(fù)造輪子。2.方便軟件的移植。3.最大限度地復(fù)用。4.高內(nèi)聚低耦合。?【2】嵌入式架構(gòu)思路1.功能
    發(fā)表于 11-03 16:36 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)設(shè)</b>計

    嵌入式UI架構(gòu)設(shè)計漫談

    嵌入式UI架構(gòu)設(shè)計漫談
    發(fā)表于 11-03 17:36 ?15次下載
    <b class='flag-5'>嵌入式</b>UI<b class='flag-5'>架構(gòu)設(shè)</b>計漫談

    嵌入式系統(tǒng)軟件架構(gòu)設(shè)

    嵌入式系統(tǒng)軟件架構(gòu)設(shè)計目錄1.前言42.決定架構(gòu)的因素和架構(gòu)的影響42.1.常見的誤解52.1.1.小型的系統(tǒng)不需要
    發(fā)表于 11-03 18:21 ?30次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)設(shè)</b>計

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

    方便其實整理代碼結(jié)構(gòu),最主要想實現(xiàn)的就是:高內(nèi)聚低耦合這樣的代碼方便移植管理,流程接口明確。一般的架構(gòu)圖主要就是兩部分:分層分模塊隨便上百度搜了一張嵌入式軟件
    發(fā)表于 11-03 21:06 ?20次下載
    【<b class='flag-5'>架構(gòu)</b>】<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)設(shè)</b>計 <b class='flag-5'>模塊化</b> & 分層設(shè)計

    嵌入式軟件架構(gòu)設(shè)消息交互

    在熟悉任務(wù)調(diào)度、程序分層和模塊化編程關(guān)于軟件架構(gòu)、分層和模塊設(shè)計后,除了函數(shù)調(diào)用設(shè)計中出現(xiàn)的情況外,還會遇到同層模塊之前如何進(jìn)行消息交互,通
    的頭像 發(fā)表于 02-15 15:44 ?867次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>架構(gòu)設(shè)</b>計<b class='flag-5'>之</b>消息交互
    主站蜘蛛池模板: 高清欧美videos sexo| 寂寞护士中文字幕 mp4| 伊人久久大香网| ⅹxx日本护土| 日本国产精品无码一区免费看| 99国产电影| 免费视频不卡| qvod在线| 天天摸夜添狠狠添高| 国产精品亚欧美一区二区三区 | 亚洲精品国产字幕久久vr| 国产亚洲精品精华液| 亚洲一区二区免费看| 久久久久综合网久久| 91免费永久在线地址| 女性性纵欲派对| 国产3级在线观看| 亚洲国产精品免费观看| 久久天天躁狠狠躁夜夜躁| 91麻豆精品国产一级| 秋霞成人午夜鲁丝一区二区三区| 国产成人精品男人的天堂网站| 亚州中文字幕| 久久视热频国只有精品| 亚洲精品无码AAAAAA片| 久久re视频这里精品09首页| 97久久无码精品AV| 无颜之月全集免费观看| 久久精品国产清白在天天线 | 国产免费福利在线视频| 在线综合 亚洲 欧美| 欧美大香线蕉线伊人久久| 动漫美女被h动态图| 又硬又粗又大一区二区三区视频| 私密按摩师在线观看 百度网盘| 裸妇厨房风流在线观看| 国产精品亚洲精品日韩电影| 中文字幕在线久热精品| 欧美高清video mr.sexo| 久久99精品久久久久久园产越南| xhameter中国|