首頁>Club>
5
回覆列表
  • 1 # 圖說的都是理

    開發微控制器學什麼語言好?主流的微控制器開發主要有兩種語言,即組合語言和C語言,下面我來說說我的理解。

    1、組合語言,對於初學者最好掌握,因為它更貼切地表達微控制器暫存器間的邏輯轉移關係,讓你理解微控制器更加透徹。

    2、C語言,主流的開發語言,程式設計起來更加容易,不需要太深入瞭解微控制器的內部結構即可開發。

    3、其實,編譯軟體是把C語言轉化為組合語言,再轉為微控制器能讀懂的二進位制檔案即HEX檔案,然後燒錄到微控制器裡。

    隨著技術的發展,微控制器變得越來越模組化,目前用C語言來開發的居多,這兩種語言各有各的優缺點點,不能說誰好誰不好。

    其實,語言本身是沒啥好糾結的,一個優秀的設計師並不是敲程式碼的,而是設計整個程式的架構,這才是核心。試想一下,假如程式的邏輯結構設計得不清晰,你再熟練各種語言又有何用呢?

  • 2 # 玩轉嵌入式

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

    1彙編程式設計的特點

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

    2C語言程式設計的特點

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

    第一個優點:易於移植

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

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

    第二個優點:易於閱讀

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

    3C語言對比彙編的優勢

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

  • 3 # 一枚科技仔

    既然要學習微控制器開發,那麼選擇合適的開發語言肯定是一個比較重要的。

    比較推薦C語言

    為什麼推薦C語言,首先來說C語言是結構化的語言,擁有指標這一靈魂產物,微控制器是非常底層的東西,當然我們就要用接近底層的語言去開發它。C語言又被稱為高階語言中的低階語言,但我覺得這句話是不太合理的,沒有底層的支援,那麼上層的一切都是虛無的。作為開發底層的首選語言,C語言是比較適合開發微控制器的。並且也解決的組合語言的兩個缺點。對於執行效率來講,現在的微控制器效能已經有很大提升了,這點差距幾乎都是微秒級別的,有差距但可以忽略。

    瞭解組合語言

    組合語言是的執行效率是非常高的。但問題也很多,比如可移植性差,它執行效率高的原因就是直接操作機器指令,但不同的機器又有不同的架構,那麼在不同的平臺上執行就顯得很吃力,或者根本就不能執行。在一個就是程式設計師讀起來很費勁,可讀性差。

    但還是要了解彙編,組合語言更能接近機器底層,那麼對機器執行的過程就更加清晰,對我們嵌入式程式設計師來說,瞭解機器底層的執行過程還是比較重要的,可以更清晰的去實現功能程式碼。

  • 中秋節和大豐收的關聯?
  • 長得像有男朋友的人,是什麼顏值?什麼感覺?