顯示具有 volatile 標籤的文章。 顯示所有文章
顯示具有 volatile 標籤的文章。 顯示所有文章

2012年1月9日 星期一

[Embedded] ARM Coretex M3 程式寫作注意事項


最近需要在 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