大家好:
我在调试IAP+Ucos时发现个问题,麻烦帮忙指导下.谢谢.
如果我直接运行Ucos的程序,开机调用
HAL_Init();
STM32_Clock_Init(384,25,2,8); //设置时钟,192Mhz
后,Sys
tick_Handler这个中断马上就会执行.
但是我使用IAP跳转来执行Ucos程序,SysTick_Handler这个中断要等待很久才会被执行.
我查看了HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);两次执行时的频率都是192M.
IAP跳转到Ucos程序,代码如下:
typedef void (*fun)(void); //定义一个函数类型的参数.
fun AppStart;
void Jump_To_APP(void)
{
u32 JumpAddress;
JumpAddress = *(volatile uint32_t*) (0x8080000 + 4);
AppStart = (fun) JumpAddress;
__set_PRIMASK(1);
//设置APP程序堆栈指针
__set_MSP(*(volatile uint32_t*)0x8080000);
AppStart(); //跳转到APP.
}
0