[STM32F4] App地址偏移后,freertos直接跳入hardfault

[复制链接]
地瓜patch 发表于 2025-8-21 14:47 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 地瓜patch 于 2025-8-21 14:51 编辑

功能测试完成后,写了个boot升级程序。将app地址偏移了0x4000后,freertos直接跳入hardfault。
6739768a6c1c4cb4e2.png


void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)
{
  /* Check the parameters */
  assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
  assert_param(IS_NVIC_OFFSET(Offset));  
   
  SCB->VTOR = NVIC_VectTab | Offset;
}
#define CLI() __set_PRIMASK(1)
#define SEI() __set_PRIMASK(0)




int main(void)
{
  /* USER CODE BEGIN 1 */
        SEI();                                               
        NVIC_SetVectorTable(FLASH_BASE, 0x4000);       
  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
.......
}


没有boot程序,没有偏移时跑freetrtos程序正常。



海滨消消 发表于 2025-8-22 16:29 | 显示全部楼层
内存访问越界?
duo点 发表于 2025-8-22 16:29 | 显示全部楼层
检查数组和指针访问,所有数组访问是否在有效范围内,指针初始化是否正确。
onlycook 发表于 2025-8-22 16:30 | 显示全部楼层
堆栈溢出?
onlycook 发表于 2025-8-22 16:30 | 显示全部楼层
增加堆栈大小
七毛钱 发表于 2025-8-22 16:31 | 显示全部楼层
中断配置错误?
内政奇才 发表于 2025-8-22 16:32 | 显示全部楼层
FreeRTOS配置不当?
 楼主| 地瓜patch 发表于 2025-8-22 17:37 | 显示全部楼层
结帖:在boot中跳转app前需要将禁用计数器,清零重载值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1803

主题

14836

帖子

29

粉丝
快速回复 在线客服 返回列表 返回顶部