OpenEdv-开源电子网

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

分享:解决用仿真器invalid rom table错误的问题

[复制链接]

24

主题

86

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2013-8-15
在线时间
6 小时
发表于 2015-1-30 11:23:07 | 显示全部楼层 |阅读模式
之前遇到这个问题,头都大了怎么样都不能解决。
折腾了好久,不过还是解决了。

出现在这个问题最直接原因可能是因为超频导致的。时钟分配错误。
第一次能烧进去,运行后,会发现运行不了,再次烧录就会invalid rom table。

解决办法,用串口工具清除芯片就可以了。

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

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2016-9-7 20:06:38 | 显示全部楼层
简单的方法就是BOOT0置1,然后复位,MCU就会进入bootloader,这个时候烧写程序就可以了
回复 支持 5 反对 0

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-9-16
在线时间
2 小时
发表于 2016-9-23 16:43:32 | 显示全部楼层
本帖最后由 laladui 于 2016-9-23 16:46 编辑

楼上说的对,先断电,把BOOT0短接片换位置1,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉(我还选了Erase Full Chip), 连续OK返回,下载程序,即擦除。恢复BOOT0短接片位置。再把刚才修改过的Debug配置改回来,下载,完成。造成原因是拷贝库里面的程序,它的晶振是8M的,配成180M,我板子是25M晶振,不改配置参数前提下,超死了。
回复 支持 5 反对 0

使用道具 举报

6

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
418
金钱
418
注册时间
2013-12-6
在线时间
45 小时
发表于 2015-10-9 10:50:25 | 显示全部楼层
网上说的办法是 把sw的速率降低到200KHZ,我试过这种办法,是可以的。
有人问我会什么?我低头看看我手里的书,我发现我只会用。
回复 支持 2 反对 0

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-8-5
在线时间
23 小时
发表于 2017-1-4 10:47:45 | 显示全部楼层
先断电,把BOOT0置1,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉。 下载程序进行芯片的擦除。恢复BOOT0接地。再把刚才修改过的Debug配置改回来,就可以正常使用了。该方案亲测有效,出现问题的原因在于程序超频锁死了。
回复 支持 1 反对 0

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2015-1-30 11:30:46 | 显示全部楼层
不错,谢谢分享。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-1-30 23:13:34 | 显示全部楼层
谢谢分享..
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2015-3-28
在线时间
0 小时
发表于 2015-3-29 19:49:54 | 显示全部楼层
我遇见了相同的问题,stm32f407zet,stlink,sw接口,mdk5.晶振应该是25MHz的。
我是新手,这个问题已经困扰我一个星期了,请问怎么改?
回复 支持 反对

使用道具 举报

9

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1737
金钱
1737
注册时间
2015-4-24
在线时间
669 小时
发表于 2015-7-25 20:52:31 | 显示全部楼层
楼主能说的详细点吗,我现在也遇到了这个问题,头都大了
回复 支持 反对

使用道具 举报

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
发表于 2015-9-7 10:50:29 | 显示全部楼层
仿真器连线不稳定也会引起这个问题。降速率试试。
Openedv大力支持的开源RTOS  --Trochili RTOS(飞鸟)
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2016-1-18
在线时间
12 小时
发表于 2016-3-15 09:05:52 | 显示全部楼层
顶贴~因为我现在也遇到这个问题了,我用st-link给stm32f407ZGT6最小系统板四线(vcc,gnd,swdio,swclk)下载程序,但是第一次能烧进去,运行后,会发现运行不了,再次烧录就会invalid rom table。但同样的下载方式,我的探索者开发板就可以下载程序进去,不知道为什么,两块板子的区别好像仅仅只在于晶振不同,探索者的是8MHz,我的最小系统板用的是25MHz。求教如何解决?
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-1-26
在线时间
9 小时
发表于 2016-5-17 11:18:16 | 显示全部楼层
ivandodd 发表于 2016-3-15 09:05
顶贴~因为我现在也遇到这个问题了,我用st-link给stm32f407ZGT6最小系统板四线(vcc,gnd,swdio,swclk)下载 ...

请问你解决了吗
回复 支持 反对

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2013-9-25
在线时间
22 小时
发表于 2016-5-18 17:54:40 | 显示全部楼层
晶振怎么调
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2015-10-24
在线时间
18 小时
发表于 2016-5-22 20:57:32 | 显示全部楼层
我做了个F407的板,也是出现invalid rom table错误,后来才发现是JTAG线布的太长了,而且长短不一,后面把J-LINK下载速度调到500k才可以用
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2015-10-24
在线时间
18 小时
发表于 2016-5-22 20:57:51 | 显示全部楼层

