2015年5月23日 星期六

MCU進入C++時代--個人觀點

MCU上使用C++並不是新事件。對Bee來說,只是何時?為何?
Bee很少使用C++,因為機會不多。連PC程式也都是用C寫的。
MCU開始使用SD卡,檔案系統出現後,PC/MCU程式開始不再分。
在使用GUI相關應用後,開始使用其他PC原始碼。
但常常可以找到的是C++程式碼。這種情況越來越多。
可以不用修改就在MCU執行PC程式,使用起來就像中毒一樣,因為實在太方便了。
沒多久就遇到要使用C++程式的問題。因為應用程式是c++寫的。

MCU目前仍以C為主,不管是驅動函式庫,RTOS,或是其他常用函式庫皆以C為主。
C++因為對記憶體需求高,另外經常調用動態記憶體。在記憶體不多的MCU上皆屬不合適使用的。
但現在MCU進展已很快了。不管是Cortex-A5系列的出現,或是支援Quad-SPI Flash的出現。
皆已解除應用程式容量問題。有了較大型應用程式出現,記憶體需求也提升。
SDRAM支援已是一般MCU擴充選項,所以對RAM的需求也沒有限制。

唯一的限制只剩下PC/MCU環境差異。RTOS及File system為MCU和PC最基本的需求。
在架好和PC相容環境後的MCU就可以直接使用PC原始碼。
再來就是遇到C++的應用程式。
因為底層系統仍是C,應用層則是C++,C/C++混合使用便是第一個要解決的。
就這樣,自然的在MCU上使用C++開始變成常態。