欢迎来到天天文库
浏览记录
ID:36536056
大小:965.13 KB
页数:9页
时间:2019-05-11
《使用大RAM430芯片注意事项》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机使用MSP430F1611中的大RAM注意事项TI推出了拥有10K内置SRAM的单片机MSP430F1611,许多用户在使用中发现在IAR环境中不能设置多个大数组。当设置多个大数组后,会无法进入硬件仿真环境(FETDebug),就连下载程序后脱机运行也不正常。为此,我们做了一个测试,并找到了原因与解决方法。测试条件:硬件环境:MSP430F1611单片机;MSP430-JTAG工具;MSP430PM-64适配器;软件环境:IA
2、REW4303.10A(IAREmbeddedWorkbenchIDEV3.10A)测试程序:#include#defineMAX_DATA_SIZE1900unsignedcharA_BUF0[MAX_DATA_SIZE];unsignedcharA_BUF1[MAX_DATA_SIZE];unsignedcharA_BUF2[MAX_DATA_SIZE];unsignedcharA_BUF3[MAX_DATA_SIZE];unsignedcharA_BUF4[MAX_DATA
3、_SIZE];voidmain(void){unsignedcharj=0;WDTCTL=WDTPW+WDTHOLD;//StopwatchdogtimerP1DIR
4、=0x01;//SetP1.0tooutputdirectionfor(;;){volatileunsignedinti;P1OUT^=0x01;//ToggleP1.0usingexclusive-ORi=50000;//Delaydo(i--);while(i!=0);for(i=0;i5、[i]=j;A_BUF1[i]=j;A_BUF2[i]=j;A_BUF3[i]=j;A_BUF4[i]=j;}j++;}}【地址:杭州市登云路639号电子市场4楼C区电话:0571-88800000传真:0571-89908080邮编:310011】第1页利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机在测试程序中设置了五个unsignedchar数组,全局变量,大小为1900,共占用RAM资源9500个字节。将测试程序编译下载到单片机,会出现如下图的现象似乎单片机处于RU6、N状态,且进入不了用户编写的MAIN函数。点击Debug->StopDebuging【地址:杭州市登云路639号电子市场4楼C区电话:0571-88800000传真:0571-89908080邮编:310011】第2页利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机在Disassembly窗口中发现程序停留在MEMSET子程序中在查看Register发现IFG0中的WDTIFG被置位。【地址:杭州市登云路639号电子市场4楼C区电话:0571-88800000传真:05717、-89908080邮编:310011】第3页利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机为什么WDTIFG会被置位呢?众所周知,IARC编译器在编译链接程序时,会自动添加一些初始化的程序,在IAR环境中称为Cstartup.s43,可以从这个初始化程序中找到原因。在此例程中,添加的Cstartup.s43程序可以从Disassembly窗口中获取,程序如下:__program_start:00400031400039mov.w#0x3900,SP?cstart_init8、_zero:0040043C400011mov.w#0x1100,R120040080E43clr.wR1400400A30121C25push.w#0x251C00400EB0127C40call#memset0040122153incd.wSP?cstart_call_main:004014B0122240call#main004018B0127840call#exit_exit:00401C30402040br#0x4020?C_EXIT:__exit:004020FF3Fjmp?C_EXITmain9、:0040222183decd.wSP0040244E43clr.bR14004026B240805A2001mov.w#0x5A80,&WDTCTL00402CD2D32200bis.b#0x1,&P1DIR004030D2E32100xor.b#0x1,&P1OUT004034B14050C30000mov.w#0xC350,0x0(SP)00403AB1530000add.w#0xFFFF,0x0(SP)0
5、[i]=j;A_BUF1[i]=j;A_BUF2[i]=j;A_BUF3[i]=j;A_BUF4[i]=j;}j++;}}【地址:杭州市登云路639号电子市场4楼C区电话:0571-88800000传真:0571-89908080邮编:310011】第1页利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机在测试程序中设置了五个unsignedchar数组,全局变量,大小为1900,共占用RAM资源9500个字节。将测试程序编译下载到单片机,会出现如下图的现象似乎单片机处于RU
6、N状态,且进入不了用户编写的MAIN函数。点击Debug->StopDebuging【地址:杭州市登云路639号电子市场4楼C区电话:0571-88800000传真:0571-89908080邮编:310011】第2页利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机在Disassembly窗口中发现程序停留在MEMSET子程序中在查看Register发现IFG0中的WDTIFG被置位。【地址:杭州市登云路639号电子市场4楼C区电话:0571-88800000传真:0571
7、-89908080邮编:310011】第3页利尔达单片机技术有限公司WWW.LIERDA.COMMSP430F11611单片机为什么WDTIFG会被置位呢?众所周知,IARC编译器在编译链接程序时,会自动添加一些初始化的程序,在IAR环境中称为Cstartup.s43,可以从这个初始化程序中找到原因。在此例程中,添加的Cstartup.s43程序可以从Disassembly窗口中获取,程序如下:__program_start:00400031400039mov.w#0x3900,SP?cstart_init
8、_zero:0040043C400011mov.w#0x1100,R120040080E43clr.wR1400400A30121C25push.w#0x251C00400EB0127C40call#memset0040122153incd.wSP?cstart_call_main:004014B0122240call#main004018B0127840call#exit_exit:00401C30402040br#0x4020?C_EXIT:__exit:004020FF3Fjmp?C_EXITmain
9、:0040222183decd.wSP0040244E43clr.bR14004026B240805A2001mov.w#0x5A80,&WDTCTL00402CD2D32200bis.b#0x1,&P1DIR004030D2E32100xor.b#0x1,&P1OUT004034B14050C30000mov.w#0xC350,0x0(SP)00403AB1530000add.w#0xFFFF,0x0(SP)0
此文档下载收益归作者所有