完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
跳转函数如下,实际跳转不了,请问各位大侠问题出在哪儿,多谢
#define APP_A_RELOCAtiON_ADDRESS 0x08000000 #define APP_B_RELOCATION_ADDRESS 0x08080000 void jump_app_task(uint8_t ABZone) { uint32_t i=0; __IO uint32_t AppAddress = 0; void (*SysMemBootJump)(void); /* 声明一个函数指针 */ /* 关闭全局中断 */ __set_PRIMASK(1); /* 关闭滴答定时器,复位到默认值*/ SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; /* 设置所有时钟到默认状态,使用HSI时钟 */ HAL_RCC_DeInit(); /* 关闭所有中断,清除所有中断挂起标志 */ for (i = 0; i < 8; i++) { NVIC->ICER[i]=0xFFFFFFFF; NVIC->ICPR[i]=0xFFFFFFFF; } SCB_DisableDCache(); /* 使能全局中断 */ __set_PRIMASK(0); [i][i] if(ABZone == 0xaa) { /* 跳转到appA,首地址是MSP,地址+4是复位中断服务程序地址*/ SysMemBootJump = (void (*)(void)) (*((uint32_t *) (APP_A_RELOCATION_ADDRESS + 4))); AppAddress = APP_A_RELOCATION_ADDRESS; } else { /* 跳转到appB,首地址是MSP,地址+4是复位中断服务程序地址*/ SysMemBootJump = (void (*)(void)) (*((uint32_t *) (APP_B_RELOCATION_ADDRESS + 4))); AppAddress = APP_B_RELOCATION_ADDRESS; } /* 设置主堆栈指针*/ __set_MSP(*(__IO uint32_t*)AppAddress); /* 在RTOS工程,这条语句很重要,设置为特权级模式,使用MSP指针 */ __set_CONTROL(0); /* 跳转到系统BootLoader*/ SysMemBootJump(); /* 跳转成功的话,不会执行到这里,用户可以在这里添加代码 */ while (1) { } } |
|
相关推荐
2个回答
|
|
默认不都是0x08000000执行,你这个那不是相当于可以应用和Boot来回跳转?重启机制是什么?
|
|
|
|
在使用跳转函数时,通常需要注意以下几点来确保能够跳转到目标APP:
1. 确保目标APP的代码已经正确烧录到相应的地址。在这里,你需要确认APP1和APP2的代码确实烧录到了0x08000000和0x08080000地址处。 2. 确保跳转函数被正确调用。你可以通过在调用跳转函数前添加调试输出或断点来确认是否执行了跳转函数。 3. 确保目标APP的程序入口地址正确。你需要确认APP1和APP2的程序入口地址是否正确,通常为Reset_Handler函数。 另外,如果你使用的是RTOS,并且APP1和APP2是两个独立的任务,你可能需要注意中断和任务切换的相关问题。确保跳转函数可以正确地切换中断和任务上下文。 如果以上步骤都没有问题,但跳转仍然不能成功,那可能是由于其他原因导致的,比如硬件配置不匹配、内存访问冲突等。这种情况下,你可能需要进一步排查这些原因并进行调试。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1877 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1661 浏览 1 评论
1145 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
760 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
612浏览 3评论
629浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 00:15 , Processed in 0.762438 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号