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/PROCESSOR-SDK-AM335X:另一个开箱即用故障

Guru**** 2952510 points

Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/954578/ccs-processor-sdk-am335x-yet-another-out-of-the-box-failure

器件型号:PROCESSOR-SDK-AM335X
Thread 中讨论的其他器件:SYSBIOS

工具/软件:Code Composer Studio

您好!

 1.启动 CCS 10

2.使用  GNU 7.2.1 Linaro 和模板创建一个新项目(名称测试或其他任何项目): SYS/BIOS | GNU Target 示例|典型

3.选择 SYSBIOS 6.83.0.18和 XDC 3.61.2.27

4.在平台中手动输入“ti.platforms.beaglebone"”,因为下拉列表是空的(其他内容已损坏)

5.按"完成"。  生成项目寺庙。

6. 选择 Build。  获取错误:   

C:/ti/bios_6_83_00_18/packages/ti/sysbios/rts/gnu/ReentSupport.c:84:
未`对 ti_sysbios_rts_GNU_ReentSupport_checkIfCorrectLibrary'的引用 

7. 搜索并找到此解决方案(不是-因为这不是导入的项目)

8.点击常见问题解答链接,阅读该链接,发现它对该问题毫无用处:

`在编译应用程序时出现“未定义的对 ti_SysBIOS_rts_GNU_ReentSupport_checkIfCorrectLibrary’的引用”错误? 

嗯...

在使用 makefile 而不是 CCS 为 ARM 构建应用程序时、可能遇到此错误 

错误。  这是100% CCS。  或  

您将需要从 SYS/BIOS 链接到正确的 C 运行时库。 

它们在哪里?  或

仔细检查 makefile 文件、并确保您使用
的是 SYS/BIOS 软件包中的 libc、libgcc、libm 等、而不是工具链(GCC Linaro)中的 libc、libgcc、libm 等。 

而我没有设置、"向导"就完成了。

但检查链接器设置后、唯一的搜索路径是  

${COM_TI_BIOS_library_path} 

这又是其中一个"封面下"、"魔法"、"你不能看到它的来源"、"工作区中的任何地方都未定义"环境宏。

