單片機(jī)是一種可編程器件,單片機(jī)的出現(xiàn)使硬件設(shè)計(jì)變得更為簡(jiǎn)單,產(chǎn)品的功能也更強(qiáng)大,而程序就是單片機(jī)的靈魂。 目前功能稍微復(fù)雜一點(diǎn)的電子產(chǎn)品,都是以單片機(jī)為核心,再加以不通的外設(shè)電路實(shí)現(xiàn)不通的功能需求。 單片機(jī)的編程可以通過匯編語言和C語言來實(shí)現(xiàn)。 1 匯編編程的特點(diǎn) 匯編是一種更接近于硬件底層的低級(jí)語言。 硬件在編程時(shí)總線和地址非常重要,在匯編語言中,一般用助記符來替代機(jī)器指令的操作碼,用標(biāo)號(hào)代表操作數(shù)的地址,所以匯編語言和機(jī)器指令之間存在著唯一對(duì)應(yīng)的關(guān)系,這就導(dǎo)致了不通系列的單片機(jī)其匯編指令集是完全不通的。 這樣做是比較麻煩的,因?yàn)楦牧藛纹瑱C(jī)或者升級(jí)老產(chǎn)品之后,原有的匯編代碼難以跨平臺(tái)移植,只能再重新編寫。 所以,匯編的移植性非常差,由于是直接操作機(jī)器指令,所以在可讀性上也非常差。 這是匯編語言的兩個(gè)最大的缺點(diǎn),但是其優(yōu)點(diǎn)就是執(zhí)行效率非常高。 從方便的角度上來說,匯編方便了硬件,但對(duì)工程師卻不友好。 2C語言編程的特點(diǎn)
在前幾年使用匯編編程的人還是挺多的,現(xiàn)在使用匯編的人原來越少,即使是寫驅(qū)動(dòng)的人也不完全使用匯編而是使用匯編和C語言結(jié)合的方式。 單片機(jī)的C語言編程具有兩個(gè)最大的優(yōu)點(diǎn)。 第一個(gè)優(yōu)點(diǎn):易于移植 有過單片機(jī)C語言編程的同行都有這樣的經(jīng)歷,在編程時(shí),首先要在初始化中配置單片機(jī)的寄存器,配置完之后的代碼不再頻繁的和寄存器打交道,所以使得C語言的層次非常清晰,在移植代碼時(shí),只需要根據(jù)新的平臺(tái)修改一下寄存器的配置部分就可以了,功能主體部分幾乎不用修改。 這也就是很多優(yōu)秀程序員所倡導(dǎo)的當(dāng)文檔層次化編程的原因,每個(gè)功能塊都對(duì)應(yīng)一個(gè)C文件和H頭文件,在移植時(shí)只需要把這兩個(gè)文件拷走即可,方便了移植。
從這個(gè)方面來講,完全可以拋開單片機(jī)的寄存器配置來實(shí)現(xiàn)編程,這方面做的比較好的如STM32的官方庫編程和CMSIS等。 第二個(gè)優(yōu)點(diǎn):易于閱讀 由于C語言通過寄存器和硬件驅(qū)動(dòng)/接口建立關(guān)系,編程者不用再去記憶枯燥的指令,而且C語言編程的層次化、模塊化編程也大大提高了代碼的可讀性。 相比于匯編,C語言可以用更少的代碼實(shí)現(xiàn)更復(fù)雜的功能,而且還更易于理解。 這也是C語言越來越受歡迎的原因。 3C語言對(duì)比匯編的優(yōu)勢(shì)
通過前面的描述可以看得出來,C語言占有更多得優(yōu)勢(shì),C語言易于跨平臺(tái)移植、C語言易于理解、C語言易于延續(xù)。 總之,從編程得角度C語言更受程序員們得歡迎。 關(guān)注微信公眾號(hào)『玩轉(zhuǎn)嵌入式』,后臺(tái)回復(fù)“128”獲取干貨資料匯總,回復(fù)“256”加入技術(shù)交流群。
精彩技術(shù)文章推薦
01
|求伯君:中國(guó)最“?!背绦騿T,一己之力挑戰(zhàn)微軟
|
02
|一個(gè)博士應(yīng)聘華為,大疆的經(jīng)歷...
|
03
|華為員工裸辭之后悟出的那些“坑”!
|
04
|學(xué)習(xí)經(jīng)歷分享,單片機(jī)大神是如何煉成的!
|
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!