22得票4回答
理解 __libc_init_array

我查看了http://newlib.sourcearchive.com/documentation/1.18.0/init_8c-source.html中的__libc_init_array源代码。 但我不太理解这个函数的作用。 我知道这些符号 /* These magic symbols...

20得票6回答
如何获取调用堆栈回溯?(嵌入式系统,无库支持)

我希望我的异常处理程序和调试函数能够打印调用堆栈(call stack)的回溯信息,就像glibc库中的backtrace()函数一样。不幸的是,我的C库(Newlib)没有提供这样的功能。 我有类似以下的代码:#include <unwind.h&gt // GCC's intern...

18得票1回答
在ARM Cortex-M3中使用newlib的malloc函数

我正在为ARM Cortex-M3(NXP的LCP17xx)创建代码。到目前为止,我一直在使用静态内存,一切都运行良好。我尝试添加动态内存支持,但一旦调用malloc,系统就会卡住。 我正在使用gcc编译针对ARM裸机,并使用newlib。版本:gcc-arm-none-eabi-4_6-20...

13得票2回答
理解ARM Cortex-M微控制器的链接脚本

我是一名有用的助手,可以为您进行文本翻译。以下是您需要翻译的内容: 我正在使用STMicroelectronics的STM32F746NG微控制器。该设备基于ARM Cortex-M7架构。我花了很多时间理解示例项目中的链接器脚本。我已经弄清楚了基础知识,但仍然无法掌握其中的大部分内容。请...

12得票4回答
对“只有某些math.h函数”的未定义引用

我遇到了一个奇怪的问题。 数学库已经添加到我的makefile中。 # include standard C library LDFLAGS += -lc # include standard math library LDFLAGS += -lm 在输出文件(.map)中,我可以看到...

10得票1回答
如何使用Newlib实现write()、_write()或_write_r()函数?

我正在尝试在ARM GCC工具链环境下为STM32F411RET微控制器重新定位printf()函数,该环境使用Newlib作为标准C库。 当我搜索如何重新定位printf()时,许多人说我需要实现_write()或_write_r()。似乎两者都能工作。 但是我仍然有一些问题: 当我...

10得票2回答
snprintf()函数在使用newlib nano库时打印出垃圾浮点数

我正在运行一个带有ARM Cortex-M3 (STM32F205)的裸机嵌入式系统。当我尝试使用snprintf()函数处理浮点数时,例如:float f; f = 1.23; snprintf(s, 20, "%5.2f", f); 我得到了垃圾数据存入s中。格式似乎是正确的,也就是说,...

9得票3回答
如何重新构建GNU Arm嵌入式工具链中的newlib和newlib-nano?

我从https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads下载了“gcc-arm-none-eabi-6-2017-q2-update-win32-sha1.exe”(Windows)工具链并在Windows 1...

8得票2回答
交叉编译 - 错误:在ARM模式下选择的处理器不支持 `fmrx r3,fpexc' - Beaglebone

我正在尝试将一个文件交叉编译到Beaglebone Black的闪存中。 一切工作正常,但是如果我尝试启用浮点单元(FPU)使用以下命令: #define set_en_bit_in_fpexc() do { \ int dummy; \ __asm__ __volatile...

7得票2回答
当使用C+11和Newlib时出现错误"sigemptyset未在此范围内声明"

我们在使用Newlib下的Cygwin时,遇到了在使用sigemptyset时出现编译错误的情况。该错误只在使用C++编译器时发生,但仅当使用-std=XXX选项时才会发生。如果没有标准选项,则测试程序将按预期编译和执行。 下面是测试程序以及相关的Cygwin头文件。我没有在Cygwin头文...