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:如何在 GHS 中擦除闪存并为 Tms570ls3137编写引导加载程序

Guru**** 2557650 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/1061774/tms570ls3137-how-to-erase-flash-and-write-a-bootloader-for-tms570ls3137-in-ghs

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

你(们)好

  IAM 当前正在 GHS 中为 TMS570ls3137编写引导加载程序程序、IAM 尝试使用具有库文件(F021_API_CortexR4_be.lib)的 F021 API。 为 Code Composer Studio 编写的示例引导加载程序使用此库(F021_API_CortexR4_be.lib)、此文件具有 使用 EABI (嵌入式应用程序二进制接口)运行时支持库编译的对象。

由于 Code Composer Studio 使用 rtsv7R4_T_be_v3D16_eabi.lib 运行时支持库、因此在执行和编译期间、闪存 API 不会在 Code Composer Studio 中生成任何错误。

问题是 Green Hills 编译器使用 ABI (ARM 应用程序二进制接口)。因此、当我使用提供的 F021闪存 API 进行编译时、它会显示一个多定义错误、即使我解决了此错误。GHS 编译 器不会从 F021 API (F021_API_CortexR4_be.lib)中获取任何对象。

我通过查看.map 文件找到了这一点、GHS 编译器也发出警告、指出编译期间未添加此库。

除了使用 F021 API 之外、还有什么方法可以擦除和写入闪存、因为 Halcogen 不会为闪存创建任何 API (闪存选项上的 Halcogen 上有一个链接,它说通过 下载选项获得 API)。该下载还提供了 Code Composer Studio 中使用的 F021 API。   

如果有人知道如何在 GHS 中编写引导加载程序、请提供一些帮助。

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

    您好!

    为了擦除和编程闪存、必须使用 F021闪存 API。  

    如果项目中没有调用 F021闪存 API、则 F021 API 库将不会包含在项目的映射文件中。

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

    谢谢王先生、

    我在代码中包含了一条调用 API 的行、下面的程序显示了只执行一个操作来擦除 地址0x10000和 长度 为0x07FF0的闪存组、

    我已经在 CCS 上检查过此代码、它工作正常、它会擦除位置 地址0x10000中的任何数据 、并且擦除长度为 0x07FF0、

    我还检查了存储器分配、在这里我可以查看 RAM 和 ROM 上的闪存 API 文本文件

    以下程序在 CCS 中运行良好、编译器包括闪存 API 、但在 GHS 中、编译期间忽略闪存 API

    #include "sys_common.h"

    #include "bl_flash.h"


    #define FLASH_Bank_1 0


    #define FLASH_Bank_2 1.

    int main (空)


    Fapi_BlockErase (((uint32_t) flash_BANK_1、(uint32_t) 0x10000、(uint32_t) 0x07FF0);

    while (1);

    //返回0;

    在 Green Hills compiler (GHS)中添加 API 是否有任何可能的方法、

    如果在编写我自己的 API 时 IAM 的规划没有任何效果,我希望它能起作用

    如果有人遇到相同的问题并编写了一个库、请共享这些文件

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

     无法编写我们自己的闪存 API  

    我刚发现尝试了。

    我相信获取源文件的唯一方法是通过 TI