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/EVMK2EX:在 EVMK2E 器件中使用选项-mfloat-abi=hard 时、启动代码期间引起的未定义指令。

Guru**** 1818760 points
Other Parts Discussed in Thread: AM3358, AM5728, AM1705, CCSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/780727/ccs-evmk2ex-undefined-instruction-caused-during-startup-code-when-using-option--mfloat-abi-hard-with-evmk2e-device

器件型号:EVMK2EX
主题中讨论的其他器件:AM3358AM5728AM1705CCStudio

工具/软件:Code Composer Studio

我在 EVMK2E 开发套件上运行一个简单的裸机程序、但当启用 NEON /硬浮点算术时、会导致一个未定义的指令。 似乎未正确或及时启用协处理器。  

这似乎与 https://e2e.ti.com/support/tools/ccs/f/81/t/531151中相关问题中提到的问题类似 。 我可以使用调试器确认 这与我在 AM3358和 AM5728上成功运行的启动代码相同。 AM5728和 EVMK2E 上的 A15内核。

我正在使用 CCSv8。 在上面的主题中、TI 员工从未返回测试结果、因此我不知道该问题的任何官方解决方案? 在项目设置中启用 VFP 后、即使在 CCS 工具中通过 pen重建 hello world 项目中也存在此问题。 我当前正在尝试找到 CPACR 寄存器以验证其值。

项目设备- K2GEVM

链接器- 66AK2Gxx.lds

编译器- GNU v7.2.1

