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

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

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

干貨分享 | 《使用面向?qū)ο蟮乃枷刖帉憜纹瑱C(jī)程序》

瑞薩MCU小百科 ? 來源:未知 ? 2023-07-17 12:10 ? 次閱讀
2297a9b8-2457-11ee-962d-dac502259ad0.gif

本文內(nèi)容轉(zhuǎn)自百問科技,原文:百問網(wǎng)新作《使用面向?qū)ο蟮乃枷刖帉?a target="_blank">單片機(jī)程序》

自2005年以來,我一直從事Linux開發(fā),但對于單片機(jī)始終沒有產(chǎn)生興趣,原因是覺得單片機(jī)太過簡單了,F(xiàn)lash和RAM只有幾十KB,感覺就像是在螺螄殼里面打坐,能展現(xiàn)出什么新花樣呢?直到最近兩年,我經(jīng)歷了一次震撼。

我有幸在某機(jī)器人公司看到了一個基于單片機(jī)和rtos開發(fā)的貓砂機(jī)器人代碼,拋開rtos內(nèi)核源碼,他們自己實(shí)現(xiàn)的源文件就超過了3000個。這讓我意識到,單片機(jī)也可以用于開發(fā)大型項(xiàng)目!我開始思考如何管理如此龐大的代碼量?

在Linux項(xiàng)目中,我們不需要關(guān)注寄存器級別的操作,那么在單片機(jī)領(lǐng)域是否也可以做到呢?

在Linux項(xiàng)目中,我們將項(xiàng)目拆分為多個子系統(tǒng),并進(jìn)一步將子系統(tǒng)拆分為多個層級,編程時(shí)要么使用C++的類,要么使用C語言的結(jié)構(gòu)體,那么在單片機(jī)領(lǐng)域,這種做法可行嗎?

隨著單片機(jī)性能的提升,我們能夠?qū)崿F(xiàn)的項(xiàng)目功能也越來越多,對單片機(jī)工程師的要求也越來越高。過去,我們只需要一個while循環(huán)來處理所有事情;現(xiàn)在,我們引入了RTOS,使用多任務(wù)系統(tǒng)。過去,我們以面向過程的方式編寫程序,需要什么就寫什么;現(xiàn)在,我們以面向?qū)ο蟮姆绞骄帉懗绦?,先抽象出一個類或結(jié)構(gòu)體,再進(jìn)行編程。

剛接觸面向?qū)ο缶幊虝r(shí),你可能會覺得:這是什么鬼?明明一個簡單的功能,為什么要創(chuàng)建多個結(jié)構(gòu)體并進(jìn)行注冊?

過去只需要幾行代碼就能解決問題,現(xiàn)在卻分散到2、3個文件中了!然而,在我的教學(xué)生涯中,一旦學(xué)生們掌握了面向?qū)ο蟮木幊趟枷?,他們就再也回不去了:他們無法忍受過去的代碼。

我一直想在單片機(jī)領(lǐng)域推廣“面向?qū)ο蟮木幊趟枷搿?,但一直沒有找到合適的單片機(jī)以及對應(yīng)的軟件庫來支持我的想法。直到我開始使用瑞薩ARM內(nèi)核的RA MCU及其軟件包FSP,我確信這就是講解面向?qū)ο缶幊虝r(shí)需要用到的單片機(jī)和軟件包。瑞薩MCU的軟件包FSP就是基于面向?qū)ο蟮乃枷刖帉懙摹?/p>

對于每個設(shè)備,我們可以定義好接口,抽象出相應(yīng)的結(jié)構(gòu)體,并對其進(jìn)行實(shí)現(xiàn)。再結(jié)合FSP RASC圖形化配置工具和代碼生成工具,我們使用瑞薩MCU時(shí),變得異常簡單!我們不再需要關(guān)注寄存器級別的代碼,也不再需要重復(fù)造輪子,可以將精力集中在業(yè)務(wù)邏輯和算法上。

