最近需要在 ARM Cortex M3 上開發一個安全監控系統,茲將程式寫作時需要注意的事項整理如下:
l 區域變數(Local
Variable)
Ø 若使用較大的變數定義(long),會使用運算較慢的指令集,造成整體效能較慢,但不會增加çode size。
Ø 但使用較小的變數定義(),則需要多餘的指令作變數轉換,會增加code size。
Ø 編譯器有個最佳化選項 ”all-in-register locals”,會將local變數放在register上(Cortex
M3共有13個 32-bit general-purpose registers),當暫存器用完的時候,local變數才會放入到stack中。如此可以加速存取local
變數的時間。
建議:使用 int, unsigned int, 和 long,而不要使用
short。