硬汉嵌入式论坛

 找回密码
 立即注册
查看: 470|回复: 1
收起左侧

[其它] stm32F407 IAP+Freertos 无法跳转问题

[复制链接]

9

主题

18

回帖

45

积分

新手上路

积分
45
发表于 2023-6-6 13:35:33 | 显示全部楼层 |阅读模式
在stm32F407上做IAP升级,发现跳转有点异常,也不知道跳转那去了,应用程序无法启动,app移植了freertosbootloader里面暂时没加任何通信接口,就是一上电就跳转,app地址为0x8008000,使用stm32cube生成代码,

bootloader部分截图如下
1.jpg 2.png

[C] 纯文本查看 复制代码
int main(void)[/font][/color]

[font=Verdana][color=#000000]#define APP_START_ADDR  (uint32_t)0x08008000 [/color][/font]

[color=rgb(0, 0, 0)][font=Verdana]{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
	printf("IAP Bootloader\r\n");
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		 __disable_irq();
    /* USER CODE BEGIN 3 */		
			if(((*(__IO uint32_t*)APP_START_ADDR) & 0x2FFE0000) == 0x20000000)
			{		
				printf("Jump_To_Application");
				Jump_To_Application = (pFunction)(*(__IO uint32_t*)(APP_START_ADDR+4));													
				__set_MSP(*(__IO uint32_t*)APP_START_ADDR);				
				
				Jump_To_Application();
			}
			else 
			{
				while(1)
				{
					printf("Jump_To_Application Failed!");
				}
			}
  }
  /* USER CODE END 3 */
}


app部分截图如下
3.jpg 4.jpg

回复

使用道具 举报

9

主题

18

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2023-6-6 15:21:13 | 显示全部楼层
已解决,系统定时器中断需要单独关闭一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 15:23 , Processed in 0.162717 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表