-
1 # 老馬識途微控制器
-
2 # 飛57709646
要看什麼樣的微控制器了,現在有些arm架構的微控制器效能很強大了,可以在上面安裝微作業系統了,只要呼叫作業系統的api就可以實現想用的功能了,不一定非要c語言。如果是在一個裸微控制器上開發,則需要對晶片的引腳,暫存器等有很好的瞭解,程式語言也只能選擇ASM或者C了。
-
3 # 衛士斯特司機
用c怎麼了,怎麼了,別用你的爪牙,拍黃瓜,c草草來show優越感,世界的一切來源於啥?是誰點亮了宇宙的第一道曙光,所有的井井有條來自於你的why,你要是追求到why的根底,都它,對,不要懷疑,都是它,是它,還是它,一個,所有大廈的根基,都屬於它,回答完畢。
機器語言->c->c++->java,然後後面的都是。。。
效能也是這樣排的
最厲害的還是寫的人,人是一切
c是唯一實現自舉的語言,懂的自然懂,問問微軟,linux,大蘋果,java都會告訴你答案,c是他們的爸爸
-
4 # IamKuge
1.彙編太麻煩,移植性差;
2.C/C++為操縱硬體而生,它的編譯器編譯成的目標平臺機器碼可直接執行,並非生成位元組碼或者指令碼;
3.JAVA,.NET語言編譯出來的程式是位元組碼,需要龐大的執行環境將位元組碼實時翻譯成機器碼才能執行;
4.Python,Ruby等屬於指令碼語言,需要直譯器逐條解釋(pyo可以無視),比位元組碼效能更差;
5.微控制器效能差,實時性要求高,而且沒有強大的執行環境和直譯器,故一般不能執行JAVA,.NET,Python,Ruby等程式,倒是可以執行Lua這樣輕量級指令碼。
C語言是最適合的,沒有之一!
-
5 # 清晨的第一縷曙光
微控制器資源有限,最好使用匯編,但是彙編移植性差,跳轉要寫標號,有時一段程式碼跳轉條件多了,寫標號名稱要想半天,換平臺後修改麻煩,不亞於重新寫,而c語言移植性好,換個平臺修改暫存器相關配置就可以重新使用了,節省時間,一般經常用的比如除法乘法運算用匯編寫,c語言直接嵌入,可以提高效率,加快執行速度。
-
6 # 哈頓大叔
微控制器記憶體小,譬如一些用於小家電的8位微控制器,記憶體是以K算的,所以用匯編或C編譯出來的目標二進位制程式碼是最小最高效的,JAVA,C#之類的語言,他們本身是需要JVM或CLI的虛擬機器環境來解釋程式碼執行,效率太低,而且記憶體佔用太高,只能用於相對高階的應用程式開發。任何微控制器的引導層或驅動層,都是使用匯編或C開發。
其實PASCAL也是可發展為微控制器開發語言,可是業界都以ASM與C為標準,沒企業開發基於PASCAL嵌入式編譯器,所以,就只有C和彙編適合微控制器開發了。
最後附上一個影片大家看看,一位大牛用JS寫的8位CPU指令流水執行時內部矽晶電路執行的模擬情況,瀏覽器可以執行,模擬器可以真實執行6502機器碼。
6502CPU是70年代末,喬布斯用來做APPLE II電腦時用的晶片,也是後期中華學習機任天堂FC,小霸王學習機等產品使用的晶片,沒什麼商業價值,但是有研學價值。
地址:http://visual6502.org/JSSim/
-
7 # 七俠鎮第三十九任捕頭
在裸機狀態下你想操縱硬體,不用匯編和C你用什麼?彙編雖然效率最高,但可讀性和可移植性較差,C語言是最好的選擇,可讀性和可移植性強,還兼顧執行效率,無疑是微控制器開發的最佳選擇。
-
8 # 黔景隨心社
我認為現在微控制器用C語言來主要有以下幾個原因:1.微控制器IO口很有限,大量的操作都是針對位的運算,C語言相對有優勢點。2.微控制器主頻比較低,儲存空間小,用其他高階語言寫的程式碼,程式碼大,執行率低,不能很好發揮微控制器的能力。3.C語言易學,容易看懂,方便移植,結構化,模組化強。是除彙編外執行效率最高的語言,但彙編不容易看懂,移植很不方便,所以C語言更適合微控制器。
回覆列表
微控制器為什麼還在用C語言程式設計?答案是:C語言是最適合微控制器程式設計的高階語言。
這個問題的意思應該是:現在有很多很好用的高階語言,如java,python,VC等等,為什麼這些語言不能用來編寫微控制器程式呢?那麼這個問題的答案就是:不能不能,而是不合適。
一、微控制器程式設計的特點對微控制器程式設計來說,首先要考慮的是微控制器的程式空間和資料空間都是有限的,所以要讓程式儘量短小精悍,以節省程式佔用的儲存空間。
第二、微控制器程式設計的一個主要物件是對微控制器的埠和內部暫存器的操作和配置,這個需要比較精確的時序控制。
第三、微控制器演算法運算中,儘量使用加法、減法、移位運算,因為乘法和除法運算會非常費時間,尤其是除法,會耗費很多時間,這對於速度本身就有限制的微控制器來說,是一個很大的負擔。
二、高階語言編寫微控制器程式的缺陷高階語言可以實現更為最佳化的演算法,更為方便的執行方案,但是,高階語言對程式儲存空間的佔用要比彙編和C語言多很多。這是最致命的一點,微控制器有限的儲存空間需要靠精打細算來設計程式,根本經不起高階語言臃腫的程式碼體積。
高階語言無法實現精確的時序控制。
三、C語言是一個折中選擇其實用C語言開發微控制器也是一個折中方案,因為最適合微控制器開發的程式語言實在太過晦澀難懂,並且每一種微控制器的彙編指令有很大區別,所以想把一個程式從這種微控制器移植到另一種微控制器簡直是痴心妄想,還不如重新寫一遍程式。
而C語言程式碼執行效率高,也比較精簡,更便於移植......所以在現今的微控制器程式語言中,C語言才會佔據絕對主導地位