本帖最后由 天涯行客 于 2014-12-4 12:37 编辑
程序所有配置都没有问题,就是不执行APP程序,不知道怎么回事啊
2014-12-04_105927.png (77.37 KB, 下载次数: 4)
下载附件
2014-12-4 11:00 上传
程序跳转代码
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
{
SerialPutString("Execute user Program
");
JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
Jump_To_Application = (pFunction) JumpAddress;
__set_MSP(*(__IO uint32_t*) ApplicationAddress);
Jump_To_Application();
}
#define ApplicationAddress 0x8010000
我APP程序比较大 生成的BIN文件有60K左右,会是堆栈溢出的问题吗?
正解在5楼
因为我看你 5楼说 进到用户程序后,在中断向量表地址设定完成后再开中断。OK 了。
还有个问题,如果在BOOT中假如开启了定时器中断啊串口中断啊一大堆,跳转到APP后是不是这些中断依然是开着的。 跳转并没有复位单片机,外设寄存器应该还是保留BOOT中写入的值吧。
一直没细究过这些问题,只是BOOT中中断,一直好像也没出问题。
一周热门 更多>