本文內(nèi)容轉(zhuǎn)自百問科技,原文:百問網(wǎng)新作《使用面向?qū)ο蟮乃枷刖帉?a target="_blank">單片機(jī)程序》
自2005年以來,我一直從事Linux開發(fā),但對(duì)于單片機(jī)始終沒有產(chǎn)生興趣,原因是覺得單片機(jī)太過簡單了,F(xiàn)lash和RAM只有幾十KB,感覺就像是在螺螄殼里面打坐,能展現(xiàn)出什么新花樣呢?直到最近兩年,我經(jīng)歷了一次震撼。
我有幸在某機(jī)器人公司看到了一個(gè)基于單片機(jī)和rtos開發(fā)的貓砂機(jī)器人代碼,拋開rtos內(nèi)核源碼,他們自己實(shí)現(xiàn)的源文件就超過了3000個(gè)。這讓我意識(shí)到,單片機(jī)也可以用于開發(fā)大型項(xiàng)目!我開始思考如何管理如此龐大的代碼量?
在Linux項(xiàng)目中,我們不需要關(guān)注寄存器級(jí)別的操作,那么在單片機(jī)領(lǐng)域是否也可以做到呢?
在Linux項(xiàng)目中,我們將項(xiàng)目拆分為多個(gè)子系統(tǒng),并進(jìn)一步將子系統(tǒng)拆分為多個(gè)層級(jí),編程時(shí)要么使用C++的類,要么使用C語言的結(jié)構(gòu)體,那么在單片機(jī)領(lǐng)域,這種做法可行嗎?
隨著單片機(jī)性能的提升,我們能夠?qū)崿F(xiàn)的項(xiàng)目功能也越來越多,對(duì)單片機(jī)工程師的要求也越來越高。過去,我們只需要一個(gè)while循環(huán)來處理所有事情;現(xiàn)在,我們引入了RTOS,使用多任務(wù)系統(tǒng)。過去,我們以面向過程的方式編寫程序,需要什么就寫什么;現(xiàn)在,我們以面向?qū)ο蟮姆绞骄帉懗绦颍瘸橄蟪鲆粋€(gè)類或結(jié)構(gòu)體,再進(jìn)行編程。
剛接觸面向?qū)ο缶幊虝r(shí),你可能會(huì)覺得:這是什么鬼?明明一個(gè)簡單的功能,為什么要?jiǎng)?chuàng)建多個(gè)結(jié)構(gòu)體并進(jìn)行注冊(cè)?
過去只需要幾行代碼就能解決問題,現(xiàn)在卻分散到2、3個(gè)文件中了!然而,在我的教學(xué)生涯中,一旦學(xué)生們掌握了面向?qū)ο蟮木幊趟枷耄麄兙驮僖不夭蝗チ耍核麄儫o法忍受過去的代碼。
我一直想在單片機(jī)領(lǐng)域推廣“面向?qū)ο蟮木幊趟枷搿保恢睕]有找到合適的單片機(jī)以及對(duì)應(yīng)的軟件庫來支持我的想法。直到我開始使用瑞薩的ARM內(nèi)核的RA MCU及其軟件包FSP,我確信這就是講解面向?qū)ο缶幊虝r(shí)需要用到的單片機(jī)和軟件包。瑞薩MCU的軟件包FSP就是基于面向?qū)ο蟮乃枷刖帉懙摹?/p>
對(duì)于每個(gè)設(shè)備,我們可以定義好接口,抽象出相應(yīng)的結(jié)構(gòu)體,并對(duì)其進(jìn)行實(shí)現(xiàn)。再結(jié)合FSP RASC圖形化配置工具和代碼生成工具,我們使用瑞薩MCU時(shí),變得異常簡單!我們不再需要關(guān)注寄存器級(jí)別的代碼,也不再需要重復(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ū)動(dòng)
-
講解如何使用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è)的工程師講解硬件知識(shí)、教你編寫驅(qū)動(dòng)程序
-
想提升編程水平的工程師:現(xiàn)在MCU的性能越來越強(qiáng),能做的項(xiàng)目越來越大,一個(gè)C文件里實(shí)現(xiàn)所有功能的方法不適合大項(xiàng)目了
目錄
DshanMCU-RA6M5開發(fā)板
1
END
1
-
mcu
+關(guān)注
關(guān)注
146文章
17004瀏覽量
350335 -
瑞薩
+關(guān)注
關(guān)注
35文章
22293瀏覽量
86089
原文標(biāo)題:干貨分享 | 《使用面向?qū)ο蟮乃枷刖帉憜纹瑱C(jī)程序》
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論