您尚未登录。

楼主 #1 2018-08-05 23:36:56

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,133
积分: 1085.5

裸机开发必须要自己实现libc和libm吗?

如题,裸奔F1C100S时发现缺了大量库,而xboot是自带libc和libm的。我必须自己实现还是有现成库可以用?
GCC编译器难道不自带libm和libc吗?我知道fileio和uart得自己实现接口

离线

#2 2018-08-06 06:48:50

sindy
会员
注册时间: 2017-09-09
已发帖子: 146
积分: 146

Re: 裸机开发必须要自己实现libc和libm吗?

不用吧,就像stm32裸奔串口输出只要实现putc就可以调用C库的printf.

自己实现估计是为了效率和可移植性。

离线

楼主 #3 2018-08-06 07:54:05

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,133
积分: 1085.5

Re: 裸机开发必须要自己实现libc和libm吗?

sindy 说:

不用吧,就像stm32裸奔串口输出只要实现putc就可以调用C库的printf.

自己实现估计是为了效率和可移植性。

stm32在keil用的是newlib,简化的库,我现在用的是gcc,估计这个库是适合Linux的,所以不合适裸奔。那么xboot的libc和libm哪来的?看起来也不是作者自己写的

离线

楼主 #5 2018-08-06 08:44:55

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,133
积分: 1085.5

离线

#6 2020-09-23 22:48:12

哦豁哦豁
会员
注册时间: 2020-01-17
已发帖子: 79
积分: 79

Re: 裸机开发必须要自己实现libc和libm吗?

看了一下 u-boot里面那些C库函数都是自己实现的.

离线

#7 2020-09-23 22:58:21

Quotation
会员
注册时间: 2018-10-04
已发帖子: 289
积分: 271.5

Re: 裸机开发必须要自己实现libc和libm吗?

不用,可以用gcc的 -lm -lgcc -lc。
不过有可能还是得自己实现少量函数 _sbrk,_exit等。

离线

#8 2020-09-24 09:22:18

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: 裸机开发必须要自己实现libc和libm吗?

Quotation 说:

不用,可以用gcc的 -lm -lgcc -lc。
不过有可能还是得自己实现少量函数 _sbrk,_exit等。

是的,gcc自带libc和libm,甚至libstdc++,但是需要实现底层的几个函数,对于c++为了实现rtti还要额外在ldscript里面加东西。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn