打印
[技术问答]

在keil软件中选Erase full Chip可以下载程序后无法运行?

[复制链接]
2250|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大家好,我用的单片机是HC32F460PETB,在keil软件中选择了Erase full Chip来擦除芯片,可以正常下载程序,但是下载完程序后无法运行程序?请教大家这是什么问题?如何解决这个问题?谢谢大家?还有Erase full Chip和Erase Sectors的区别,在什么情况下,用哪个,谢谢


使用特权

评论回复
沙发
wubangmi| | 2022-9-26 17:53 | 只看该作者
没猜错的话,是你没有加载xxx_icg.c文件

使用特权

评论回复
板凳
liushiming82|  楼主 | 2022-9-26 20:29 | 只看该作者
wubangmi 发表于 2022-9-26 17:53
没猜错的话,是你没有加载xxx_icg.c文件

没有明白你的意思,用Erase Sectors下载就可以正常运行,你说那个文件在哪儿呀,因为第一次用这个芯片,谢谢

使用特权

评论回复
地板
wubangmi| | 2022-9-27 09:00 | 只看该作者
liushiming82 发表于 2022-9-26 20:29
没有明白你的意思,用Erase Sectors下载就可以正常运行,你说那个文件在哪儿呀,因为第一次用这个芯片, ...

你下载进去看看0x400这段FLASH地址的值是什么样的

1664240296965.jpg (229.98 KB )

1664240296965.jpg

使用特权

评论回复
5
liushiming82|  楼主 | 2022-9-27 09:57 | 只看该作者
在keil中无法查看FLASH的内容,用什么查看Flash的内容呀?谢谢 我是小白一枚,望大佬讲解一下,再次感谢

使用特权

评论回复
6
hulai123456| | 2022-9-27 10:58 | 只看该作者
建议先将hc32_ll_icg.h与.c文件加载到你的driver文件中,然后在hc32f4xx_conf.h文件中,将#define LL_ICG_ENABLE                               (DDL_ON)其开启(也就是DDL_ON),然后再进入调试,看看程序运行情况

使用特权

评论回复
7
liushiming82|  楼主 | 2022-9-27 14:35 | 只看该作者
这个程序原来是可以用,但是按上面操作一遍后,就无法运行,换了厂家例程就可以了

使用特权

评论回复
8
liushiming82|  楼主 | 2022-9-27 15:58 | 只看该作者
hulai123456 发表于 2022-9-27 10:58
建议先将hc32_ll_icg.h与.c文件加载到你的driver文件中,然后在hc32f4xx_conf.h文件中,将#define LL_ICG_E ...

你说这几个文件都有,并且#define LL_ICG_ENABLE (DDL_ON)也是在DDL_ON上

使用特权

评论回复
9
wubangmi| | 2022-9-27 16:21 | 只看该作者
liushiming82 发表于 2022-9-27 15:58
你说这几个文件都有,并且#define LL_ICG_ENABLE (DDL_ON)也是在DDL_ON上

小白请先直接拿原厂的例程玩,不要自己建工程。

使用特权

评论回复
10
Undshing| | 2022-10-4 22:36 | 只看该作者
先试一下原厂例程

使用特权

评论回复
11
liushiming82|  楼主 | 2022-10-10 09:06 | 只看该作者
wubangmi 发表于 2022-9-27 16:21
小白请先直接拿原厂的例程玩,不要自己建工程。

原厂的例程可以正常运行,我这边的程序是别人写的,原来可以运行,后面就不可以运行了,也不知道问题出在哪 儿了?

使用特权

评论回复
12
wubangmi| | 2022-10-10 09:13 | 只看该作者
liushiming82 发表于 2022-10-10 09:06
原厂的例程可以正常运行,我这边的程序是别人写的,原来可以运行,后面就不可以运行了,也不知道问题出在 ...

既然代码是别人写的,那就不知道了,你也不清楚别人是否给你留了个后门,你可能把它留在FLASH里的某个地方的标志位擦了,代码就不跑了,这很正常。
标题要写清楚啊,你这不是技术问答,跟段擦和全擦没关系,让大伙在这里给你一阵帮忙。
找别人写代码是要有代价的。

使用特权

评论回复
13
martinhu| | 2022-10-10 09:35 | 只看该作者
楼主是不是把别人写在芯片里的识别密钥擦掉了?

使用特权

评论回复
14
liushiming82|  楼主 | 2022-10-10 09:38 | 只看该作者
wubangmi 发表于 2022-10-10 09:13
既然代码是别人写的,那就不知道了,你也不清楚别人是否给你留了个后门,你可能把它留在FLASH里的某个地 ...

谢谢大佬的提醒,起码明白了一个问题 扇区擦除和全部擦除是没有关系的,所以明确了问题所在,问题就出现在程序里面,所以就查程序,谢谢各位大佬的回复

使用特权

评论回复
15
软核硬核| | 2022-10-12 20:51 | 只看该作者
Erase full Chip 是擦除全部芯片Flash
Erase Sectors是擦除部分区域Flash

使用特权

评论回复
16
软核硬核| | 2022-10-12 20:51 | 只看该作者
全部芯片Flash就不用多说了,部分区域Flash就是你当前要下载的程序所占的扇区。

使用特权

评论回复
17
天天向善| | 2022-10-13 08:00 | 只看该作者
芯片所有Flash擦除估计是不是把Bootloader程序给擦除了?

使用特权

评论回复
18
sagade| | 2022-10-13 15:13 | 只看该作者
天天向善 发表于 2022-10-13 08:00
芯片所有Flash擦除估计是不是把Bootloader程序给擦除了?

很有可能,BOOT擦掉了,APP虽然能正常烧录,但是没法跳转APP了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

203

帖子

2

粉丝