嵌入式與韌體
在小型微控制器的韌體中,經常避免使用malloc等動態記憶體配置,其理由下列何者正確?
- A因為微控制器完全無法使用C語言的函式
- B因為RAM很小,可能因碎片化而配置失敗,且配置所需的時間難以預測
- C因為動態配置的記憶體即使關閉電源也不會消失
查看答案與解析
正確答案:B. 因為RAM很小,可能因碎片化而配置失敗,且配置所需的時間難以預測
在只有數KB~數百KB RAM的微控制器上反覆配置與釋放,空閒空間會被切得細碎,即使總量足夠,也可能在配置較大區塊時失敗。對於持續運作數個月的裝置,總有一天會有失敗的風險。此外,配置所需的時間不固定,不適合即時處理。因此常採用事先靜態配置所需記憶體的設計。
- A. C語言的函式可以正常使用。
- B. 正確。對於長時間持續運作的裝置尤其成為問題。
- C. 關閉電源就會消失。