微控制器程式設計用C語言還是彙編?

微控制器是一種可程式設計器件,微控制器的出現使硬體設計變得更為簡單,產品的功能也更強大,而程式就是微控制器的靈魂。目前功能稍微複雜一點的電子產品,都是以微控制器為核心,再加以不通的外設電路實現不通的功能需求。微控制器的程式設計可以透過組合語言和C語言來實現。

1彙編程式設計的特點

彙編是一種更接近於硬體底層的低階語言。硬體在程式設計時匯流排和地址非常重要,在組合語言中,一般用助記符來替代機器指令的操作碼,用標號代表運算元的地址,所以組合語言和機器指令之間存在著唯一對應的關係,這就導致了不通系列的微控制器其彙編指令集是完全不通的。這樣做是比較麻煩的,因為更改了微控制器或者升級老產品之後,原有的彙編程式碼難以跨平臺移植,只能再重新編寫。所以,彙編的移植性非常差,由於是直接操作機器指令,所以在可讀性上也非常差。這是組合語言的兩個最大的缺點,但是其優點就是執行效率非常高。從方便的角度上來說,彙編方便了硬體,但對工程師卻不友好。

微控制器程式設計用C語言還是彙編?

2C語言程式設計的特點

在前幾年使用匯編程式設計的人還是挺多的,現在使用匯編的人原來越少,即使是寫驅動的人也不完全使用匯編而是使用匯編和C語言結合的方式。微控制器的C語言程式設計具有兩個最大的優點。

第一個優點:易於移植

有過微控制器C語言程式設計的同行都有這樣的經歷,在程式設計時,首先要在初始化中配置微控制器的暫存器,配置完之後的程式碼不再頻繁的和暫存器打交道,所以使得C語言的層次非常清晰,在移植程式碼時,只需要根據新的平臺修改一下暫存器的配置部分就可以了,功能主體部分幾乎不用修改。這也就是很多優秀程式設計師所倡導的當文件層次化程式設計的原因,每個功能塊都對應一個C檔案和H標頭檔案,在移植時只需要把這兩個檔案拷走即可,方便了移植。

微控制器程式設計用C語言還是彙編?

從這個方面來講,完全可以拋開微控制器的暫存器配置來實現程式設計,這方面做的比較好的如STM32的官方庫程式設計和CMSIS等。

第二個優點:易於閱讀

由於C語言透過暫存器和硬體驅動/介面建立關係,程式設計者不用再去記憶枯燥的指令,而且C語言程式設計的層次化、模組化程式設計也大大提高了程式碼的可讀性。相比於彙編,C語言可以用更少的程式碼實現更復雜的功能,而且還更易於理解。這也是C語言越來越受歡迎的原因。

微控制器程式設計用C語言還是彙編?

3C語言對比彙編的優勢

透過前面的描述可以看得出來,C語言佔有更多得優勢,C語言易於跨平臺移植、C語言易於理解、C語言易於延續。總之,從程式設計得角度C語言更受程式設計師們得歡迎。