得益于瑞薩強(qiáng)大的MCU、強(qiáng)大的軟件開發(fā)工具,也得益于瑞薩和RA生態(tài)工作室提供的支持,我們團(tuán)隊(duì)編寫了《ARM嵌入式系統(tǒng)中面向?qū)ο蟮哪K編程方法》

  • 講解面向?qū)ο缶幊淘?a target="_blank">單片機(jī)開發(fā)中的使用

  • 結(jié)合FSP軟件包實(shí)例分析外設(shè)驅(qū)動

  • 講解如何使用RASC配置片上設(shè)備

  • 教你如何編寫面向?qū)ο缶幊?/p>

  • 更講解如何操作外接的模塊:引入大型項(xiàng)目中的編程思想

單片機(jī)工程師們,很多沒有軟件工程的概念,編寫的程序結(jié)構(gòu)不好,不易移植、不易擴(kuò)展。軟件專業(yè)的工程師們,又沒有嵌入式的基礎(chǔ),總覺得跟硬件打交道很難。

適用范圍

  • 給單片機(jī)工程師介紹軟件工程的概念,把項(xiàng)目拆分為子系統(tǒng),分層設(shè)計(jì)子系統(tǒng),編寫代碼時(shí)使用面向?qū)ο蟮乃枷?/span>

  • 給軟件專業(yè)的工程師講解硬件知識、教你編寫驅(qū)動程序

  • 想提升編程水平的工程師:現(xiàn)在MCU的性能越來越強(qiáng),能做的項(xiàng)目越來越大,一個C文件里實(shí)現(xiàn)所有功能的方法不適合大項(xiàng)目了

目錄

22c6ae7a-2457-11ee-962d-dac502259ad0.jpg

DshanMCU-RA6M5開發(fā)板

231ca37a-2457-11ee-962d-dac502259ad0.jpg236afc50-2457-11ee-962d-dac502259ad0.jpg239fcc96-2457-11ee-962d-dac502259ad0.jpg23fd4c72-2457-11ee-962d-dac502259ad0.jpg2445571a-2457-11ee-962d-dac502259ad0.jpg

1

END

1


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

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347778
  • 瑞薩
    +關(guān)注

    關(guān)注

    33

    文章

    22274

    瀏覽量

    85509

