0

我正在试验 NIOS II 软核,试图最小化我的嵌入式应用程序的占用空间。我获得的最大收获之一来自使用小型 C 库(第 206 页):

对于嵌入式系统,完整的 newlib 库功能通常是不必要的,对于需要最小 RAM 占用空间的系统来说,它的功能也太大了。Altera 提供了一个缩减功能的缩减尺寸“Small C”版本的 newlib,它允许实现更小的 RAM 占用空间。

从小型 C 库中剥离的功能之一是语言环境支持。但是,当我尝试使用atof()时,链接失败,因为它调用localeconv()了不存在的。例如,构建以下示例

#include <stdlib.h>
int main(void) { return atof("0"); }

导致“ /path/to/strtod.c:341 : undefined reference to _localeconv_r”错误。这真的很遗憾,因为唯一atof()需要的是decimal_point定义。

如果我需要解析浮点数,除了strtod.c在我的软件中包含修改后的副本之外,我还有哪些选择?使用常规的 C 库(而不是小的库)将我的代码占用空间增加了 35kB,这对于嵌入式软件来说是个大问题。

4

0 回答 0