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.

[参考译文] TMS320F2800157:如何将 DSP 闪存和 DCSM OTP 数据合并为一个烧录的十六进制文件?

Guru**** 2484615 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1438298/tms320f2800157-how-do-i-merge-dsp-flash-and-dcsm-otp-data-into-one-burned-hex-file

器件型号:TMS320F2800157
主题中讨论的其他器件:SysConfig

工具与软件:

您好、 TI 专家 J ü:

我们的电源产品现在使用2800157 DSP、我们使用第三方编程工具对裸芯片进行编程、因此需要使用插件将闪存数据和加密区域 OTP 数据合并到 一个十六进制文件中、如何写入命令?

我尝试了以下方法、但发现生成了2个 hex 文件、这不符合我们的假设。  

-i.
-memwidth 8
-romwidth 8.

-i app.out
-o app_SP6100.hex

ROM

ROMBoot:O=0x100000 l=0x000040000 //闪存数据
ROMBootOTP:O=0x0F0000 l=0x000000800 //DCSM OTP 数据
}

可以帮帮我吗?

我读出了 DSP 本身加密区域中的所有 OTP 数据、并修改了我们需要的配置、然后将其放入 f280015x_DCSM_OTP.asm 文件中、这样 DCSM OTP 数据就可以了、我们使用文件下载也可以了。

那么、我们可以 像 使用 out 文件同时烧录闪存和 OTP 一样、使用闪存和 OTP 数据生成一个 hex 文件吗?

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

    尊敬的 Foriner:

    您是否具有用于生成应用程序代码.out 和 OTP 十六进制文件的源文件? 如果是、您可以将这些源文件添加到单个项目中并将其重新编译到单个文件中。

    谢谢!

    Luke

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

    我有源项目文件、这个项目文件是包含标准项目和 OTP 的数据配置文件、但我现在的困难是如何生成一个十六进制文件、使用上述配置命令只能生成2个十六进制文件、因为闪存空间和 OTP 空间的地址不是连续的、我不是很明白您所说的方法

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

    尊敬的 Foriner:

    数据配置文件有什么含义? 这是.c 代码吗? 在使用了 DCSM 设置的典型 CCS 工程中、您会在 SysConfig 中编写.c 代码并指定 DCSM 设置、这将生成 dcsm.asm 和 dcsm.cmd 文件。 然后、您可以使用.out 文件同时对应用程序代码和 DCSM 代码进行编程、但是如果您使用自定义 CSM 密码、则可能需要分两步进行编程。 请告诉我这种方法是否可以接受。

    谢谢!

    Luke

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

    我想您不明白我的意思、我目前的困难是生成一个十六进制文件来烧录 DSP 程序、这个十六进制文件需要同时包含闪存数据和 OTP 数据、这是第三方刻录工具所要求的、目前无法实现、目前只能生成2个十六进制文件、无法合并为十六进制文件、请帮助提供一些建议、谢谢

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

    尊敬的 Foriner:

    只需将 DCSM 模块添加到我的 SysConfig 配置中并在工程属性中启用 hex 实用程序、我就能够生成同时包含 OTP 和闪存数据的单个.hex 文件。 您能做到同样的吗?

    谢谢!

    Luke

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

    不可以、我们使用编译后处理步骤 cmd 并使用"hex2000 xxx.hcf"

    "xxx.hcf"中的文件内容被刷新、但无法正常工作

    -i.
    -memwidth 8
    -romwidth 8.

    -i app.out
    -o app_SP6100.hex

    ROM

    ROMBoot:O=0x100000 l=0x000040000 //闪存数据
    ROMBootOTP:O=0x0F0000 l=0x000000800 //DCSM OTP 数据
    }

    "app.out"具有闪存和 OTP 数据

    在这种情况下、我应该怎么做?

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

    我将该线程再分配给 CCS 团队。 我不熟悉.HCF 文件格式、也不熟悉 通过编译后处理步骤存在的所有功能

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

    不要使用编译后处理步骤。  十六进制实用程序集成在 CCS 中。  若要了解如何使用该函 数、请参阅文章 CCS 中的十六进制实用程序。   

    将十六进制命令文件更改为类似于...的内容。

    /* -i  Choose this from the CCS build options for the hex utility */
    /* -memwidth 8  Rely on the default --memwidth=16 */
    -romwidth 16   /* Change from 8 to 16 */
    
    /* -i APP.out               Let CCS supply the input .out file */
    /* -o APP_SP6100.hex        Output files named below */
    
    ROMS
    {
        /* Ranges must be specified in address order */
        ROMBootOTP: o=0x0F0000 l=0x000000800 files={ f1.hex }
        ROMBoot:    o=0x100000 l=0x000040000 files={ f2.hex }
    }

    注释解释了这些更改、但有两项除外。

    以了解对所做的更改 -memwidth -romwidth 、 请搜索 C28x 汇编工具手册 、查看标题为" 了解存储器宽度"的子章节。

    每个内存范围必须指定不同的输出文件。  不幸的是、这就是十六进制实用程序所支持的全部。  稍后组合这些文件。  或许可以使用第三方或开源工具。 或者、可以考虑自己来做。  依赖于同一手册中的十六进制格式描述。  请搜索 标题为  Intel MCS-86目标格式的子章节

    谢谢。此致、

    -George.