0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

嵌入式軟件開發(fā)怎么編程

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2021-09-03 14:48 ? 次閱讀

嵌入式開發(fā),除了掌握基本的編程語法之外,編程的思想也是很關(guān)鍵,下面說兩點編程思想。

1分層思想

嵌入式分層思想,可能你不懂,但你肯定見到過很多類似下面這樣的軟件結(jié)構(gòu)圖。

比如,RT-Thread Nano內(nèi)核結(jié)構(gòu):

嵌入式軟件開發(fā)怎么編程

STM32Cube軟件結(jié)構(gòu):

嵌入式軟件開發(fā)怎么編程

這種軟件結(jié)構(gòu)圖,里面的東西可能有點多,可能你看不懂。

但是,只要你仔細一看每個區(qū)域的劃分,你就會發(fā)現(xiàn),它們是把軟件劃分了多個區(qū)域,這里其實就是一種分層的思想。

舉一個例子:一個遙控器控制一個小車運動,包含遙控器的按鍵(比如:前后左右),無線通信(比如:433),小車無線接收,電機驅(qū)動、電機驅(qū)動算法等。

遇到這種嵌入式軟件開發(fā),你會怎么編程?

1.底層驅(qū)動層小車部分:電機驅(qū)動(比如IO時鐘、PWM配置)封裝成一個函數(shù)、433驅(qū)動封裝成一個函數(shù)。然后把這兩個函數(shù)整理在一個Driver(驅(qū)動)函數(shù)。

遙控部分同理:按鍵驅(qū)動(比如IO時鐘、配置)封裝成一個函數(shù)、433驅(qū)動封裝成一個函數(shù)。

2.中間層這里比如你電機用到了加減速、左右轉(zhuǎn)向的一些算法,封裝成對應(yīng)Middleware中間層模塊函數(shù)(待應(yīng)用層調(diào)用)。

3.應(yīng)用層應(yīng)用層就考驗?zāi)銟I(yè)務(wù)邏輯的一層,也是整個軟件資源的一層。如果你代碼層次畫分的話,業(yè)務(wù)邏輯代碼就很容易。

反之,你代碼很亂,要實現(xiàn)一個業(yè)務(wù)邏輯,可能連續(xù)加班多天,最后寫出來的代碼也是bug無數(shù)。

2模塊化

嵌入式編程,模塊化相當(dāng)重要,可以說,它會影響你代碼質(zhì)量、加班多少、甚至升職加薪。

還是上面那個例子:一個遙控器控制一個小車運動,包含遙控器的按鍵(比如:前后左右),無線通信(比如:433),小車無線接收,電機驅(qū)動、電機驅(qū)動算法等。

如果你把所有代碼都寫在main函數(shù),你說能實現(xiàn)嗎?當(dāng)然,肯定也能實現(xiàn)。

但是,你這樣寫,你的業(yè)務(wù)邏輯代碼是不是很廢腦、很費時間?

還有,你后續(xù)加修改按鍵方式、添加功能,你該怎么辦?

所以,你需要模塊化編程,把一些小模塊分別封裝成函數(shù),提供給對應(yīng)的應(yīng)用層調(diào)用。

上面其實也說了:電機驅(qū)動(比如IO時鐘、PWM配置)封裝成一個函數(shù),這其實就是一個小模塊。

當(dāng)然,這里的驅(qū)動函數(shù)只是一個小模塊,然后還需要進一步封裝成“大模塊”。

比如:我這里還引入一個編碼器,閉環(huán)檢測電機速度,通過底層電機驅(qū)動、加減速算法,編碼器等整合成一個電機運動的函數(shù)(模塊):MOTOR_Ctrl(速度,方向)。這就是一個大模塊(當(dāng)然,還可以結(jié)合需求再進一步封裝)。

最后,還有很多重要的編程思想,需要開發(fā)者了解并掌握,在一定程度上,你的編程思想決定了你是新手級別,還是大神級別。

原文標題:嵌入式開發(fā)中的兩點編程思想

文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:pj

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

    關(guān)注

    58

    文章

    4595

    瀏覽量

    143717
  • 電機驅(qū)動
    +關(guān)注

    關(guān)注

    60

    文章

    1220

    瀏覽量

    86851
  • 嵌入式軟件
    +關(guān)注

    關(guān)注

    4

    文章

    240

    瀏覽量

    26681
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1303

    瀏覽量

    40284

