如题,裸奔F1C100S时发现缺了大量库,而xboot是自带libc和libm的。我必须自己实现还是有现成库可以用?
GCC编译器难道不自带libm和libc吗?我知道fileio和uart得自己实现接口
离线
不用吧,就像stm32裸奔串口输出只要实现putc就可以调用C库的printf.
自己实现估计是为了效率和可移植性。
离线
不用吧,就像stm32裸奔串口输出只要实现putc就可以调用C库的printf.
自己实现估计是为了效率和可移植性。
stm32在keil用的是newlib,简化的库,我现在用的是gcc,估计这个库是适合Linux的,所以不合适裸奔。那么xboot的libc和libm哪来的?看起来也不是作者自己写的
离线
xboot 应该也是别处借鉴过来的:
https://github.com/xboot/xboot/blob/master/src/arch/arm32/lib/memcpy.S
https://github.com/freebsd/freebsd/blob/master/lib/libc/arm/string/memcpy_arm.S
还有这个:
https://github.com/xboot/xboot/blob/master/src/arch/arm32/lib/memmove.S
http://bxr.su/NetBSD/common/lib/libc/arch/arm/string/memmove.S
离线
xboot 应该也是别处借鉴过来的:
https://github.com/xboot/xboot/blob/master/src/arch/arm32/lib/memcpy.S
https://github.com/freebsd/freebsd/blob/master/lib/libc/arm/string/memcpy_arm.S
还有这个:
https://github.com/xboot/xboot/blob/master/src/arch/arm32/lib/memmove.Shttp://bxr.su/NetBSD/common/lib/libc/arch/arm/string/memmove.S
非常感谢!
离线
看了一下 u-boot里面那些C库函数都是自己实现的.
离线
不用,可以用gcc的 -lm -lgcc -lc。
不过有可能还是得自己实现少量函数 _sbrk,_exit等。
离线
不用,可以用gcc的 -lm -lgcc -lc。
不过有可能还是得自己实现少量函数 _sbrk,_exit等。
是的,gcc自带libc和libm,甚至libstdc++,但是需要实现底层的几个函数,对于c++为了实现rtti还要额外在ldscript里面加东西。
离线