打印
[技术问答]

HC32L196使用gcc开发,写flash会死机?

[复制链接]
1180|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用keil正常,现在使用gcc编译,发现写数据到flash中会死机,求解

使用特权

评论回复
沙发
wubangmi| | 2023-2-2 16:08 | 只看该作者
题意缺少条件,无解。

使用特权

评论回复
板凳
查询无结果| | 2023-2-2 23:44 | 只看该作者
小华对他家m0系列的没有提供gcc环境的支持,有点难搞

使用特权

评论回复
地板
wubangmi| | 2023-2-3 10:12 | 只看该作者

毛主席曾教导我们:世上无难事,只要肯登攀。
GCC难不难搞我不知道,反正我有如图这么多的小华加MCU的GCC工程

使用特权

评论回复
评论
西城123 2023-2-3 15:34 回复TA
是的,我想以后都用gcc开发,其他都没问题,就是写flash,擦除页时导致死循环 
5
查询无结果| | 2023-2-3 11:04 | 只看该作者
大佬,可以分享一下吗,有需求

使用特权

评论回复
6
wubangmi| | 2023-2-3 11:28 | 只看该作者
查询无结果 发表于 2023-2-3 11:04
大佬,可以分享一下吗,有需求

搞不了就不要搞了,直接用keil吧,省事

使用特权

评论回复
7
查询无结果| | 2023-2-3 12:24 | 只看该作者
wubangmi 发表于 2023-2-3 11:28
搞不了就不要搞了,直接用keil吧,省事

我这里KEIL点开就卡死,然后重装也不行

使用特权

评论回复
8
西城123|  楼主 | 2023-2-3 15:36 | 只看该作者
查询无结果 发表于 2023-2-2 23:44
小华对他家m0系列的没有提供gcc环境的支持,有点难搞

程序正常运行了,就是flash操作写擦除时死循环了

使用特权

评论回复
9
wubangmi| | 2023-2-3 15:52 | 只看该作者
西城123 发表于 2023-2-3 15:36
程序正常运行了,就是flash操作写擦除时死循环了

直接照搬例程,主要的是你flash的参数要跟主频匹配

使用特权

评论回复
10
西城123|  楼主 | 2023-2-3 16:09 | 只看该作者
wubangmi 发表于 2023-2-3 15:52
直接照搬例程,主要的是你flash的参数要跟主频匹配

我是按例程来的,keil上是运行正常的,然后最近研究gcc,编译运行都正常了,我有些参数会存放在flash中,结果发现死循环,最后定位到while(Ok != Flash_SectorErase( )){}到这了,芯片L196,固件1.0.3,现在在改为1.2.0到时候看看能不能正常。

使用特权

评论回复
11
wubangmi| | 2023-2-3 16:44 | 只看该作者
西城123 发表于 2023-2-3 16:09
我是按例程来的,keil上是运行正常的,然后最近研究gcc,编译运行都正常了,我有些参数会存放在flash中, ...

仿真,看寄存器对应的位是否正常修改了,可能GCC编译器对位操作不友好。导致FLASH寄存器没有正常修改

使用特权

评论回复
12
tpgf| | 2023-3-2 09:24 | 只看该作者
wubangmi 发表于 2023-2-3 15:52
直接照搬例程,主要的是你flash的参数要跟主频匹配

都需要flash的哪些参数和主频相匹配啊

使用特权

评论回复
13
qcliu| | 2023-3-2 09:48 | 只看该作者
这个确实没有用过 不过猜测有可能是兼容性不太友好

使用特权

评论回复
14
drer| | 2023-3-2 10:10 | 只看该作者
我们需要在gcc工具中特别设置什么吗

使用特权

评论回复
15
coshi| | 2023-3-2 10:46 | 只看该作者
如果没有特殊的需求的话 那就还可以继续使用keil啊

使用特权

评论回复
16
kxsi| | 2023-3-2 11:09 | 只看该作者
查询无结果 发表于 2023-2-3 12:24
我这里KEIL点开就卡死,然后重装也不行

是不是电脑系统的问题啊  缺少相关组件?

使用特权

评论回复
17
wiba| | 2023-3-2 11:23 | 只看该作者
wubangmi 发表于 2023-2-3 15:52
直接照搬例程,主要的是你flash的参数要跟主频匹配

但是一样的程序  两个工具的表现就是不同的呀

使用特权

评论回复
18
liuyuxiier| | 2023-3-2 16:16 | 只看该作者
这个应该是是两个不通的编译器对位操作的实现差异引起的。建议在GCC环境先不要使用位操作,写入寄存器时直接写入整个寄存器的值试试

使用特权

评论回复
19
wubangmi| | 2023-3-2 16:41 | 只看该作者
wiba 发表于 2023-3-2 11:23
但是一样的程序  两个工具的表现就是不同的呀

我不知道具体什么问题,我这边是没有任何问题的。
这个问题脱离了编译器来讨论,我觉得是没有任何意义的。
毕竟大家编译器版本不一样,可能所使用的的小华MCU库函数的版本都不一样。
我的eclipse的版本是2022-12月的MAC版
交叉编译是这个版本gcc-arm-none-eabi-10.3-2021.10-mac
小华MCU的库是v1.2.0

1677746210430.jpg (279.52 KB )

1677746210430.jpg

使用特权

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

本版积分规则

8

主题

18

帖子

0

粉丝