原文標題:嵌入式開發(fā)中的兩點編程思想

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 1人收藏

    評論

    相關(guān)推薦

    嵌入式軟件開發(fā)需要學(xué)習(xí)什么?

    嵌入式軟件開發(fā)需要學(xué)習(xí)什么? 嵌入式軟件開發(fā),一個發(fā)展迅速的行業(yè),不少學(xué)者入門的第一個問題肯定是嵌入式
    發(fā)表于 01-31 14:45

    嵌入式軟件開發(fā)是做什么的

    /QNX+ARM匯編; ?。?)GUI:VC++/VC#/LABVIEW;  上面是大致,下面就是重頭戲了,嵌入式軟件開發(fā)編程對于一個嵌入式軟件
    發(fā)表于 06-28 11:31

    嵌入式軟件開發(fā)與非嵌入式軟件開發(fā)的區(qū)別?

    嵌入式軟件開發(fā)與非嵌入式軟件開發(fā)區(qū)別?設(shè)備驅(qū)動開發(fā)與裸機驅(qū)動開發(fā)區(qū)別?
    發(fā)表于 04-02 06:29

    想知道嵌入式軟件開發(fā)編程學(xué)的是什么??

      想知道嵌入式軟件開發(fā)編程學(xué)的是什么?我們得先知道什么是嵌入式開發(fā),今天就來整理整理嵌入式工程師培訓(xùn)技能?! ∫话銇碚f它負責(zé)上層應(yīng)用
    發(fā)表于 11-08 08:15

    嵌入式軟件開發(fā)是做什么的?

    :Linux/QNX+ARM匯編; (5)GUI:VC++/VC#/LABVIEW; 上面是大致,下面就是重頭戲了,嵌入式軟件開發(fā)編程對于一個嵌入式
    發(fā)表于 12-15 16:39

    什么是嵌入式軟件開發(fā)

    嵌入式軟件開發(fā)又是指什么?   隨著嵌入式軟件系統(tǒng)結(jié)構(gòu)越來越復(fù)雜,嵌入式軟件
    發(fā)表于 04-20 08:43 ?8791次閱讀

    嵌入式軟件開發(fā)與Embedded-GIS

    1.嵌入式軟件開發(fā) 市場現(xiàn)狀 嵌入式操作系統(tǒng) 嵌入式軟件開發(fā)特點 嵌入式
    發(fā)表于 02-28 10:39 ?36次下載

    ARM嵌入式軟件開發(fā)

    ARM嵌入式軟件開發(fā)ARM嵌入式軟件開發(fā)ARM嵌入式軟件開發(fā)
    發(fā)表于 01-15 17:29 ?65次下載

    嵌入式軟件開發(fā)的優(yōu)勢分析

    為什么當(dāng)今嵌入式行業(yè)會如此受歡迎呢?我們從事嵌入式軟件開發(fā)有什么好處嗎?小編就來說說我的看法吧,嵌入式軟件開發(fā)的優(yōu)勢我們可以從幾點來看。
    的頭像 發(fā)表于 12-21 15:23 ?5260次閱讀

    嵌入式軟件開發(fā)編程規(guī)范及原則

    編程規(guī)范也就是編寫出簡潔、可維護、可靠、可測試、高效、可移植的代碼,提高產(chǎn)品代碼的質(zhì)量。本文針對嵌入式,主要結(jié)合C語言編程的規(guī)范給大家講述。
    的頭像 發(fā)表于 10-05 10:02 ?6765次閱讀

    嵌入式軟件開發(fā)編程規(guī)范介紹

    對于嵌入式系統(tǒng)來講,嵌入式軟件相當(dāng)于嵌入式系統(tǒng)的靈魂,整個嵌入式系統(tǒng)如何工作,都是由嵌入式
    的頭像 發(fā)表于 01-01 09:28 ?4406次閱讀

    嵌入式工程師培訓(xùn)技能 嵌入式開發(fā)學(xué)什么?

      想知道嵌入式軟件開發(fā)編程學(xué)的是什么?我們得先知道什么是嵌入式開發(fā),今天就來整理整理嵌入式工程師培訓(xùn)技能。  一般來說它負責(zé)上層應(yīng)用
    發(fā)表于 11-02 20:51 ?13次下載
    <b class='flag-5'>嵌入式</b>工程師培訓(xùn)技能  <b class='flag-5'>嵌入式開發(fā)</b>學(xué)什么?

    嵌入式軟件開發(fā)----編程思想

    被斷電。(2)在編程中,如果用到經(jīng)常需要被修改的定值時,需要用宏定義,即為了方便修改,也為了方便他人閱讀。(3)在需要成塊狀存儲不同類型的數(shù)據(jù)時,struct是個非常好的選擇。(4)所有的配...
    發(fā)表于 11-03 09:06 ?14次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>----<b class='flag-5'>編程</b>思想

    嵌入式軟件開發(fā)做什么?嵌入式開發(fā)培訓(xùn)學(xué)哪些

    嵌入式行業(yè)可以說從幕后走到前臺,大家對他都很熟悉了,我國嵌入式人才缺口每年在50萬左右,相關(guān)調(diào)查報告稱嵌入式軟件開發(fā)是未來幾年最熱門和最受歡迎的職業(yè)之一。但是還有很多人不知道
    發(fā)表于 11-03 10:36 ?19次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>做什么?<b class='flag-5'>嵌入式開發(fā)</b>培訓(xùn)學(xué)哪些

    嵌入式軟件開發(fā)軟件開發(fā)的區(qū)別

    嵌入式軟件開發(fā)軟件開發(fā)是兩個不同的概念,它們在一些關(guān)鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)
    的頭像 發(fā)表于 01-22 15:27 ?2365次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品