标志汇总:-mcpu=cortex-a15 -mtun=cortex-a15 -marm -mfloat-abi=hard -mfpu=neon -Dk2g02 -DAM5K2E02 -darm0 -OS -ffunion-SECTIONS -fdata-SECTIONS -g -gdwarf-3 -Wall -speces="rmon .specs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    似乎我至少能够在调试器中解决这个问题。 CPACR 寄存器似乎无法写入、但我使用了稍微不同的 GEL 初始化脚本(evmk2e_arm.gel)、该脚本位于 C:\ti\ccsv8\ccs_base\emulation\boards\evmk2e\gel、而不是看起来用于解决该问题的 evmk2e.gel。

    由于我需要能够从裸机启动(无脚本)访问这些寄存器、我将发布此.gel 在我找到它时执行的其他操作、以启用读取/写入。 (我认为可能是 NSACR)。

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

    您链接的原始线程显然是此行为的根本原因。 遗憾的是、我最终删除了该线程、但后来又进行了另一次讨论、导致创建错误报告 CCSIDE-3476。 此错误针对即将发布的 CCS (CCSv9)进行了修复。

    由于存在其他优先级、CCSv8和更早版本的最终修复程序尚未发布、但其变通办法很简单、并在错误报告的变通办法部分进行了介绍、可以在我下面签名的链接 SDOWP 中看到、其中包括以下内容:

    "在正在使用的启动文件的第97行手动添加 ISB 操作码:STARTUP_ARMCA9.S 或 STARTUP_ARMCA15.S "

    此文件的新版本将很快提供给 CCSv8。

    给您带来的不便、我深表歉意、
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CCSv8即将发布此文件的新版本。[/quotes]Linux 下的 CCS 8.3安装显示了以下可用更新:

    -共享设备支持1.1.1
    - Sitara 器件支持1.4.5

    其中更新说明为:

    [报价]此更新仅适用于 CCSv8及更早版本。 此更新包含改进和错误修复、包括:

    -修复了 CCSIDE-3476 (VFP 初始化无法完成)[/报价]

    但是、这些更新会破坏 STARTUP_ARMCA9.S 和 STARTUP_ARMCA15.S:

    1.从 已 安装的共享器件支持1.1.0开始、Sitara 器件支持1.4.4开始。

    ccsv8/ccs_base/arm/include/startup_arMCA15.S 为 6593字节、日期   为2015年3月3 日、不包括 ISB 指令。

    ccsv8/ccs_base/arm/include/startup_arMCA9.S 为 6590字节、日期为   2015年12月1日、不包括 ISB 指令。

    2.让 CCS 8.3更新为共享器件支持1.1.1和 Sitara 器件支持1.4.5

    ccsv8/ccs_base/arm/include/startup_arMCA15.S 现在是日期为   2019年3月9日的空零字节文件

    已删除 CCSv8/CCS_base/arm/include/startup_ARMCA9.S。

    3.我  在共享设备支持1.0/1.1.1和 Sitara 设备支持1.4.4/1.4.5之间进行了多次切换、以检查这是否是更新的可重复问题、而不是在初始安装更新期间出现一次性干扰。  

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

    [引用 user="Chester Gillon">Linux 下的 CCS 8.3安装显示了以下可用更新:

    -共享设备支持1.1.1

    - Sitara 器件支持1.4.5

    但是、这些更新会破坏 STARTUP_ARMCA9.S 和 STARTUP_ARMCA15.S:

    器件支持文件- Sitara AMxxxx 具有 指向 shared_device_support_1.1.1.zip 和 Sitara_device_support_1.4.5.zip 文件的链接。 将这些 zip 文件解压到 CCS 8.3安装时、更新 了包含 ISB 指令的 STARTUP_ARMCA9.S 和 STARTUP_ARMCA15.S 文件。

    即 、用于共享器件支持1.1.1和 Sitara 器件支持1.4.5的独立 zip 文件有效、对于提供给 CCS"Check for Updates"的更新、问题似乎是无效更新。

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

    由于某些未知原因、安装程序正在以某种方式写入零字节 STARTUP_ARMCA15.S 文件。

    如果我从服务器下载.jar 软件包并将其解压,则文件是正确的。 P2安装程序在某种程度上破坏了安装。

    我必须与其他人一起调查这一点、因为这不在我的权限范围内。 正在正确生成软件包。

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

    我在更新站点上进行了几次测试、从外部公共链接访问更新站点时、仍然有一些不太正确的情况。

    换言之、当我使用指向完全相同的更新站点的内部链接时、我可以安装更新、从而排除该站点中的任何损坏或无效文件。

    此外、以前版本的 CCS (8.2)已从公共链接成功更新、尽管我无法测试多个 CCS 实例。

    调查仍在继续、目前唯一可靠的解决方法是在上面链接的设备支持文件页面中提取.ZIP 文件。

    给您带来的不便、我深表歉意、
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="desouza">安装程序以某种方式编写零字节 startup_arMCA15.S 文件的原因未知。 在 Ubuntu 18.04下安装 CCS 9.0.0.00018的离线安装已安装共享设备支持1.1.1和 Sitara 设备支持1.4.5。 在初始安装中、ISB 指令中存在一个 CCS/CCS_base/ARM/include/startup_ARMCA15.S。

    在首次启动 CCS 9时、CCS 表示提供了一些更新、包括共享器件支持1.1.2和 Sitara 器件支持1.4.6。 安装更新后 、STARTUP_ARMCA15.S 成为零字节文件。 即、对于 CCS 9、问题仍然很明显。 我查看了安装日志、但看不到明显的错误。

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

    [quote user="Chester Gillon">安装更新后 ,STARTUP_ARMCA15.S 成为零字节文件。我查看了 CCS 安装文件中以下内容之间的更改:

    a.安装 CCS 9.0.0.00018 (仅选择支持 Sitara 器件)

    b.安装 共享器件支持1.1.2和 Sitara 器件支持1.4.6的更新。

    执行更新后调查显示:

    CCS/CCS_base/ARM/include/AM1705.cmd 和 CCS/CCS_base/ARM/include/STARTUP_ARMCA15.S 成为零字节文件。

    工作区.metadata/.log 文件有以下错误:

    !entry org.eclipse.equinox.p2.touchpoint.natives 4 0 2019-03-23 18:10:35.453
    消息 org.eclipse.equinox.internal.p2.touchpoint.natives.actions.UnzipAction 错误解压缩文件:/home/mr_halfword/ti/ccs900/ccs/eclipse/downloads/shared_device_support_1.1.2.zipdestination /home/mr_halfword/ti/ccs900/ccs/eclipse/../ccs_base
    
    !entry org.eclipse.equinox.p2.touchpoint.natives 4 0 2019-03-23 18:10:35.458
    消息 org.eclipse.equinox.internal.p2.touchpoint.natives.actions.UnzipAction 错误解压缩文件:/home/mr_halfword/ti/ccs900/ccs/eclipse/downloads/sitara_device_support_1.4.6.zipdestination /home/mr_halfword/ti/ccs900/ccs/eclipse/../ccs_base!! 

     ccs/eclipse/p2/org.eclipse.equinox.p2.core/cache/binary/com.ti.ccstudio.shared.devicesupport_root_1.1.2是一个 zip 文件、其中包含下载文件/shared_device_support_1.1.2.zip。 unzip -l 显示 了 downloads/shared_device_support_1.1.2.zip 中的第一个文件:

    存档:/tmp/downloads/shared_device_support_1.1.2.zip
    长度 日期时间名称
    ---------------------------------------------------- ------ ---- ----
    0 2018-04-02 15:38 ARM/
    0 2019-03-08 14:05 ARM/INCLUT/
    6657 2019-01-18 15:39 ARM/include/startup_ARMCA15.S 

    ccs/eclipse/p2/org.eclipse.equinox.p2.core/cache/binary/com.ti.ccstudio.sitara.devicesupport_root_1.4.6是一个 zip 文件、其中包含 downloads/sitara_device_support_1.4.6.zip。 unzip -l 显示  了 downloads/sitara_device_support_1.4.6.zip 中的第一个文件:

    存档:/tmp/downloads/sitara_device_support_1.4.6.zip
    长度 日期时间名称
    ---------------------------------------------------- ------ ---- ----
    0 2018年6月12日14:12 ARM/
    0 2019-03-08 14:05 ARM/INCLUT/
    2404 2012-03-21 08:42 ARM/include/AM1705.cmd 

    4、即成为零字节的文件是 zip 存档文件中的第一个文件、CCS .log 报告了"org.eclipse.equinox.internal.p2.touchpoint.natives.actions.UnzipAction 错误解压缩文件"错误。

    5.当 strace 用于监视创建零字节文件的 CCS 更新时,可以看到以下序列:

    a.将 CCS 安装中的原始文件重命名为/tmp 目录。

    b.在 CCS 安装中创建一个零字节文件。

    c.将 "\n!entry org.eclipse.equinox.p2.t"...错误写入.log 文件。

    22641 rename ("/home/mr_halfword/ti/ccs900/ccs/ccs_base/arm/include/startup_ARMCA15.S、"/tmp/epp.package.cpp_2d3577e9dc20_7f000101861b/_/home/mr_halfword/ti/ccs900/ccs/ccs_base/arm/include/startup_ARMCA15.S)= 0
    22641 stat ("/home/mr_halfword/ti/ccs900/ccs/ccs_base/arm/include/startup_ARMCA15.S、0x7f8ee38ba0)=-1 ENOENT (无此类文件或目录)
    22641 openat (at_FDCWD、"/home/mr_halfword/ti/ccs900/ccs/eclipse/../ccs_base/arm/include/startup_ARMCA15.S)、O_WRONLY|O_creat|O_TRUNC、0666)= 22641 opat (at_FDCWD、")、O_st_643|0644|0641...
    (s=06641)= 0644=0641...} = 0
    22641关闭(83) = 0
    22641关闭(69) = 0
    22641 stat ("/home/mr_halfword/workspace_v9/.metadata/.log "、{st_mode=s_IFREG|0644、st_size=37647、...}) = 0
    22641 openat (at_FDCWD、"/home/mr_halfword/workspace_v9/.metadata/.log、O_WRONLY|O_CREAT |O_APPEND、0666)= 69
    22641 fstat (69、{st_mode=S_IFREG|0644、st_size=37647、...}) = 0
    22641写入(69、"\n!entry org.eclipse.equinox.p2.t"...、329)= 329
    22641关闭(69) = 0 

    不确定导致 org.eclipse.equinox.p2.touchpoint.natives 创建零字节文件和中止处理 zip 文件的原因。 在 CCS 8.2与 CCS 8.3和 CCS 9.0之间是否对 P2安装程序进行了更改(未显示问题)?

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

    感谢您的更多见解。 在过去几周内、我也一直在对此进行调查、但在 P2接触点组件中找不到可证明此问题的不同之处。 我对我的赌注要么是因为.zip 文件压缩中的更改(它阻止了我喜爱的 WinRAR、以支持7-Zip)、要么是与签名中的必要更改(也在2月更改)相关的内容。

    正如你所能说的,我目前正在抓握吸爪。 但是、我能够在 Windows 的8.3中安装此软件包、但在 Linux 的8.3中安装此软件包、而在两个操作系统的9.0中安装此软件包。

    我一定会告诉您我的进展。

    给您带来的不便、我深表歉意、
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    切斯特、

    我使用了7-Zip 设置,并且能够在 Windows 和 Linux 上的 v9.0.0上创建一个可安装的软件包。 对我来说有效的技巧是使用单个线程压缩文件、并将其他所有内容保留为最标准的格式。 我想它的默认设置对于接触点来说过于激进。



    请明天尝试(让服务器选取更改)并查看其是否起作用。

    此致、
    拉斐尔

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

    [引用 user="desouza">请明天对此进行尝试(以让服务器获取更改)并查看其是否正常工作。 [/引述]适用于 Ubuntu 16.04下的 CCS 9.0。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您报告您的调查结果。 很抱歉。