我做了个F407的板,也是出现invalid rom table错误,后来才发现是JTAG线布的太长了,而且长短不一,后面把J-LINK下载速度调到500k才可以用
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-6-30
在线时间
20 小时
发表于 2016-10-21 11:41:04 | 显示全部楼层
laladui 发表于 2016-9-23 16:43
楼上说的对,先断电,把BOOT0短接片换位置1,keil配置修改一下:进入Debug--Settings--Flash Download页面 ...

laladui  说的很对,我按照这种方法操作,已经成功了。BOOT0置1,也就是BOOT0引脚置高电平,其他的都按照操作即可。
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-9-18
在线时间
13 小时
发表于 2016-11-2 11:40:29 | 显示全部楼层
支持 。 我也被这个问题整得头大了一圈。还是对STM的不怎么熟悉 。 我使用的是FlyMCu清除芯片后,也可以进行烧录和仿真了。心情舒畅不少。说明一下我用的是STM32F407VGT6
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-3-15
在线时间
1 小时
发表于 2016-12-10 14:24:53 | 显示全部楼层
hanzixi_angel 发表于 2016-9-7 20:06
简单的方法就是BOOT0置1,然后复位,MCU就会进入bootloader,这个时候烧写程序就可以了

     非常感谢,我只是个菜鸟,可是关于BOOT0置1的问题还是没看太懂?
     因为我不知道是软件部分程序里面置于1还是硬件连接置1---将BOOT0引脚与3.3v相连,后来就是这样硬件置1,软件没有修改,问题解决了。然后把BOOT0引脚与3.3V引脚再断开,按下复位键,程序就可以运行了。-------------------------我用的是STM32F429IGT6开发板,ST-LINK仿真器下载的。
回复 支持 反对

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2016-12-15 16:24:33 | 显示全部楼层
阳光依旧笑春风 发表于 2016-12-10 14:24
非常感谢,我只是个菜鸟,可是关于BOOT0置1的问题还是没看太懂?
     因为我不知道是软件部分程序 ...

BOOT0置1就是上拉至3.3v  也就是直接接3.3复位就行
回复 支持 反对

使用道具 举报

39

主题

174

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2017-1-17
在线时间
76 小时
发表于 2017-1-20 13:24:54 | 显示全部楼层
感谢分享,楼主大大的好
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2017-3-2 11:55:33 | 显示全部楼层
黄阿厉 发表于 2017-1-4 10:47
先断电,把BOOT0置1,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Re ...

谢谢!帮我解决了问题,厉害了我的哥
回复 支持 反对

使用道具 举报

bishop00929 该用户已被删除
发表于 2017-3-4 21:44:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
发表于 2017-3-23 15:41:48 | 显示全部楼层
发现用st-link utility可以把程序下进去
回复 支持 反对

使用道具 举报

8

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2017-3-17
在线时间
102 小时
发表于 2017-3-30 20:30:17 | 显示全部楼层
我的是f427移植f407,需要添加2m的驱动
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-12-7
在线时间
0 小时
发表于 2017-8-16 15:39:27 | 显示全部楼层
请问怎么解决的详细方法  上面说的BOOT0拉高  以及按复位键下载我都试过了 没用   应该就是那个库函数超频事情 因为我用寄存器写没事
现在写一个工程用的库函数 工程建立好了 死活下载不了
回复 支持 反对

使用道具 举报

63

主题

305

帖子

1

精华

高级会员

Rank: 4

积分
853
金钱
853
注册时间
2012-8-3
在线时间
79 小时
发表于 2017-10-18 13:46:05 | 显示全部楼层
更换不同频率的晶振时,要修改system_stm32f4xx.c中的外部时钟频率值和分频因子PLL_M,这样才能保持运行时钟为168Mhz。
一、使用8M晶振时:
HSE_VALUE改为8000000
#define PLL_M      8

二、使用25M晶振:
HSE_VALUE改为25000000
#define PLL_M      25
回复 支持 反对

使用道具 举报

2

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2014-6-26
在线时间
74 小时
发表于 2017-11-17 16:51:33 | 显示全部楼层
黄阿厉 发表于 2017-1-4 10:47
先断电,把BOOT0置1,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Re ...

亲测有效,我刚才就是这么解决了,多谢!
回复 支持 反对

