完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
由于RISC-V代码密度低,想尽量压缩代码体积。采取了以下措施:
优化等级-Os体积优化,打开压缩指令RVC,链接器增加了以下选项 --gc-sections --specs=nano.specs --specs=nosys.specs 效果还是不理想,使用-flto选项打开Link-time optimizer以后代码体积减少不少,不过报_write函数找不到。 libg_nano.a(lib_a-writer.o): in function `.L0 ':writer.c:(.text._write_r+0x12): undefined reference to `_write' 看起来是_write函数被优化掉了,这个_write函数是为了使用printf函数实现的,代码中有,不加-flto选项正常。 其它项目都是重写fputc,WCH是重写_write函数,如何在打开-flto选项后如何避免_write函数被优化掉呢? 或者是否还有其它方法可以用来减小代码体积? 同样功能的源代码在ARM上面即使使用速度优化,FLASH空间也十分充足,RISC-V的代码密度还是太拉跨了。 |
|
相关推荐
2个回答
|
|
这个问题复现很容易,在CH32V103的EVT中,打开USART_Printf例子,工程设置里面打开-flto选项
先clean,然后build,就会弹出下面的错误提示。 libg_nano.a(lib_a-writer.o): in function `.L0 ':writer.c:(.text._write_r+0x12): undefined reference to `_write' EVT的代码在debug.c文件中实现了_write函数。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
467 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2871 浏览 2 评论
2359 浏览 1 评论
810浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
635浏览 1评论
495浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
358浏览 1评论
632浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 01:26 , Processed in 0.876065 second(s), Total 50, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号