This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS 10中的 Ubuntu Linux inat-tables.c 问题

Guru**** 2589245 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1022382/ubuntu-linux-inat-tables-c-issue-in-ccs-10

您好!

我提前道歉、因为我不是最喜欢 Linux 的人。 这是我使用 Ubuntu 的第一个大项目、而我使用 Linux 的第二个大项目。

我正在修改一些代码、这些代码最初在 Advantech 微型 PC 上运行(使用自定义、修改版本的 Ubuntu)、但现在需要在运行 Ubuntu 的英特尔 NUC 上运行(当前版本为20.04)。 此代码位于通用 C 语言中。我决定使用 CCS 来运行调试工具、并了解它会导致我非常熟悉 Windows 上的 IDE。

首先、我在 CCS 中创建了一个新的 C 语言项目(而不是 CCS 项目)、并将此代码的内容复制到项目中。 我能够构建程序、但注意到 TI USB 驱动程序3410文件中出现了与 Linux/firmware.h 相关的错误。 我通过进入项目目录并创建指向内核文件夹中头文件的符号链接来解决这个问题。 这最初是内核4.13的版本、但我遇到了与 classmap.h 相关的错误、未找到。 然后,我使用内核4.15和5.4.0-86-generic 尝试了此操作,现在收到下面的错误...

1108 |[0x3b]= INAT_make_IMM (INAT_IMM_byte)| INAT_MODRM | INAT_VEXOK | INAT_EVEXONLY、
|^~~~μ A
‘/ClusterheadTest/Driver/linux/tools/objtool/arch/x86/lib/inat-tables.c:1108:3:注:(接近初始化‘inat_escape_table_3_1’)
./ClusterheadTest/Driver/linux/tools/objtool/arch/x86/lib/inat-tables.c:1109:3:错误:非数组初始化程序中的数组索引

CCS 不喜欢 inat-tables.c 定义映射数组的方式。

我无法判断这是如何设置 CCS 环境的错误、还是我使用的 Linux 内核版本5.4.0-86-generic 存在的真正问题。 我的目标只是让项目立即进行构建、这样我就可以调整 MSP432的代码、而不是以前使用的 MSP430。

如果需要进行调试、我可以共享项目。

提前感谢您的任何帮助、

Greg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    小更新。 我现在有一个 CCS 工程版本、我通过将源文件和驱动程序文件复制到来创建该版本。 该版本现在给了我一个错误...

    /usr/bin/ld:main.o:创建 PIE 对象时、无法使用针对"、rodata"重定位 R_x86_64:32;使用-fPIE 重新编译

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Gregory、

    那么、如果我正确遵循这一点、您是否正在尝试构建与 MSP430 (将替换为432)通信的 Linux 驱动程序?  那么、构建错误来自您用于构建 Linux 代码的任何 GCC 版本?

    只是想弄清楚是谁将其引导至寻求帮助。   

    此致、

    John

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    首先、感谢您的回答!

    我将提供更多有关该项目的背景信息、以防它有助于朝着正确的方向引导该项目。 该程序的目的是将串行通信从 MSP430路由到 SQL 页。 我们一直在从 MSP430升级到432、以便通过 WiFi 接收数据并通过此程序将其发送到 SQL 页面。 现在、我们已经完成了432项目、我希望能够修改此代码、这样我们就不必从头开始编写。

    我没有尝试构建 Linux 驱动程序。 错误似乎来自预先存在的驱动程序。 直到现在、我假定这是 TI 提供的、但现在查看源代码、我不确定。 我在团队工作了两年、我们一直在轮换成员。 由于缺少文档、我没有太多关于此旧版应用程序的信息。

    有问题的驱动程序是 TI 3410/5052 USB 串行驱动程序。 我知道它在5年前的当前状态下工作、但这也是在不同的硬件上工作的。 此文件是 我收到的初始 Linux/firmware.h 错误的来源。

    在使用我的项目/工作区配置时、我不太确定 这是 Linux 发行版(当前使用 Ubuntu 20.04)的错误还是某种类型的 CCS 设置问题。 我似乎在内核文件(在原始帖子和小更新中)中收到所有这些错误、  我认为在我确保更新所有内容后、这些错误不会导致任何问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们(CCS 团队)不能为此提供太多帮助。  在 x86 Linux 主机上构建时、我们没有什么特别之处。  CCS 包含 Eclipse/Cdt、因此存在用于使用 x86 GCC 的构建系统。   基本上、您找到的"C 项目"可用于该项目。  但是、构建错误将来自所使用的 GCC 工具。  我可以尝试在支持3410的团队中进行循环、因为他们可能会帮助您顺利开展工作。

    此致、

    John