使用道具 举报

15

主题

118

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3059
金钱
3059
注册时间
2015-12-20
在线时间
299 小时
发表于 2017-12-14 14:22:23 | 显示全部楼层
黄阿厉 发表于 2017-1-4 10:47
先断电,把BOOT0置1,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Re ...

我按照你的方法来做了,之后还是不行
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-3-6
在线时间
43 小时
发表于 2018-1-17 14:01:47 | 显示全部楼层
本帖最后由 sweetstandard 于 2018-1-17 14:03 编辑

谢谢各位大侠!!!,我只是把 BOOT0 短接到 电源(VC3.3V),问题就解决了。别的什么也没动,软件也没改。吓死我了,我还以为板子坏掉了呢,谢谢各位啦!
事在人为,顺势而为。
回复 支持 反对

使用道具 举报

164

主题

1230

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1476
金钱
1476
注册时间
2014-5-21
在线时间
342 小时
发表于 2018-1-18 17:28:54 | 显示全部楼层
laladui 发表于 2016-9-23 16:43
**** 作者被禁止或删除 内容自动屏蔽 ****

很有效哈哈
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2018-1-9
在线时间
11 小时
发表于 2018-6-9 16:46:55 | 显示全部楼层
laladui 发表于 2016-9-23 16:43
**** 作者被禁止或删除 内容自动屏蔽 ****

不错,我也遇到这个问题,按照层主的方法解决了!
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2015-12-25
在线时间
10 小时
发表于 2018-7-13 17:24:51 | 显示全部楼层
我是将BOOT0 和 BOOT1都置零,然后用FlyMcu全部擦除就可以了!折腾了好久
回复 支持 反对

使用道具 举报

11

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2018-12-6
在线时间
23 小时
发表于 2018-12-17 15:29:49 | 显示全部楼层
laladui 发表于 2016-9-23 16:43
**** 作者被禁止或删除 内容自动屏蔽 ****

谢谢你的回答,解决了我的问题
回复 支持 反对

使用道具 举报

26

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1826
金钱
1826
注册时间
2015-12-18
在线时间
209 小时
发表于 2019-1-21 15:12:20 | 显示全部楼层
问题的根本是你单片机供电电压不稳定有噪音,你断开感性元件就行
想学STM32,我想宝刀未老吧
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-25
在线时间
2 小时
发表于 2019-7-27 19:07:11 | 显示全部楼层

晶振频率设置对,然后按住RESET键不放,点下载,再松RESET键,即可
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2019-9-2
在线时间
36 小时
发表于 2019-9-12 16:31:17 | 显示全部楼层
6666666666
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-11-21
在线时间
6 小时
发表于 2019-12-15 15:50:32 | 显示全部楼层
yqiqi 发表于 2015-10-9 10:50
网上说的办法是 把sw的速率降低到200KHZ,我试过这种办法,是可以的。

我试了一下,我最高可以设置到500K,再高的话就报错了
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2020-3-19
在线时间
24 小时
发表于 2020-3-21 13:31:50 | 显示全部楼层
sweetstandard 发表于 2018-1-17 14:01
谢谢各位大侠!!!,我只是把 BOOT0 短接到 电源(VC3.3V),问题就解决了。别的什么也没动,软件也没改。 ...

+1   试过flymcu清除芯片也可
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2021-3-13
在线时间
2 小时
发表于 2021-3-23 11:09:46 | 显示全部楼层
laladui 发表于 2016-9-23 16:43
**** 作者被禁止或删除 内容自动屏蔽 ****

感谢,解决了
回复 支持 反对

使用道具 举报

1

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2011-10-20
在线时间
85 小时
发表于 2021-11-11 10:30:44 | 显示全部楼层
也是这个提示,但偶的电路板BOOT0直连到地,抓瞎了;
试了试将晶振20pf电容用防静电镊子镊子短路,大约是oscout短路到地;
能擦除程序,但还是不能正常烧写;
改为整片擦除,又拿正常程序烧写了一遍,正常了。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-2-14
在线时间
3 小时
发表于 2022-9-21 15:37:08 | 显示全部楼层
我也是出现invalid rom data,用 ST-Link Utility 将芯片擦除然后写入就可以
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-2-14
在线时间
3 小时
发表于 2022-9-21 15:55:44 | 显示全部楼层
原来只需要将Debug 里Setting的Clock降低到4M以下就可以了,折腾了好久
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 05:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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