RISC-V IDE MRS2进阶分享(一):picolibc C标准库简介与使用

RISC-V IDE MRS2进阶分享(一):picolibc C标准库简介与使用

今天分享一个使用MRS2开发、优化代码大小时可以尝试启用的 PICLIBC标准库,先上效果:

以MRS2 CH32V307RCT(整型打印输出)工程为例,选择newlib-nano和PICOLIBC 分别为C标准库,输出结果如下。

Newlib-nano

PICOLIBC

对比可见,选用PICOLIBC为C标准库的text段和data段都会明显减少,对于资源受限的芯片程序开发时,可将C标准库切换为PICOLIBC进行调优尝试。

PICOLIBC是一款专为资源受限的嵌入式系统设计的C标准库,通过整合Newlib和AVR Libc的核心代码,为微控制器等低功耗设备提供基础运行支持。

在MRS2 中已经集成了PICOLIBC C标准库与newlib C标准库,默认选择的是newlib,其功能更全面与通用,选择PICOLIBC只需要在编译前按下图设置下即可。

针对PICOLIBC中的printf系列输出函数,MRS目前提供三种输出等级

-Dformat-default=d 此模式提供完整的 printf 功能,包括浮点数(float 和 double)转换、C99 扩展及 POSIX 位置参数。

-Dformat-default=i 此模式‌移除‌对 long long 转换以及浮点数的支持(当该值大于 long 时)。

-Dformat-default=m 此格式移除了宽度与精度控制、替代显示模式及替代符号显示功能。虽然这些格式符号仍会被正确解析(因此大多数情况下应用程序无需调整格式字符串),但输出结果将有所不同

用户可以根据代码输出格式选择相应的输出等级,不同级别的输出,会极大影响代码尺寸。在MRS2中以CH32V307RCT(整型打印输出)工程为例,选择

-Dformat-default=d完整输出模式,其输出结果如下:

-Dformat-default=i整型输出模式,其输出结果如下:

以上结果可以看出text段也就是代码段有非常明显的变化

以上对比结果,可在MRS2中使用编译后分析功能来获取更详细的代码尺寸地址布局等分析。

相关推荐
电子科技圈2 小时前
芯科科技在蓝牙亚洲大会展示汽车与边缘AI前沿蓝牙创新技术, 解锁车用、家居、健康及工商业等应用场景
人工智能·科技·嵌入式硬件·mcu·物联网·网络安全·汽车
AI进化营-智能译站3 小时前
Jazzy ROS2入门指南系列05-配置VsCode实现ROS2项目开发
ide·vscode·ai·编辑器
sinovoip3 小时前
香蕉派开源社区联合进迭进空重磅打造: BPI‑SM10(K3-Com260) 和 K3 Pico‑ITX 计算机将于5月11日全球发货
人工智能·开源·risc-v
来生硬件工程师8 小时前
【程序库】 MutiButton 按键库
c语言·笔记·stm32·单片机·mcu·嵌入式实时数据库
多看多敲多思考8 小时前
华润微CS32ME10 MCU使用教程(1)---CS32ME10之GPIO使用
c语言·stm32·单片机·嵌入式硬件·mcu
EvenBoy8 小时前
IDEA中使用CodeX
java·ide·intellij-idea
时光之源8 小时前
Visual Studio | Marketplace创建发布者(Create Publisher)时无法创建的问题解决方案
ide·vscode·visual studio·plugin·cursor
嵌入式小企鹅10 小时前
RISC-V车规专委会成立、AI模型集中开源、半导体产能加速爬坡
人工智能·学习·ai·程序员·算力·risc-v·半导体
国科安芯11 小时前
空间激光通信系统中抗辐射 MCU 芯片应用研究
单片机·嵌入式硬件·架构·risc-v·安全性测试
啾啾啾66611 小时前
VScode用cookie登录时,输入cookie值后按回车没反应
ide·vscode·编辑器