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.

[参考译文] 编译器/TDA2EVM5777:在 TDA2EX MPU-A15矢量表中映射到映射文件中的0x00位置、但在加载.elf 符号时该位置不显示

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/649738/compiler-tda2evm5777-in-tda2ex-mpu-a15-vector-table-mapped-to-0x00-location-in-map-file-but-while-loading-elf-symbol-not-shown-at-that-location

器件型号:TDA2EVM5777

工具/软件:TI C/C++编译器

您好!

在 IPU2实现时、我们遇到了与 ti-cgt-arm_5.2.5编译器相同的问题。 对于该编译器、我们使用中的-retain 编译器标志来解决此问题。

现在、对于 MPU-A15、我们使用 GCC (gcc-arm-none-eabi-4_9-2015q3)编译器。 当我们通过 make 文件矢量表编译代码时、会映射到位置0x00、但是

刷写代码后、我们无法在该位置找到向量符号。  

CPU 复位后、它显示地址0x0000000C

请建议是否缺少任何编译器标志或缺少任何其他配置。

谢谢、

Kiran   

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

    尝试将__attribute__((已用))应用于向量表的符号。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    我们使用的 是.s 格式的文件。 当我放置 了__attribute__((.intvecs)时, 我遇到编译器错误。

    请建议 使用指令"__attribute__((used))",而不是适用于.s 文件。

    此致、

    Kiran

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



    您不能将矢量表放置在0x0、因为它是 ROM 存储器。 我不确定闪存写入器如何解释该地址并为 A15加载该地址、但看起来像从 M4完成闪存一样、它可能会将其加载到 M4的0映射地址。

    无论如何、您可以将矢量表保留在 OCMC/DDR 中、并使用 VTOR 告知 A15其位置。

    在 PDK 中、我们将矢量表复制到此地址(TDA2XX_Vector_BASE)。 请参阅 PDK 中 ti_components \drivers\pdk\packages/ti\csl\arch\a15\src\csl_a15_startup.c 中的 intvec.c。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Kiran vidhite">我们使用的 是.s 格式的文件。 当我放置 了__attribute__((.intvecs)时, 我遇到编译器错误。

    抱歉。  我认为您使用 C 语言进行编程、并且您希望保留一个未使用的变量。  您正在使用手工编码的汇编语言进行编程、并且您希望保留一个未使用的段。  为此、请在链接器脚本中使用 keep 指令。 (根据 GCC 惯例、包含链接器详细指令的文本文件称为链接器脚本、通常具有文件扩展名.lds。  根据 TI 惯例、同一文件称为链接器命令文件、其扩展名为.cmd。)  您可以看到一个示例、说明如何在 CCS 随附的 ARM 链接器脚本中使用 Keep。  以下是一个示例的典型位置...

    C:\ti\ccsv7\ccs_base\arm\include\AM572x.lds 

    谢谢、此致、

    乔治