完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32L431RCT6 从用户代码区跳转使用内置system memory bootloader 无效。
1. 跳转代码如下,这个代码 可以在STM32F407VET6上正常跳转 内置的bootloader 并且STM32CubeProgrammer 连接更新程序。 static void JumpToBootloader(void) { uint32_t i=0; void (*SysMemBootJump)(void); /* 声明一个函数指针 */ __IO uint32_t BootAddr = 0x1FFF0000; /* F407系统BootLoader地址 */ /* 关闭全局中断 */ DISABLE_INT(); /* 关闭滴答定时器,复位到默认值 */ SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; /* 设置所有时钟到默认状态,使用HSI时钟 */ RCC_DeInit(); /* 关闭所有中断,清除所有中断挂起标志 */ for (i = 0; i < 8; i++) { NVIC->ICER[i]=0xFFFFFFFF; NVIC->ICPR[i]=0xFFFFFFFF; } /* 使能全局中断 */ ENABLE_INT(); /* 跳转到系统BootLoader,首地址是MSP,地址+4是复位中断服务程序地址 */ SysMemBootJump = (void (*)(void)) (*((uint32_t *) (BootAddr + 4))); /* 设置主堆栈指针 */ __set_MSP(*(uint32_t *)BootAddr); /* 在RTOS工程,这条语句很重要,设置为特权级模式,使用MSP指针 */ __set_CONTROL(0); /* 跳转到系统BootLoader */ SysMemBootJump(); /* 跳转成功的话,不会执行到这里,用户可以在这里添加代码 */ while (1) { } } 2. 1中代码 使用在STM32L431RCT6 F无效果。STM32CubeProgrammer 提示设备连接超时无响应。 我板上有BOOT 按键,使用BOOT按键 硬件方式 可以 进入 内置bootloader 并连接STM32CubeProgrammer 更新程序。 3. 已查 STM32L431RCT6 系统BootLoader地址 也是 0x1FFF0000; 也不是双BANK芯片。麻烦是否有接触过个芯片 从用户代码区直接跳转到内置BOOTLOADER的 成功过的 帮忙看看,谢谢 |
|
相关推荐
1个回答
|
|
首先,请确保在使用内置系统存储器引导加载程序之前已经完成了以下步骤:
1. 在用户代码区编写代码时,将引导选择跳转地址设置为内置系统存储器引导加载程序的地址。例如,对于STM32L431RCT6芯片,将引导地址设置为0x1FFF0000。 2. 确保将所有外设设置回复位状态,特别是时钟和GPIO配置。这是因为内置系统存储器引导加载程序仅初始化一些基本外设,不会执行特定的外设初始化。 如果您已经完成了上述步骤但仍然无法成功跳转到内置系统存储器引导加载程序,请尝试以下解决方法: 1. 确保主容器已禁用全局中断。在跳转代码之前,使用以下代码禁用全局中断: ```c __disable_irq(); // 禁用全局中断 ``` 这将确保跳转代码执行时,不会发生任何中断干扰。 2. 确保跳转代码之后不会执行其他任何代码。因为在跳转到内置系统存储器引导加载程序后,控制权将完全转移到引导加载程序的代码,之前的用户代码将不再执行。因此,为了确保跳转成功,请确保跳转代码之后不会执行任何其他代码。 如果上述方法仍然无效,可能是由于其他原因导致。您可以尝试以下附加步骤进行故障排除: 1. 使用调试器检查跳转代码的相关寄存器状态,特别是`SP`和`PC`寄存器。确保它们的值已正确设置为内置系统存储器引导加载程序的地址。 2. 确保跳转代码段位于正确的地址,并且代码大小正确。 3. 确保芯片内部flash存储器区域的写保护已解除。 如果上述方法仍然无效,建议参考芯片的数据手册和引导加载程序的文档,了解更多关于故障排除的信息,并尝试其他可能适用的解决方法。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1781 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1085 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1680 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
732浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
557浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 10:53 , Processed in 1.004450 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号