是否有人想知道为什么我每天都对这种环境感到不满?

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

    尊敬的 Chris:

    我在 PRSDK 文档 中看到了这一点:http://processors.wiki.ti.com/index.php/SYS/BIOS_with_GCC_(CortexA)#What_do_I_need_to_do_to_make_the_C_runtime_library_re-entrant_when_building_SYS.2FBIOS_applications_for_Cortex-A_GNU_targets.C2.A0.3F

    我还看到了 E2E 主题 :https://e2e.ti.com/support/processors/f/791/t/640006?RTOS-SYSBIOS-GNU-linker-error-with-SYSBIOS-v06-52-00-12

    我注意到 SYSBIOS 6.83.00.18依赖于 XDCTools 3.61.03。 但是、我找不到此 XDCTools 版本的公共位置: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/index.html

    6.83.00.18之前的 SYSBIOS 版本是6.82.01.19。 此版本可从上面的链接下载、相关的 XDCTools 版本3.61.0.16位于 CCS 10安装中。

    我尝试使用 SYSBIOS 6.82.01.19和 XDCTools 3.61.0.16创建 SYSBIOS"典型"示例。 但是、我看到同样的构建问题:

    C:/ti/bios_6_82_01_19/packages/ti/sysbios/rts/gnu/ReentSupport.c:84:未`对 ti_sysbios_rts_GNU_ReentSupport_checkIfCorrectLibrary'的引用

    我按照上述 docs/e2e 线程中的说明操作、但仍然看到相同的构建错误。  检查 SYSBIOS 安装、我注意到没有文件夹 \packages/GNU\Targets\arm\libs\install-native\arm-none-eabi\lib\hard。 对我来说、这表明所需的库未包含在安装包中。

    我能够使用 PRSDK 6.3随附的 SYSBIOS 和 XDCTools 版本在 CCS 10中获取 SysBIOS"典型"示例编译。 我建议您使用这些版本、因为它们已作为 PRSDK 版本的一部分进行了测试。

    此致、
    弗兰克

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

    好的、我按照描述安装了软件包、因为没有在任何搜索引擎上找到该页面、只有显示这些软件包的最新版本的页面。

    "开箱即用"故障仍然存在:

    嗯、我没有较新版本的 Java。  这是先决条件吗?  是否应该在某处解释过?  软件包安装程序是否已检测到并中止或提示用户?

    奇怪的是、它实际上会构建一个项目。  但 XGCONG 窗口不会打开。

    无论我打开什么"控制台"、我找不到任何位置都没有定义"XDCTOOLS_Java_HOME"。  因此、这是一个我无法控制的环境变量。  在控制其使用的 Java 版本的 IDE 中,我找不到任何设置。

    (CCS7现在只能使用"种类"的工作。  它一直为我提供空白屏幕...  我本来想抱怨 CCS 10损坏了其中的一些项目,直到我做出神奇的发现,如果您重新调整窗口大小(强制重新喷漆),它将显示屏幕)

    我是否应该直接访问 Oracle 并安装其 Java,以及所有间谍软件、广告和浏览器附加项?   或者是否应该使用现有版本 (jre6)?  或者 TI 是否有推荐/定制版本?

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

    尊敬的 Chris:

    我认为没有必要安装 Java。

    我按照以下步骤创建了一个新的 SYS/BIOS"典型"示例。  我能够构建项目并在 XGCONF 中打开.cfg 文件。

    首先将 PRSDK 6.3安装到 C:\ti_AM335x_06_03_00_106中。 CCS 中的下一步:

    • 选择 Window -> Preferences -> Code Composer Studio -> Products。
      • 单击"添加"按钮、将 C:\ti_am335x_06_03_00_106添加到产品发现路径
      • 单击"Refresh"按钮。  
      • 在 C:\ti_am335x_06_03_00_106中安装所有 RTSC 组件
      • 出现提示时重新启动 CCS
    • 选择 Window -> Preferences -> Code Composer Studio -> Products -> RTSC。
      • 单击"添加"按钮
      • 单击"选择产品"按钮
      • 选择 SYS/BIOS 和6.76.3.01、然后单击 OK (确定)
      • 单击"添加"按钮
      • 单击"选择产品"按钮
      • 选择 XDCtools & 3.55.22_core、然后单击 OK。 请参阅屏幕电容01_add_rtsc_componations.PNG。
    • 选择 Window -> Preferences -> Code Composer Studio -> Build -> Compilers
      • 单击"添加"按钮、将 C:\ti_am335x_06_03_00_106添加到工具发现路径中
      • 单击"Refresh"按钮。  
      • 单击"应用并关闭"按钮。
      • 手动重启 CCS
    • File -> New -> CCS Project
      • 选择 Target:BeagleBone_Black
      • 选择 Comiler 版本:GNU v7.2.1 (Linaro)
      • 在"Project templates and examples"下、选择 SYS/BIOS -> GNU Target Examples -> Typical
      • 键入项目名称、例如"test"、然后单击"Next"
      • XDCpath 软件包存储库将具有"${BIOS_CG_ROOT}/软件包"、但这似乎无法正常工作。
        • 双击此软件包存储库、单击浏览、然后浏览到"C:\ti_am335x_06_03_00_106\BIOS_6_76_03_01\packages、然后单击"选择文件夹"。
        • 请参阅屏幕电容02_CCS_PROJECT_xdctools.PNG。 红圈显示 CCS 对 XDCTools 感到困惑、因为(1)它"自动选择" 3.55.2.22_CORE、即使这是唯一安装的版本、(2)它不理解${BIOS_CG_ROOT}、即使它显示在环境变量中(请参阅下文)。
      • 从平台下拉列表中选择 ti.platforms.beaglebone、然后单击完成。

    要查看"${BIOS_CG_ROOT}"环境变量的值、请执行以下操作:

    • 选择窗口->首选项
    • 选择 Code Composer Studio -> Build -> Variables
    • 单击"Show System Variables"(显示系统变量)
    • 双击"BIOS_CG_ROOT"

    若要在 XGCONF 中打开.cfg 文件:在 Project Explorer 中右键点击 app.cfg、使用-> XGCONF 打开

    请告诉我这是否解决了问题。

    此致、
    弗兰克

    添加 RTSC 组件:01_add_rtsc_components.PNG

    CCS 项目和 XDCTools:02_ccs_project_xdctools.PNG

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

    弗兰克、

    星期一快乐! 将其打开并运行。  XCONF 图形屏幕现在可以工作,我没有安装任何新 Java,等等。  它刚刚 开始自己工作。

    非常烦人……

    此外、我已经越过了安装软件包步骤。

    我无法理解的是:

    当项目未选择 SYSBIOS 产品时、它如何添加"C:\ti\BIOS_6_46_05_55"路径?

    嗯、您对的解释  

    • 选择窗口->首选项
    • 选择 Code Composer Studio -> Build -> Variables
    • 单击"Show System Variables"(显示系统变量)
    • 双击"BIOS_CG_ROOT"

    虽然双击对话框中的列表显示"ecLPISE_DYNAMIC_variable"、但它会显示实际路径。

    似乎表示 CCS 始终将此用作默认搜索路径、无论您如何操作(除非您执行从不同的软件包添加 SYSBIOS 的步骤来覆盖它)。

    现在... 又一个烦恼!!!!  当我告诉它在"c"文件上"构建所选文件"时、为什么编译*。S 文件?   

    为什么即使我选择"S"文件并将其标记为“从编译中排除”,它也会这样做??

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

    Chris、

    [引用用户="Christopher Weber"]

    现在... 又一个烦恼!!!!  当我告诉它在"c"文件上"构建所选文件"时、为什么编译*。S 文件?   

    为什么即使我选择"S"文件并将其标记为“从编译中排除”,它也会这样做??

    [/报价]

    我不确定。 您能否打开此主题的新主题?

    谢谢、此致、
    弗兰克

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

    弗兰克、

    我是这样做的。  此处:

    e2e.ti.com/.../956849

    它具有屏幕截图的链接、显示我可以让它忽略第一个 S 文件、确实如此。

    但是、如果我让它忽略第二个 S 文件、它不会。

    和... (有人在那里放置了# include -不是我)汇编器尝试编译 XDC "C"代码、并生成了上千行或错误... 这是预期的。   

    但这一切都从窗口滚下来了。  因此、我花了几天的时间尝试找出这些误差的来源。  因为错误都是由 XDC 源文件造成的。

    如果窗口保持足够的时间、或者刚刚将其记录到一个文件中、我可以在事后打开、我可以看到原始命令行、而不是花几天的时间尝试确定哪个源文件是原因。

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

    尊敬的 Chris:

    [引用 user="Christopher Weber"]如果窗口保持足够的时间,或者只是将其记录到一个文件中,那么我可以在事后打开,我可以看到原始命令行,而不是花几天时间尝试确定哪个源文件是原因。

    我认为没有方法可以将编译输出重定向到文件。 我只能看到"复制"和"滚动锁定"功能。  这个 e2e 线程中讨论了这个问题: https://e2e.ti.com/support/tools/ccs/f/81/t/87023

    一种可能的权变措施是从命令行编译 CCS 工程、并将编译输出重定向到文件。 请查看: http://software-dl.ti.com/ccs/esd/documents/ccs_projects-command-line.html

    此致、
    弗兰克

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

    弗兰克、

    另一个...  (我是否要提出问题?)

    当我挖掘并查看 GNU 编译器时、我猜 TI 已经放弃了这个东西中的"SYS_BIOS_path"、现在有一个${COM_TI_BIOS_include_path}。

    猜猜猜会怎么样...? 它是空的。 不仅仅是"尚未填充"、它实际上是空的。 而不是在您描述的首选项中的任何位置定义。

    给定以下一组内容:

    ${COM_TI_BIOS_include_path}
    ${PROJECT_ROOT}
    ${CG_TOOL_INCLUDE_PATH}
    ${PROJECT_ROOT}/ti 

    (是的、项目中有一个"TI"文件夹)我的构建命令如下:

    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc-7.3.1.exe
    -c
    -mcpu=cortex-A8
    -March =armv7-a
    -mtun=cortex-A8
    -marm
    -mfloat-abi=hard
    -i"C:/Source/projects/DnsTest
    -i"C:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include
    -i"C:/Source/projects/DnsTest/ti 

    这会从整个命令行中截断、但请注意、列出了4个目录、但命令行有3个目录。 第一个:${COM_TI_BIOS_include_path}甚至未列出。

    接下来、我创建了一个快速测试项目、其中包括:

    ${COM_TI_BIOS_include_path}
    ${PROJECT_ROOT}
    ${XDC_FIND:GNU/目标/ARM/libs/install-native/arm-no-eabi/include/newlib-nano:${ProjName}}
    ${XDC_find:ti/posix/gcc:${ProjName}}$
    {Proj_path}工具 

    真不知道{XDC_FIND…… ??

    显然、调用的是某种搜索、但会发生什么情况? 是否在某处记录? 以及为什么在其后面附加项目名称?

    有什么想法吗?

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

    [引用 user="Christopher Weber">如果窗口保持足够、 或者只是将其记录到一个我可以打开的文件中、事实上、我本来可以看到原始命令行、而不是花几天时间尝试确定哪个源文件是原因。已将完整的编译日志写入工作区、位于文件.metadata/.plugins/org.eclipse.cdt.ui/中 .build.log

    通过 CCS10、我查看了该目录、并看到了2270行完整构建日志(当我收到大量警告时)的一些示例。

    不知道为什么 Eclipse 不明确写入完整编译输出的位置。

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

    切斯特...  哇哦。

    这将很有用。   您是对的、另一种不明显的隐藏行为。

    我有一条"global-build.log"的38、000行!  我想知道何时清除它?

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

    尊敬的 Chris:

    [引用用户="Christopher Weber">另一个...  (我是否要提出问题?)

    是的、我将为这些问题打开一个单独的主题。 这是:

    1. 将来、问题与解答的其他人可以更轻松地找到问题与解答
    2. 为该线程分配了正确的"专家"。

    我现在要关闭这个线程。

    此致、
    弗兰克

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

    切斯特、

    非常感谢非常有用的信息。

    此致、
    弗兰克