新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430開發注意事項

        MSP430開發注意事項

        作者: 時間:2016-11-26 來源:網絡 收藏
        以下是在使用MSP430中的一些總結:

        1.系統時鐘問題:

        本文引用地址:http://www.104case.com/article/201611/321924.htm

        系統默認使用DCO,使用外部高速晶振XT2時必須自己開啟XT2,并延時50us等待XT2起振,然后手工清除IFG1中的OFIFG位

        !!!!一定要注意操作順序:打開XT2->等待XT2穩定->切換系統時鐘為XT2

        若后面兩步操作反了,在通常情況下不會出現問題,但是在電壓不穩MCU頻繁復位的情況下,非常容易造成MCU死掉,只能掉電后重新上電才能可靠復位。

        2.早期版本的IAR開發環境

        必須在Project->Option->C-Spy中選擇對應器件的DDF文件,否則調試時無SFR窗口。

        3.在寫Flash期間,一定要關閉中斷,此時CPU無法執行程序

        4.調試的時候,不要選中”Release JTAG on Go”

        5.在調試時,需要關閉看門狗,否則在打開看門狗的情況下,每當執行到斷點,程序將會跳轉到入口點從頭執行。或者,暫停運行或停止到斷點處時,當需要繼續運行時,程序不再執行,而是需要使用“同步JTAG”才能繼續運行(從頭運行?)

        6. IAR EWB標識符是區分大小寫的

        7. 結構變量內部存在對齊要求,通常按照2個字節的位置對齊,在”C/EC++ Compiler Reference Guide”的P93又如下例子:

        struct {

        short s;

        char c;

        long l;

        char c2;

        } s;

        sizeof(s) 為10,而不是8

        可以使用#pragma pack來改變這種對齊方式,但是會導致,這個結構只能按字節方式存取

        8. MSP430 IAR C/EC++ Compiler支持兩個運行庫

        1. IAR CLIB : 主要用于8或16為處理器,不完全兼容ISO/ANSI C,也不完全支持IEEE754浮點數,不支持Embedded C++.

        2. IAR CLIB : 支持ISO/ANSI C和Embedded C++.

        9. cstartup的定制

        (1). 在__low_level_init()中添加代碼。該函數可以用來初始化I/O寄存器,并決定數據段是否在cstartup被初始化。文件430srcliblowinit.c給出了框架,copy到項目目錄中使用,文件中有一定的使用說明。

        (2) 若__low_level_init()中添加代碼不能滿足要求,則把430srclibcstartup.s43拷貝到自己的工作目錄,修改所需代碼;然后在將該文件添加到項目,在項目選型的XLINK的include頁下選擇Ignore CSTARTUP in library即可。

        10. 使用#include “io430x14x.h”和#include “in430.h”來替代#include

        可以使用定義的位變量

        可以使用以下方式定義位變量,但是編譯器最終還是轉換為字節操作:

        struct

        {

        unsigned char WDTIE : 1;

        unsigned char OFIE : 1;

        unsigned char : 2;

        unsigned char NMIIE : 1;

        unsigned char ACCVIE : 1;

        unsigned char URXIE0 : 1;

        unsigned char UTXIE0 : 1;

        } IE1_bit;

        不推薦使用bitfields,效率很低

        11. 數組的索引值用int型效率最高,char型也好略低

        數組類型:char型數組效率最高,

        其他類型的數組在索引時,都采用了乘法



        關鍵詞: MSP430開發注意事

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 张北县| 济源市| 鹿邑县| 黑水县| 广水市| 深水埗区| 温宿县| 淮滨县| 理塘县| 漾濞| 屏东市| 嘉定区| 韶山市| 尼玛县| 江安县| 上林县| 鱼台县| 大田县| 安图县| 玛曲县| 张家界市| 唐河县| 乌拉特前旗| 常德市| 长兴县| 镇沅| 廉江市| 博客| 寿光市| 长白| 克什克腾旗| 镇安县| 新昌县| 内乡县| 吉隆县| 通渭县| 焉耆| 汾西县| 蓬莱市| 潼南县| 美姑县|