
在项目中使用到STM32G474RE的dual bank的IAP升级功能,编写一份程序,分别下载到地址:0x08000000和地址:0x08040000中,通过按键进行bank的切换,通过指示灯显示在哪个bank中运行,运行结果:在bank1中程序可以正常运行,但是一旦程序跳入bank2,程序就无任何响应;切换bank的代码如下: void switch_bank(void) { HAL_FLASH_Unlock(); __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR); HAL_FLASH_OB_Unlock(); HAL_FLASHEx_OBGetConfig(&OBInit); OBInit.OptionType = OPTIONBYTE_USER; OBInit.USERType = OB_USER_BFB2; if (((OBInit.USERConfig) & (OB_BFB2_ENABLE)) == OB_BFB2_ENABLE) / BANK1 active for boot / { OBInit.USERConfig = OB_BFB2_DISABLE; } else { OBInit.USERConfig = OB_BFB2_ENABLE; } if(HAL_FLASHEx_OBProgram(&OBInit) != HAL_OK) { ; } if(HAL_FLASH_OB_Launch()!= HAL_OK) { ; } HAL_FLASH_OB_Lock(); HAL_FLASH_Lock(); } 求各位大神帮忙看下,问题出在哪里,十分感谢!!! |
boost电路程序控制
STM32G474RBT3 HRTIME 与 TIM 相位差。
STM32G474 BOOST电路双环PID的用法
STM32G474RET6移相问题
stm32G474 HRTimA和hrtimB给相同的比较值,但是TA正常,TB出现了丢波的情况
怎么用HRTIM输出可变占空比的PWM?
STM32G474使用HRTIME完成两路180度移相问题
STSPIN32G4的AN5432文档资料去哪里找?
LIS2MDL X轴数据读取问题
motor profiler参数识别卡在7%是什么原因啊,电机只响不动,手动旋转有阻力,顿感
小方法 : 切换时可以用按键触发。 这样就可以停下来用烧录器看看相关配置是否是期望的了。
谢谢回复!bank2中我设置了偏移地址:0x08000000;试了好多方法,就是跳转到bank2中运行不起来?不知道哪地方还有问题;
这个地址如果编译时没有设置,那么生成的代码是无法正确寻址的。