sách gpt4 ai đã đi

Thư viện chia sẻ ARM v5 (ftd2xx) trên nền tảng ARM v7 - vấn đề float cứng so với float mềm

In lại 作者:行者123 更新时间:2023-12-04 05:12:46 27 4
mua khóa gpt4 Nike

我需要在运行 Ubuntu 12.04 的 BeagleBoard xM rev C 上运行一个使用 ftd2xx 的程序。我正在尝试使用提供的 ARM 库 libftd2xx.so đây . libFTDI 不是一个选项。

我注意到的差异来自运行 readelf -hA在 libftd2xx.so 上与 BeagleBoard 上工作的其他库。特定于架构的部分将 ftd2xx 的操作系统名称指定为“ARM926EF-S”,而不是其他库的“7-A”,将 CPU_arch 指定为“v5TEJ”而不是“v7”。

我假设这意味着该库适用于 ARM v5 指令集,而 BeagleBoard 运行的是 ARM v7。有什么方法可以让 ftd2xx 工作吗?

编辑:有人告诉我 ARM7 向后兼容 ARM5,但这并不能解决我的问题。

另一件需要注意的是运行 ldd libftd2xx.so BeagleBoard 上没有列出依赖项,但会打印出 not a dynamic executable ,而它适用于其他库。

编辑2:

问题似乎出在软 float 与硬 float ABI 上。我在 BeagleBoard xM 上有一个 gnueabihf 图像。当我尝试使用静态 libftd2xx.a 编译示例程序时,我得到了很多这样的信息:

/usr/bin/ld: error: static_link_uses VFP register arguments, libftd2xx.a(file.o) does not

/usr/bin/ld: failed to merge target specific data of file libftd2xx.a(file.o)

如果我尝试使用 mfloat-abi=soft 进行编译或 mfloatabi=softfp ,我得到
In file included from /usr/include/stdio.h:28:0,

from main.c:12:

/usr/include/features.h:324:26 fatal error: bits/predef.h: No such file or directory

compilation terminated

我也尝试与 arm-linux-gnueabi 交叉编译而不是 arm-linux-gnueabihf ,但生成的程序不会在 BeagleBoard 上执行。有什么我可以做的还是不可能的?

- - - - - 解决方案 - - - - - - - -

经过一些麻烦之后,FTDI 为我提供了他们库的硬 float 版本,该版本可以正常工作。在许多人单独要求之后,我在这里提供它:

../../../hayk-public/arm926-hf.zip

1 Câu trả lời

v5TEJ 是 v7-A 指令集的子集。

代码运行速度可能会慢一些,并且可能比所需的要大一些,但它应该可以正常工作,而不会因非法指令等而崩溃。除了极少数异常(exception),ARM 代码向后兼容以前的指令集。

如果代码在您的平台上不起作用,则很可能是其他原因,例如缺少对 USB 子系统的访问权限等。

关于architecture - ARM v7 平台上的 ARM v5 共享库 (ftd2xx) - 硬 float 与软 float 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15306447/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com