我正在为PowerPc进行系统调用实现。我已经测试了一些 gcc 函数,它们似乎都可以工作(例如 sqrt sin cos pow printf malloc ...)
我最近意识到printf存在问题。只要我打印一些整数/字符,它就可以正常工作,但是当我尝试 printf %f/lf打印浮点/双倍时,程序崩溃了。(它似乎在不应该在的地方执行)
我检查了makefile,它使用:
# use soft float
CFLAGS += -msoft-float
在制作程序时,我可以看到许多nof(无浮点)库被链接。
gnu/powerpc-eabi/3pp.ronetix.powerpc-eabi/bin/../lib/gcc/powerpc-eabi/4.3.3/../../../../powerpc-eabi/lib/nof\libm.a)lib_a-s_sin.o
我也知道我在堆栈/堆中有足够的空间,所以这应该不是问题。 打印浮点数时printf应该崩溃还有一个原因吗?