This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我在调试MSP430F5438A的在线升级功能时,遇到如下问题:
由Datasheet知道,MSP5438A可以将中断向量设置为保存在Flash或者RAM中(由SYSCTL寄存器的SYSRIVECT位来控制,如附图所示)。
为了在Flash不同的BANK区运行中断服务程序, 我将中断向量设置为保存在RAM中,即设置SYSRIVECT = 1。
结果发现程序无**常运行。
同样的程序,如果将中断向量设置为保存在Flash中,即将SYSRIVECT = 1屏蔽,就能够正常运行!
PS:相关代码见附件
楼主你好,请问你在修改SYSRIVECT=1之前,有没有设置中断向量表在RAM中的地址?如果有设置,是否设置的地址跟已有的其他RAM空间冲突了?
你的程序看起来似乎是运行出现了内存异常然后复位了。
这里有一份5438A做IAP的参考代码,相信你也是用这个功能来做IAP功能的吧!
http://processors.wiki.ti.com/index.php/File:MSP430F5438A_RAM_INT_VECT_CCS.zip
供参考。
您好,我在做5418A的IAP,有几个问题想请教:
1、有的资料说,由于MSP430是16位的单片机,做IAP时不支持0xFFFF以上的地址,是这样吗?
2、5418A的FLASH共128K,
其中IAP部分占用:0x5c00~0x7BFF,中断放在RAM中。
APP部分占用其他部分,即:0X7C00~0X25BFF,中断向量放在默认地址,即0xFFE0~0XFFFF中()。
这样可以不?如果不可以那应该怎么做?
3、运行后发现IAP程序运行正常,用串口往进灌入APP程序后发现复位地址:0XFFFE中的量居然是0x5c00。即APP程序的0X7C00没有写进去,不知道为什么。
反正 不能正常运行。
代码请见附近,您有什么好的建议?
邮箱:gh_1269@qq.com