从BootLoader跳转到App应用程序后宕机
从BootLoader跳转到App应用程序后宕机楼主详细说说怎么回事啊,这么说太笼统了 查看了一下代码,原来是在应用程序中没有启动Timer4,流程如下:
1,BootLoader中开启了Timer4,用于心跳灯;
2,在app应用程序中,如果也初始化和开启timer4,程序就正常;
3,如果屏蔽掉timer4,就出现死机;
之前理解的是跳转到app后,所有初始化都重新开始,互不影响,看来是理解有误。 跳转到应用程序后,需要和BootLoader的初始化一样么? 如果可以不一样,需要如何操作? 复位或清空sram? 说明里面有用到这个定时器啊,没有开启
仅在回调函数里翻转一下呼吸灯,不开启定时器,就不会到回调里的。
bootloader中尽量少打开一些外设,打开的外设需要考虑跳转到app后对app的影响,建议跳转前将用的外设deinit。
以你的这个timer为例,在boot中打开了,应该是也开了中断,实际上要仔细分析,还是很复杂的 比如跳转到app了,但中断向量表还未设置,这个是否发生了中断是什么结果 跳转到app了中断向量表也设置了,但很多变量还未初始化,这个时候发生了中断会有什么结果,…… 一般来讲,boot程序和APP程序是两套独立的工程。
在跳转前 在BOOT区开启的中断都关闭掉,这个很关键。 楼上说的对BOOT区开启的外设都复位掉,一方面避免跳转过程中发生中断。
如果中途发生中断,这时中断矢量表往往没安排好就会导致异常。 避免BOOT区的外设配置莫名其妙的延申到APP区了。
非常感谢~学习了~
跳转地址错误? 中间有没有发生中断啊啥的 地址异常了吧
页:
[1]
2