打印
[技术问答]

吐槽一下HC32F4单片机

[复制链接]
955|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 汽车电子 于 2024-1-19 10:22 编辑

最近用HC32F448调试产品,吐槽一下,奇怪的做法。
前置条件:我的程序架构是Boot + APP,以前的Boot不管什么MCU硬件平台,一直都是16KB之内,
1、Boot移植到HC32F448,竟然超过20KB,晕,这么大的LL库。
2、初始化配置参数竟然读取低地址空间,且占用用户代码空间,为什么不单独空间呢?或最后的空间呢?
     这给我调试APP带来很多不便。去掉icg.c文件,竟然连仿真都崩溃。
3、OTP竟然是扇区0和代码区重叠地址,为什么不是最后空间或单独空间呢?     
4、工程选项,代码地址指定从0x6000开始,但编译出的HEX文件,仍然是从0地址开始的(不管是否去掉icg.c文件都一样)
     导致我无法调试Boot + APP,只能单独调APP。 (其他MCU平台,指定代码开始地址是OK的)





使用特权

评论回复
沙发
wubangmi| | 2024-1-19 11:23 | 只看该作者
容我一一回复你的吐槽内容,当你在吐槽别人的时候,也请接受别人的吐槽:
1、Boot移植到HC32F448,竟然超过20KB,晕,这么大的LL库。
     ---- 请看命名为BOOT的图片,你需要关掉一个宏定义,也就是你代码调试完成的时候,你需要去掉库里各种断言函数来精简代码
2、初始化配置参数竟然读取低地址空间,且占用用户代码空间,为什么不单独空间呢?或最后的空间呢?

     这给我调试APP带来很多不便。去掉icg.c文件,竟然连仿真都崩溃。
     ----- 我也接受你的吐槽内容,icg地址为什么不要好用FLASH空间,找个其他空间应该也可以,估计这跟设计的架构有关,小华也改不了。
     去掉hc32_ll_icg.c是很大概率都无法启动代码,不是仿真器奔溃的问题。当然用户手册有说明,FLASH某些地址必须确保为0xFF才能确保正常启动
3、OTP竟然是扇区0和代码区重叠地址,为什么不是最后空间或单独空间呢?

     -----   因为不用那么大的OTP,不发表意见
4、工程选项,代码地址指定从0x6000开始,但编译出的HEX文件,仍然是从0地址开始的(不管是否去掉icg.c文件都一样)
     导致我无法调试Boot + APP,只能单独调APP。 (其他MCU平台,指定代码开始地址是OK的
    -----   请看我命名为app的图片,我直接用小华app的例程生成的hex文件,跟他.sct加载文件的地址是匹配的。
             这不是小华的错,应该是你自己建的工程的问题,或者换个难听的说法,你编译器玩的还不够溜,有需要提升的空间。




app.jpg (231.52 KB )

app.jpg

boot.jpg (276.61 KB )

boot.jpg

使用特权

评论回复
板凳
储小勇_526| | 2024-1-19 13:41 | 只看该作者
感觉搞国产替代之后,作为软件工程师需要了解底层的东西越来越多,也算一种成长吧,慢慢来~~~

使用特权

评论回复
地板
汽车电子|  楼主 | 2024-1-19 16:42 | 只看该作者
本帖最后由 汽车电子 于 2024-1-19 16:44 编辑
wubangmi 发表于 2024-1-19 11:23
容我一一回复你的吐槽内容,当你在吐槽别人的时候,也请接受别人的吐槽:
1、Boot移植到HC32F448,竟然超过20 ...

谢谢
1、去掉__DEBUG,仍然超过20KB。超过16KB,我的上位机软件,脱机编程器等也要修改,增加工作量。
2、别家Cortex-M4也有MCU配置字,是单独空间的
3、现在放弃这个OTP了
4、确实是工程设置问题,默认的Demo工程配置不支持直接修改IROM1的开始地址

有时候学习成本高,会阻碍很多人去使用。这也是为什么很多人或企业不会轻易换平台的道理。
现在已经在HC32F448平台做好了Boot + APP的架构,下面就开始增加APP功能了。

使用特权

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

本版积分规则

个人签名:车联网

366

主题

2057

帖子

5

粉丝