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.

[参考译文] TMS570LS3137:如何从 TI (德州仪器)获取用于引导加载程序(Tms570ls3137)中使用的 F021闪存 API 的源文件

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1064130/tms570ls3137-how-to-get-source-file-from-ti-texas-instruments-for-f021-flash-api-which-is-used-in-bootloader-tms570ls3137

器件型号:TMS570LS3137
主题中讨论的其他器件: HALCOGEN

你(们)好

  我目前使用 的是使用 F021闪存 API 的 UART 引导加载 程序,但该引导加载程序提供了闪存 API,其中包含仅在 CCS 上工作的.Lib 文件(因为它是 TI 编译的)。

我需要源文件以便可以在 GHS (Green hills 编译器)上运行。 那么、如何从 TI 获取适用于 TMS570ls3137的 F021闪存 API 的源文件。

  

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

    您好!

    TI 通常不会分发源代码。 这样做的原因是修改代码可能会影响器件中的闪存。 应用程序中不得使用修改后的 API。 要创建闪存编程解决  方案、必须使用 TI 提供的闪存 API 库。

    如果用户出于 认证目的对源代码有正当合法的需求、则可以根据与 TI 签署的许可协议提供源代码。  

    您可以使用 LS31x 引导加载程序中使用的闪存操作(擦除、程序):BL_FLASH.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="504828" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1064130/tms570ls3137-how-to-get-source-file-from-ti-texas-instruments-for-f021-flash-api-which-is-used-in-bootloader-tms570ls3137。]我需要源文件以便可以在 GHS (Green hills 编译器)上运行。

    Greenhills ARM 编译器是否支持 TI F021闪存 API 所使用的 ARM 标准 EABI ELF 目标格式、或者  Greenhills 是否使用不同的目标格式?

    提出要求的原因是、我不是 Greenhills 编译器用户、他们的网站似乎不允许在未注册的情况下下载编译器数据表。

    创建 HALCoGen 项目时、可选择"GHS Tools"。  

     F021闪存 API 安装中还有 C:\ti\hercules\F021闪存 APi\02.01.01\include\CGT.GHS.h 文件、但包含以下注释:

    Fullscreen
    1
    2
    * Description: GHS compiler specific info used by the F021 API.
    * Note: This has not been tested with the GHS compiler.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    因此、不确定 TI 是否已使用 GHS 编译器测试 F021闪存 API。

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

    Chester Gillon 先生  

          GHS 不支持 F021 API、因为它不支持  ARM 标准 EABI ELF 对象格式。即使您尝试在 GHS 中编译它、也会显示乘法定义错误

    此外、即使您尝试通过在编译器选项中将乘法定义的错误变为静默来抑制错误、

    编译 的程序将运行、但目标文件中的函数不会包含在最终的 elf 输出中、

    当您尝试在控制器中运行程序时、它将显示 中止错误。

    此中止错误 是由于编译器在最终 elf 文件中未包含 fapi (F021 API 对象)、因此在 RAM 上的指定符号位置没有文本   

    下面的链接显示了使用 F021库 API 文件编译时 GHS 产生的错误  

    e2e.ti.com/.../pb-between-green-hills-tools-and-f021-library

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

    谢谢王先生   

    但如何 联系 TI、

    是否有任何方法从 TI 获取源文件。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="504828" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1064130/tms570ls3137-how-to-get-source-file-from-ti-texas-instruments-for-f021-flash-api-which-is-used-in-bootloader-tms570ls3137/3938190 #3938190"]

    下面的链接显示了使用 F021库 API 文件编译时 GHS 产生的错误  

    e2e.ti.com/.../pb-between-green-hills-tools-and-f021-library

    [/报价]

    引用的线程中的错误似乎来自 TI 编译的 F021 API 库文件中的调试信息。

    是否尝试链接用"_NDS"作为后缀的文件名(这意味着在不包含调试符号的情况下进行编译)?

    对于 TMS570LS3137、它将是 F021_API_CortexR4_BE_NDS.lib

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

    好的, 我会尝试并回复你,谢谢你的信息

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

    如您 所见,链接器生成警告,即 F021 API 文件不是链接的一部分  

    我使用了没有调试符号的 API、但问题仍然相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="504828" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1064130/tms570ls3137-how-to-get-source-file-from-ti-texas-instruments-for-f021-flash-api-which-is-used-in-bootloader-tms570ls3137/3938726 #3938726"]您 可以看到链接器发出警告,即 F021 API 文件不是链接的一部分 

     F021_API_CortexR4_BE_NDS.lib 包含41个目标文件:

    Fullscreen
    1
    2
    $ ar t /mnt/windows/ti/Hercules/F021\ Flash\ API/02.01.01/F021_API_CortexR4_BE_NDS.lib | wc -l
    41
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Greenhills 链接器警告 F021_API_CortexR4_BE_NDS.lib 库中的15个目标文件未包含在链接中。 这看起来是正常行为、因为链接器仅包含库中满足 extechutable 未定义符号所需的目标文件。

    链接的可执行文件是否成功运行?

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

    No Mr. Chester Gillon 当 我执行代码时、应该根据映射文件的符号位置来存储闪存 API 的.text 文件的位置在 RAM 位置或复制 ROM 位置中没有数据。

    这些是符号位置、当我的程序执行时、启动代码将闪存 API 从复制 ROM 位置复制到 RAM 中

    但这些位置只是空的 、因为编译器在编译期间未包含这些位置

    当我尝试运行代码时 ,控制器进入未定义条 目,这是 由于执行未定义指令而导致的运行时间错误  

    此错误是由于  在闪存 API 符号的位置没有放置十六进制代码或指令。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="504828" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1064130/tms570ls3137-how-to-get-source-file-from-ti-texas-instruments-for-f021-flash-api-which-is-used-in-bootloader-tms570ls3137/3939427 #3939427"]没有 Chester Gillon 先生 执行代码时、应根据地图文件的符号位置存储闪存 API 的.text 文件的位置在 RAM 位置或复制 ROM 位置中没有数据。

    好的、由于我没有 Green Hills 编译器的许可证、我无法进一步调查。

    您能向 Green Hills 寻求支持吗?

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

    Chester Gillon 先生

       正如您所说、我将尝试询问 Green Hills

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

    IAM 还将要求 TI 提供源文件