MSP430開發(fā)注意事項
1.系統(tǒng)時鐘問題:
本文引用地址:http://m.butianyuan.cn/article/201611/321924.htm2.早期版本的IAR開發(fā)環(huán)境
3.在寫Flash期間,一定要關(guān)閉中斷,此時CPU無法執(zhí)行程序
4.調(diào)試的時候,不要選中”Release JTAG on Go”
5.在調(diào)試時,需要關(guān)閉看門狗,否則在打開看門狗的情況下,每當(dāng)執(zhí)行到斷點(diǎn),程序?qū)D(zhuǎn)到入口點(diǎn)從頭執(zhí)行?;蛘撸瑫和_\(yùn)行或停止到斷點(diǎn)處時,當(dāng)需要繼續(xù)運(yùn)行時,程序不再執(zhí)行,而是需要使用“同步JTAG”才能繼續(xù)運(yùn)行(從頭運(yùn)行?)
6. IAR EWB標(biāo)識符是區(qū)分大小寫的
7. 結(jié)構(gòu)變量內(nèi)部存在對齊要求,通常按照2個字節(jié)的位置對齊,在”C/EC++ Compiler Reference Guide”的P93又如下例子:
struct {
} s;
sizeof(s) 為10,而不是8
可以使用#pragma pack來改變這種對齊方式,但是會導(dǎo)致,這個結(jié)構(gòu)只能按字節(jié)方式存取
8. MSP430 IAR C/EC++ Compiler支持兩個運(yùn)行庫
9. cstartup的定制
(1). 在__low_level_init()中添加代碼。該函數(shù)可以用來初始化I/O寄存器,并決定數(shù)據(jù)段是否在cstartup被初始化。文件430srcliblowinit.c給出了框架,copy到項目目錄中使用,文件中有一定的使用說明。
(2) 若__low_level_init()中添加代碼不能滿足要求,則把430srclibcstartup.s43拷貝到自己的工作目錄,修改所需代碼;然后在將該文件添加到項目,在項目選型的XLINK的include頁下選擇Ignore CSTARTUP in library即可。
10. 使用#include “io430x14x.h”和#include “in430.h”來替代#include
可以使用定義的位變量
可以使用以下方式定義位變量,但是編譯器最終還是轉(zhuǎn)換為字節(jié)操作:
不推薦使用bitfields,效率很低
11. 數(shù)組的索引值用int型效率最高,char型也好略低
數(shù)組類型:char型數(shù)組效率最高,
其他類型的數(shù)組在索引時,都采用了乘法
評論