常量陣列定義在函式內部時,函式執行時需要將常量陣列拷貝到堆疊,浪費了堆疊空間,還增加了函式#?copymemorybytes的時間開銷。所以對於陣列常量建議儲存於函式外部,當然這僅限於430的iar編譯器,別的情況就要實際執行一下看了。
對比分析:
常量陣列定義在函式內部
static void updata_lead_num(void)
; _dint();//關總中斷
lcd_write_string86(7,9,0,dsp_lead[leadnum]);
_eint();//開總中斷
}
對應彙編
對應 mapstatic void updata_lead_num(void)
; 00a154 410c mov.w sp,r12
00a156 403e 4897 mov.w #0x4897,r14
00a15a 403d 0030 mov.w #0x30,r13
00a15e 13b0 a824 calla #?copymemorybytes
_dint();//關總中斷
00a162 c232 dint
00a164 4303 nop
lcd_write_string86(7,9,0,dsp_lead[leadnum]);
00a166 410f mov.w sp,r15
00a168 425e 13ac mov.b &leadnum,r14
00a16c 065e rlam.w #2,r14
00a16e 5e0f add.w r14,r15
00a170 434e clr.b r14
00a172 407d 0009 mov.b #0x9,r13
00a176 407c 0007 mov.b #0x7,r12
00a17a 13b0 71ee calla #lcd_write_string86
_eint();//開總中斷
00a17e d232 eint
}
1 (was code)
relative segment, address: a150 - a185 (0x36 bytes), align: 1
segment part 16. intra module refs: menu_preview
local address
***** *****==
updata_lead_num a150
calls direct
cstack = 00000000 ( 00000034 )
常量陣列 函式在外部
uint8 const dsp_lead[12][4] = ;
static void updata_lead_num(void)
對應彙編
對應mapupdata_lead_num:
00a4d2 c232 dint
00a4d4 4303 nop
lcd_write_string86(7,9,0,dsp_lead[leadnum]);
00a4d6 425f 13ac mov.b &leadnum,r15
00a4da 065f rlam.w #2,r15
00a4dc 503f 48a8 add.w #0x48a8,r15
00a4e0 434e clr.b r14
00a4e2 407d 0009 mov.b #0x9,r13
00a4e6 407c 0007 mov.b #0x7,r12
00a4ea 13b0 71ee calla #lcd_write_string86
_eint();//開總中斷
00a4ee d232 eint
}
1 (was code)
relative segment, address: a4d2 - a4f1 (0x20 bytes), align: 1
segment part 16. intra module refs: menu_preview
local address
***** *****==
updata_lead_num a4d2
calls direct
cstack = 00000000 ( 00000004 )
python msp430 MSP430的比較器
這兩天研究了一下430的比較器,開始的時候,沒有看懂是怎麼一回事,在 看這方面的部落格,好像懂了,但是一到程式設計,就變得無從下手,但是,皇天不負有心人,筆者還是把他弄懂了 其實這裡就是看懂一幅圖,兩個暫存器,明白工作原理就可以了 這是比較器a的邏輯圖,比價器a由4個部分組成 標號2,外部電壓輸入端...
MSP430教程8 MSP430微控制器復位電路
msp430 微控制器系統復位電路 從上msp430 系統復位電路功能模組圖中可以看到了兩個復位訊號,乙個是上電復位訊號 por power on reset 和上電清除訊號 puc power up clear por 訊號是器件的復位訊號,此訊號只有在以下的事件發生時才會產生 器件上電時。rst...
msp430鍵盤程式
msp430 按鍵程式 含電路圖及源 include void init port void void delay void int keyprocess void return nres 處理來自埠 1 的中斷 interrupt port1 vector void port isr void i...