
本文內(nèi)容轉(zhuǎn)自百問科技,原文:百問網(wǎng)新作《使用面向?qū)ο蟮乃枷刖帉?a target="_blank">單片機程序》
自2005年以來,我一直從事Linux開發(fā),但對于單片機始終沒有產(chǎn)生興趣,原因是覺得單片機太過簡單了,F(xiàn)lash和RAM只有幾十KB,感覺就像是在螺螄殼里面打坐,能展現(xiàn)出什么新花樣呢?直到最近兩年,我經(jīng)歷了一次震撼。
我有幸在某機器人公司看到了一個基于單片機和rtos開發(fā)的貓砂機器人代碼,拋開rtos內(nèi)核源碼,他們自己實現(xiàn)的源文件就超過了3000個。這讓我意識到,單片機也可以用于開發(fā)大型項目!我開始思考如何管理如此龐大的代碼量?
在Linux項目中,我們不需要關(guān)注寄存器級別的操作,那么在單片機領(lǐng)域是否也可以做到呢?
在Linux項目中,我們將項目拆分為多個子系統(tǒng),并進一步將子系統(tǒng)拆分為多個層級,編程時要么使用C++的類,要么使用C語言的結(jié)構(gòu)體,那么在單片機領(lǐng)域,這種做法可行嗎?
隨著單片機性能的提升,我們能夠?qū)崿F(xiàn)的項目功能也越來越多,對單片機工程師的要求也越來越高。過去,我們只需要一個while循環(huán)來處理所有事情;現(xiàn)在,我們引入了RTOS,使用多任務(wù)系統(tǒng)。過去,我們以面向過程的方式編寫程序,需要什么就寫什么;現(xiàn)在,我們以面向?qū)ο蟮姆绞骄帉懗绦?,先抽象出一個類或結(jié)構(gòu)體,再進行編程。
剛接觸面向?qū)ο缶幊虝r,你可能會覺得:這是什么鬼?明明一個簡單的功能,為什么要創(chuàng)建多個結(jié)構(gòu)體并進行注冊?
過去只需要幾行代碼就能解決問題,現(xiàn)在卻分散到2、3個文件中了!然而,在我的教學生涯中,一旦學生們掌握了面向?qū)ο蟮木幊趟枷?,他們就再也回不去了:他們無法忍受過去的代碼。
我一直想在單片機領(lǐng)域推廣“面向?qū)ο蟮木幊趟枷搿?,但一直沒有找到合適的單片機以及對應(yīng)的軟件庫來支持我的想法。直到我開始使用瑞薩的ARM內(nèi)核的RA MCU及其軟件包FSP,我確信這就是講解面向?qū)ο缶幊虝r需要用到的單片機和軟件包。瑞薩MCU的軟件包FSP就是基于面向?qū)ο蟮乃枷刖帉懙摹?/p>
對于每個設(shè)備,我們可以定義好接口,抽象出相應(yīng)的結(jié)構(gòu)體,并對其進行實現(xiàn)。再結(jié)合FSP RASC圖形化配置工具和代碼生成工具,我們使用瑞薩MCU時,變得異常簡單!我們不再需要關(guān)注寄存器級別的代碼,也不再需要重復造輪子,可以將精力集中在業(yè)務(wù)邏輯和算法上。
得益于瑞薩強大的MCU、強大的軟件開發(fā)工具,也得益于瑞薩和RA生態(tài)工作室提供的支持,我們團隊編寫了《ARM嵌入式系統(tǒng)中面向?qū)ο蟮哪K編程方法》
-
講解面向?qū)ο缶幊淘?a target="_blank">單片機開發(fā)中的使用
-
結(jié)合FSP軟件包實例分析外設(shè)驅(qū)動
-
講解如何使用RASC配置片上設(shè)備
-
教你如何編寫面向?qū)ο缶幊?/p>
-
更講解如何操作外接的模塊:引入大型項目中的編程思想
單片機工程師們,很多沒有軟件工程的概念,編寫的程序結(jié)構(gòu)不好,不易移植、不易擴展。軟件專業(yè)的工程師們,又沒有嵌入式的基礎(chǔ),總覺得跟硬件打交道很難。
適用范圍
-
給單片機工程師介紹軟件工程的概念,把項目拆分為子系統(tǒng),分層設(shè)計子系統(tǒng),編寫代碼時使用面向?qū)ο蟮乃枷?/span>
-
給軟件專業(yè)的工程師講解硬件知識、教你編寫驅(qū)動程序
-
想提升編程水平的工程師:現(xiàn)在MCU的性能越來越強,能做的項目越來越大,一個C文件里實現(xiàn)所有功能的方法不適合大項目了
目錄

DshanMCU-RA6M5開發(fā)板





1
END
1
-
mcu
+關(guān)注
關(guān)注
146文章
17945瀏覽量
363640 -
瑞薩
+關(guān)注
關(guān)注
36文章
22378瀏覽量
87969
原文標題:干貨分享 | 《使用面向?qū)ο蟮乃枷刖帉憜纹瑱C程序》
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
完整版—單片機編程思想(推薦下載!)
讓單片機代碼性能起飛的七大技巧

基于狀態(tài)機和面向對象的思想設(shè)計按鍵檢測模塊

STM8S003F的作用是什么,如何編寫單片機程序去控制?
單片機編程語言有哪些選擇
單片機怎么寫入程序
單片機hex文件反編譯成C語言的過程
keil可以讀出單片機的程序嗎
單片機燒錄程序用什么軟件
單片機燒錄程序可以重新燒嗎
單片機燒錄程序的線比單片機上的少還能燒錄嗎
單片機燒錄程序的基本步驟是什么
stm32單片機燒錄程序會擦除原來的程序嗎
藍牙模塊如何實現(xiàn)單片機和手機端數(shù)據(jù)互傳

評論