pyh921 发表于 2013-10-29 14:45:30

请教在RTOS用DFU下载遇到的问题

 我在DFU模式下,将一个带freeRTOS的程序通过USB下载到0x800C000起始位置的flash,但发现程序跑到启动调度器函数时就跑飞了,请教下这是怎么回事?个人怀疑可能是中断映射问题,但不知道用DFU怎么设置中断映射,请知道的麻烦提示下,谢谢了!
启动调度器函数如下:
vTaskStartScheduler();

pyh921 发表于 2013-10-29 14:58:38

RE:请教在RTOS用DFU下载遇到的问题

找到原因了,确实需要中断重映射,在初始化时增加如下函数即可
void NVIC_Configuration(void)
{
/* Set the Vector Table base location at 0xC000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0xC000);
}

Hiker 发表于 2013-10-29 18:29:19

RE:请教在RTOS用DFU下载遇到的问题

还有一点,你的启动程序最好,要做关所有中断的处理。

pyh921 发表于 2013-10-30 15:37:49

回复:请教在RTOS用DFU下载遇到的问题

回复第 3 楼 于2013-10-29 18:29:19发表:
还有一点,你的启动程序最好,要做关所有中断的处理。
能解释下为什么需要关所有中断吗?以及在什么时候关闭所有中断?谢谢了!
 

Hiker 发表于 2013-11-2 13:52:37

RE:请教在RTOS用DFU下载遇到的问题

在IAP启动程序跳入APP之前 关闭所开中断。 这种可以防止跳入APP时依然触发IAP的中断。会产生硬件故障。
页: [1]
查看完整版本: 请教在RTOS用DFU下载遇到的问题