完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用之前STM32F103的YModem升级代码,移植到STM32G030后,发现可以跳转,但启动不成功,是否有人碰到同样的问题,帮忙指点迷津,具体如下:
1:BootLoader的Keil C 跳转代码。 /****************************************** 以下为BootLoader跳转代码 **************************************/ void CloseIQHard(void) { LL_GPIO_DeInit(GPIOA); LL_IOP_GRP1_DisableClock(LL_IOP_GRP1_PERIPH_GPIOA); LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_USART1); LL_tiM_DisableIT_UPDATE(TIM3); LL_TIM_DisableCounter(TIM3); //LL_SYSTICK_DisableIT(); __set_PRIMASK(1); __disable_irq(); // 关闭总中断 } void BootloaderJumpToApp( void ) { u32 JumpAddress; CloseIQHard(); if(((*(volatile uint32_t*)FLASH_APP_START_ADDRESS) 0x2FFE0000) == 0x20000000) //检查栈顶地址是否合法. { __set_CONTROL(0); //特权模式 __ASM("CPSID I"); //关中断 JumpAddress = *(volatile uint32_t*)(FLASH_APP_START_ADDRESS+4); //用户代码区第二个字为程序开始地址(复位地址) JumpToApp = (IapFunction)JumpAddress; __set_MSP(*(volatile uint32_t*)FLASH_APP_START_ADDRESS); //初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址) JumpToApp(); //跳转到APP. } else Error_Handler(); } BootLoader代码的Keil C设置如下 2: 固件APP的启动部分代码,配置成从内部Flash启动,启动后Flash闪灯。 #define VECT_TAB_OFFSET 0x3000U void SystemInit(void) { /* Configure the Vector Table location add offset address ------------------*/ #ifdef VECT_TAB_SRAM SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ #endif } int main(void) { __enable_irq(); SystemInit(); LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG); LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR); NVIC_SetPriority(SysTick_IRQn, 2); SystemClock_Config(); //以下省略其它代码 } APP固件的Keil C设置如下 3: 通过ST-Link读取到0x0800300代码和文件的代码一致,如下图 、 文件的头部、中间、尾部都核对一致。 目前Boot跳转了,但是启动不起来,是不是还有哪个开关没开启,期待高手指点迷津,感谢感谢。 |
|
相关推荐
1个回答
|
|
KEIL的配置的地范围有沒有忘記,如果没有改的话,生成的代码起始地址还是从头开始的
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
527浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 11:46 , Processed in 0.837750 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号