嵌入式與韌體

在小型微控制器的韌體中,經常避免使用malloc等動態記憶體配置,其理由下列何者正確?

  1. A因為微控制器完全無法使用C語言的函式
  2. B因為RAM很小,可能因碎片化而配置失敗,且配置所需的時間難以預測
  3. C因為動態配置的記憶體即使關閉電源也不會消失
查看答案與解析

正確答案:B. 因為RAM很小,可能因碎片化而配置失敗,且配置所需的時間難以預測

在只有數KB~數百KB RAM的微控制器上反覆配置與釋放,空閒空間會被切得細碎,即使總量足夠,也可能在配置較大區塊時失敗。對於持續運作數個月的裝置,總有一天會有失敗的風險。此外,配置所需的時間不固定,不適合即時處理。因此常採用事先靜態配置所需記憶體的設計。

  • A. C語言的函式可以正常使用。
  • B. 正確。對於長時間持續運作的裝置尤其成為問題。
  • C. 關閉電源就會消失。
練習這個領域 前往領域頁面

嵌入式與韌體的其他題目

  1. 在沒有MMU的小型微控制器上,關於堆疊使用過量,應注意的事項下列何者正確?
  2. 在參考電壓3.3 V的12位元ADC中,讀取到的值為2048。輸入電壓最接近下列何者?
  3. 在微控制器以固定間隔大量擷取ADC轉換結果時,使用DMA的優點,下列何者正確?
  4. 以C語言的位元欄位(bit-field)結構來表示週邊電路的暫存器時,需要注意的地方下列何者正確?
  5. 在許多微控制器上,將不會變更的大型表格(字型資料等)加上const宣告,其優點下列何者正確?

這個領域的比較