【发布时间】:2011-10-15 22:56:10
【问题描述】:
我正在为 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 在打印浮点数时崩溃还有原因吗?
【问题讨论】:
-
系统调用实现?内核空间还是用户空间??
标签: embedded printf powerpc newlib