原文標(biāo)題:干貨分享 | 《使用面向?qū)ο蟮乃枷刖帉憜纹瑱C(jī)程序》

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    keil可以讀出單片機(jī)程序

    表述存在一定的誤解,因?yàn)镵eil主要是用于編寫、編譯和調(diào)試單片機(jī)程序的工具,而不是直接從單片機(jī)中讀取已編程代碼的工具。 一、Keil的主要功能 編程開發(fā) :Keil允許用戶使用C語言或
    的頭像 發(fā)表于 09-02 10:32 ?240次閱讀

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序單片機(jī)開發(fā)過程中的一個重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機(jī)的R
    的頭像 發(fā)表于 09-02 10:05 ?261次閱讀

    單片機(jī)燒錄程序可以重新燒嗎

    單片機(jī)(Microcontroller Unit, MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲器、輸入/輸出接口等集成在一塊芯片上,用于控制各種電子設(shè)備。單片機(jī)燒錄程序是指將編寫
    的頭像 發(fā)表于 09-02 10:04 ?226次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

    單片機(jī)燒錄原理 單片機(jī)燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)的存儲器中,使其能夠按照程序
    的頭像 發(fā)表于 09-02 09:54 ?212次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序單片機(jī)開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)
    的頭像 發(fā)表于 09-02 09:47 ?237次閱讀

    藍(lán)牙模塊如何實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳

    ZX-D30、ZX-D37、ZX-D32等。 藍(lán)牙模塊設(shè)置 : 將藍(lán)牙模塊與單片機(jī)連接。通常,藍(lán)牙模塊通過串口(UART)與單片機(jī)通信。 設(shè)置藍(lán)牙模塊的工作模式和參數(shù),例如波特率、名稱、停止位、數(shù)據(jù)位等。這通常通過發(fā)送特定的AT命令來完成。
    的頭像 發(fā)表于 07-24 17:59 ?1410次閱讀
    藍(lán)牙模塊如何實(shí)現(xiàn)<b class='flag-5'>單片機(jī)</b>和手機(jī)端數(shù)據(jù)互傳

    單片機(jī)編程實(shí)例介紹

    是指使用特定的編程語言編寫控制單片機(jī)工作的程序。 在本文中,將為您提供一些常見的單片機(jī)編程實(shí)例,包括基礎(chǔ)應(yīng)用、傳感器應(yīng)用、通信應(yīng)用等方面的案例。 一、基礎(chǔ)應(yīng)用 LED流水燈 流水燈是最
    的頭像 發(fā)表于 01-16 09:37 ?2399次閱讀

    單片機(jī)代碼自動生成器程序

    和輸入/輸出設(shè)備的芯片。它通常用于嵌入式系統(tǒng)中,能夠完成一系列特定的任務(wù)。開發(fā)人員編寫單片機(jī)代碼負(fù)責(zé)指導(dǎo)單片機(jī)執(zhí)行相應(yīng)的任務(wù)。然而,編寫單片機(jī)
    的頭像 發(fā)表于 01-08 14:12 ?2255次閱讀

    keil5mdk怎么編寫51單片機(jī)程序

    編寫51單片機(jī)程序需要以下步驟: 編寫程序框架:首先,你需要定義程序所需要的變量和常量,以及設(shè)置中斷向量和寄存器的初始狀態(tài)。這些信息可以根據(jù)
    的頭像 發(fā)表于 12-25 14:54 ?1191次閱讀

    pic單片機(jī)匯編程序實(shí)例

    以下是一個簡單的PIC單片機(jī)匯編程序示例,這個程序將實(shí)現(xiàn)一個LED閃爍的功能。 首先,我們需要了解PIC單片機(jī)的結(jié)構(gòu)和指令集。PIC單片機(jī)
    的頭像 發(fā)表于 12-14 11:01 ?1398次閱讀

    淺談C語言面向對象編程思想

    C語言是一種面向過程的語言,但是也可以用結(jié)構(gòu)體和函數(shù)指針來模擬面向對象的特性,比如封裝、繼承和多態(tài)。
    發(fā)表于 11-02 12:27 ?792次閱讀

    非常實(shí)用,推薦一種面向對象思維的單片機(jī)程序框架

    非常實(shí)用,推薦一種面向對象思維的單片機(jī)程序框架
    的頭像 發(fā)表于 10-24 18:03 ?431次閱讀
    非常實(shí)用,推薦一種<b class='flag-5'>面向</b><b class='flag-5'>對象</b>思維的<b class='flag-5'>單片機(jī)</b><b class='flag-5'>程序</b>框架

    單片機(jī)程序結(jié)束后都干嘛去了?

    單片機(jī)程序結(jié)束后都干嘛去了?
    的頭像 發(fā)表于 10-17 17:16 ?540次閱讀
    <b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>程序</b>結(jié)束后都干嘛去了?

    單片機(jī)復(fù)位的條件 單片機(jī)可以復(fù)位多少次 程序會導(dǎo)致單片機(jī)復(fù)位嗎

    單片機(jī)復(fù)位的條件 單片機(jī)可以復(fù)位多少次 程序會導(dǎo)致單片機(jī)復(fù)位嗎? 單片機(jī)復(fù)位的條件: 1. 上電復(fù)位:
    的頭像 發(fā)表于 10-17 16:44 ?2862次閱讀

    面向對象思想封裝IIC、AT24C64驅(qū)動

    使用面向對象的編程思想封裝IIC驅(qū)動,將IIC的屬性和操作封裝成一個庫,在需要創(chuàng)建一個IIC設(shè)備時(shí)只需要實(shí)例化一個IIC對象即可,本文是基于STM32和HAL庫做進(jìn)一步封裝的。
    的頭像 發(fā)表于 10-08 15:35 ?758次閱讀