【发布时间】:2019-06-16 16:29:16
【问题描述】:
首先,上下文:我正在 ARM Cortex A9 处理器中实现一个程序。我有一个与 C 代码本身相关的问题,在这里解决了:How to set the values of an array to a single variable
首先,我在我的计算机(OS Linux 64 位)中编写了代码,并且上述链接中接受的答案有效。然而,当我在 ARM A9 中做同样的事情时,它没有。我在ARM上做了一个简单的测试:
uint64_t test = 0x1B26B354A1CF;
printf("%lx", test);
打印出来:
d
我的电脑也是这样:
uint64_t test = 0x1B26B354A1CF;
printf("%lx \n", test);
打印:
1b26b354a1cf
所以这似乎是一个溢出问题或处理“大”数据的问题。如何找到解决方法或替代解决方案?
目标:ARTY Z7 FPGA(在这个问题中你可以忽略“FPGA”部分。我只是在使用该板的处理器:ARM A9 CORTEX)
【问题讨论】:
-
你在使用newlib吗?您是针对嵌入式设备还是填充 linux?
xil_printf是什么? -
@KamilCuk 不是我没有使用 newlib。在帖子中添加了“目标设备”。老实说,我不知道什么是 xil_printf,因为我找不到文档。但它在我看到的所有教程和作品中都使用了我现在使用的同一块板。我将其更改为 printf 以避免混淆。我发现的唯一内容是“printf 已缓冲,而 xil_printf 未缓冲”。
-
检查你的库 printf 是否支持 64 位数字打印。许多人没有。