新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2017-3-16
- 在线时间
- 10 小时
|
5金钱
IAP带RTX操作系统(移植别人的)APP不带操作系统,在移植过程中遇到以下问题:问题1,IAP无法正常跳转到APP,检查后将APP里面的中断全部关闭,既能正常跳转。
问题2,为解决问题1,在IAP跳转前关闭总中断__disable_irq();,在APP里面开启总中断__enable_irq();,结果app能正常跳转吗,但运行到__enable_irq();这行,程序就死机。
问题3:为解决问题2,在APP里面不开启总中断,程序可以正常运行,但是程定时器中断无法响应,一直进入不了中断服务函数。
求助大神!!!!!
IAP跳转部分
os_dly_wait(OS_10MS);
//TIM_ITConfig(TIM2, TIM_IT_Update, DISABLE);
//TIM_ITConfig(TIM2,TIM_IT_CC1, DISABLE); //1رÕËùóDòÑ¿aÆôμÄÖD¶Ï
//TIM_ITConfig(TIM4,TIM_IT_CC1, DISABLE); //1رÕËùóDòÑ¿aÆôμÄÖD¶Ï
// TIM_ITConfig(TIM4,TIM_IT_Update,DISABLE );
// TIM_ITConfig(TIM3,TIM_IT_Update,DISABLE );
//TIM_ITConfig(TIM3,TIM_IT_CC1, DISABLE); //1رÕËùóDòÑ¿aÆôμÄÖD¶Ï
tsk_lock();
__disable_irq(); //__ASM volatile ("cpsid i");
TIM_DeInit(TIM3);
printf("gotoAp\r\n");
JumpAddress = *(vu32*) (ApplicationAddress + 0x00000004);
printf("gotoAp1\r\n");
Jump_To_Application = (pFunction) JumpAddress;
//initialize user application's stack pointer
printf("gotoAp2\r\n");
__set_MSP(*(__IO uint32_t *)ApplicationAddress);
printf("gotoAp3\r\n");
Jump_To_Application();
printf("endApp\r\n");
|
最佳答案
查看完整内容[请看2#楼]
SCB->VTOR = FLASH_BASE | 0x10000;(0x10000是flash存APP的首地址)
|