本帖最后由 天涯行客 于 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楼
跟你的描述一样啊,在BOOT也即跳转APP段前关中断,等进入APP段后,BOOT已经不再管理程序,由APP接管CPU 的一切资源,此时,再开中断啊,不然,你的异步外设如何响应(定时循环检测外设的除外). 除非你的APP中完全用不到中断,那就不用开了。
(插个话:MCU集成了那么多的外设,IO,TIMER,AD,DA,USB,USART,IIC,IIS,SPI等等的接口,难道就没有一个用到中断。 五楼提到的开关中断代码是可以开关全局中断的。)
一周热门 更多>