OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3639|回复: 7

STM32F4 IAP串口下载 程序跑飞 求助

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-5-2
在线时间
5 小时
发表于 2019-5-2 07:43:13 | 显示全部楼层 |阅读模式
1金钱
如题,源码见附件,串口接收到bin文件后,按下按键下载至FLASH ADRR 0x8020000  ,然后第二次按键跳转APP起始地址,跳转后跑飞,请各位大神帮忙解答,谢谢

BOOTLOADER.zip

9.99 MB, 下载次数: 35

APP.zip

12.84 MB, 下载次数: 360

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-5-2
在线时间
5 小时
 楼主| 发表于 2019-5-2 07:43:14 | 显示全部楼层
回复

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-5-2 11:42:22 | 显示全部楼层
SCB->VTOR = FLASH_BASE | 0x20000;向量表偏移放在程序的最开始,也就是main的第一行。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-5-2
在线时间
5 小时
 楼主| 发表于 2019-5-2 16:01:07 | 显示全部楼层
candylife9 发表于 2019-5-2 11:42
SCB->VTOR = FLASH_BASE | 0x20000;向量表偏移放在程序的最开始,也就是main的第一行。

请问你说的是APP里的向量表偏移吧,我在systeminit里已经修改了:
void SystemInit(void)
{
  /* FPU settings ------------------------------------------------------------*/
  #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
  #endif
  /* Reset the RCC clock configuration to the default reset state ------------*/
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;

  /* Reset CFGR register */
  RCC->CFGR = 0x00000000;

  /* Reset HSEON, CSSON and PLLON bits */
  RCC->CR &= (uint32_t)0xFEF6FFFF;

  /* Reset PLLCFGR register */
  RCC->PLLCFGR = 0x24003010;

  /* Reset HSEBYP bit */
  RCC->CR &= (uint32_t)0xFFFBFFFF;

  /* Disable all interrupts */
  RCC->CIR = 0x00000000;

#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM)
  SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */
         
  /* Configure the System clock source, PLL Multiplier and Divider factors,
     AHB/APBx prescalers and Flash settings ----------------------------------*/
  SetSysClock();

  /* 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
}

将VECT_TAB_OFFSET设置为0x20000,这里和你说的main函数最开始设置SCB->VTOR = FLASH_BASE | 0x20000是一样的吧?
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-5-2
在线时间
5 小时
 楼主| 发表于 2019-5-3 13:32:34 | 显示全部楼层
求助!!求助!!求助,求帮忙解答,不要沉下去呀
回复

使用道具 举报

9

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
372
金钱
372
注册时间
2016-8-15
在线时间
55 小时
发表于 2019-6-20 16:28:13 | 显示全部楼层
nsqdy1 发表于 2019-5-3 13:32
求助!!求助!!求助,求帮忙解答,不要沉下去呀

前面不是说已经解决吗
祝中国健儿奥运好成绩
回复

使用道具 举报

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2019-7-18
在线时间
21 小时
发表于 2019-7-25 15:08:23 | 显示全部楼层
解决了吗
回复

使用道具 举报

5

主题

179

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
8195
金钱
8195
注册时间
2016-9-7
在线时间
1113 小时
发表于 2019-8-11 20:33:02 | 显示全部楼层

同问,如何解决的
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 20:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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