![2297a9b8-2457-11ee-962d-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeKAMMu0AABBdvwiMRc151.gif)
本文內容轉自百問科技,原文:百問網新作《使用面向對象的思想編寫單片機程序》
自2005年以來,我一直從事Linux開發,但對于單片機始終沒有產生興趣,原因是覺得單片機太過簡單了,Flash和RAM只有幾十KB,感覺就像是在螺螄殼里面打坐,能展現出什么新花樣呢?直到最近兩年,我經歷了一次震撼。
我有幸在某機器人公司看到了一個基于單片機和rtos開發的貓砂機器人代碼,拋開rtos內核源碼,他們自己實現的源文件就超過了3000個。這讓我意識到,單片機也可以用于開發大型項目!我開始思考如何管理如此龐大的代碼量?
在Linux項目中,我們不需要關注寄存器級別的操作,那么在單片機領域是否也可以做到呢?
在Linux項目中,我們將項目拆分為多個子系統,并進一步將子系統拆分為多個層級,編程時要么使用C++的類,要么使用C語言的結構體,那么在單片機領域,這種做法可行嗎?
隨著單片機性能的提升,我們能夠實現的項目功能也越來越多,對單片機工程師的要求也越來越高。過去,我們只需要一個while循環來處理所有事情;現在,我們引入了RTOS,使用多任務系統。過去,我們以面向過程的方式編寫程序,需要什么就寫什么;現在,我們以面向對象的方式編寫程序,先抽象出一個類或結構體,再進行編程。
剛接觸面向對象編程時,你可能會覺得:這是什么鬼?明明一個簡單的功能,為什么要創建多個結構體并進行注冊?
過去只需要幾行代碼就能解決問題,現在卻分散到2、3個文件中了!然而,在我的教學生涯中,一旦學生們掌握了面向對象的編程思想,他們就再也回不去了:他們無法忍受過去的代碼。
我一直想在單片機領域推廣“面向對象的編程思想”,但一直沒有找到合適的單片機以及對應的軟件庫來支持我的想法。直到我開始使用瑞薩的ARM內核的RA MCU及其軟件包FSP,我確信這就是講解面向對象編程時需要用到的單片機和軟件包。瑞薩MCU的軟件包FSP就是基于面向對象的思想編寫的。
對于每個設備,我們可以定義好接口,抽象出相應的結構體,并對其進行實現。再結合FSP RASC圖形化配置工具和代碼生成工具,我們使用瑞薩MCU時,變得異常簡單!我們不再需要關注寄存器級別的代碼,也不再需要重復造輪子,可以將精力集中在業務邏輯和算法上。
得益于瑞薩強大的MCU、強大的軟件開發工具,也得益于瑞薩和RA生態工作室提供的支持,我們團隊編寫了《ARM嵌入式系統中面向對象的模塊編程方法》
-
講解面向對象編程在單片機開發中的使用
-
結合FSP軟件包實例分析外設驅動
-
講解如何使用RASC配置片上設備
-
教你如何編寫面向對象編程
-
更講解如何操作外接的模塊:引入大型項目中的編程思想
單片機工程師們,很多沒有軟件工程的概念,編寫的程序結構不好,不易移植、不易擴展。軟件專業的工程師們,又沒有嵌入式的基礎,總覺得跟硬件打交道很難。
適用范圍
-
給單片機工程師介紹軟件工程的概念,把項目拆分為子系統,分層設計子系統,編寫代碼時使用面向對象的思想
-
給軟件專業的工程師講解硬件知識、教你編寫驅動程序
-
想提升編程水平的工程師:現在MCU的性能越來越強,能做的項目越來越大,一個C文件里實現所有功能的方法不適合大項目了
目錄
![22c6ae7a-2457-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeKAEUFuAAGWJkuXSaA736.jpg)
DshanMCU-RA6M5開發板
![231ca37a-2457-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeKAE7x3AAGjYmOSnBM429.jpg)
![236afc50-2457-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeOARCKCAAGxvB_p3ic709.jpg)
![239fcc96-2457-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeOAKtQgAAHy6xQftNM249.jpg)
![23fd4c72-2457-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeOANLFVAAFSL-0rb8k374.jpg)
![2445571a-2457-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/F6/wKgZomToDeOAQP28AABpc2wjAFQ125.jpg)
1
END
1
-
mcu
+關注
關注
146文章
17323瀏覽量
352652 -
瑞薩
+關注
關注
35文章
22310瀏覽量
86754
原文標題:干貨分享 | 《使用面向對象的思想編寫單片機程序》
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
基于狀態機和面向對象的思想設計按鍵檢測模塊
![基于狀態<b class='flag-5'>機</b>和<b class='flag-5'>面向</b><b class='flag-5'>對象</b>的<b class='flag-5'>思想</b>設計按鍵檢測模塊](https://file1.elecfans.com/web2/M00/0C/7A/wKgaomc1cvKAcMgJAAAJrOYBD9A024.jpg)
STM8S003F的作用是什么,如何編寫單片機程序去控制?
單片機編程語言有哪些選擇
單片機怎么寫入程序
keil可以讀出單片機的程序嗎
單片機燒錄程序可以重新燒嗎
stm32單片機燒錄程序會擦除原來的程序嗎
藍牙模塊如何實現單片機和手機端數據互傳
![藍牙模塊如何實現<b class='flag-5'>單片機</b>和手機端數據互傳](https://file1.elecfans.com/web2/M00/FF/17/wKgaomagzkeAd9gtAAAaFxHI0pw392.png)
評論