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.

[参考译文] 编译器/UCD3138064A:如何将器件 ID 插入".x0"固件文件?

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/852089/compiler-ucd3138064a-how-to-insert-the-device-id-into-the-x0-firmware-file

器件型号:UCD3138064A
主题中讨论的其他器件:UCD3138UCD3138A64AUCD3138128AUCD3138AUCD3138064UCD3138A64UCD3138128

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

我正在使用旧 GUI (从2013年开始)将".x0"文件下载到 UCD3138器件中。

当前 GUI 将显示:"GUI 无法在固件文件中找到器件 ID。 错误消息:有效的器件 ID 可能是:UCD3000ISO1、UCD3100ISO1、UCD310064V1、UCD310128V1、UCD310A64V1、UCD3138A、UCD3138064A、UCD3138128A、UCD3138A64A。 必须指定用于在字符串中解析的有效信息。"

将此"设备 ID"放入".x0"文件需要执行哪些步骤。

我需要能够在命令行上复制此内容、我需要知道此功能是如何工作的。 因此、基于纯 GUI 的方法是不够的。

我尝试在 编译器 PDF 文档的"armhex"和较旧的"hex470"段中找到答案、但找不到答案。

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

    您好!

    GUI 只是对.x0文件内容执行 ASCII 转储、并查找适合器件 ID 模式/签名的字符串。  然后、它会确定该固件用于哪个器件、以避免下载用于其他器件的固件。   

    我相信 PFC EVM 固件中有如下所示的代码。  如果您有足够的值、因为在编译文件时、该字符串将以十六进制嵌入在.x0中、并在转换为 ASCII 时找到。

    #IF 已定义(UCD3138)

    #define DEVICE_ID "UCD3100ISO1|0.08.08.0317|141031"//设备 ID
    #Elif Defined (UCD3138A)
    #define DEVICE_ID "UCD3138A|0.08.08.0317|141031"//设备 ID
    #Elif Defined (UCD3138064)
    #define DEVICE_ID "UCD310064V1|0.08.08.0317|141031"//设备 ID
    #Elif Defined (UCD3138064A)
    #define DEVICE_ID "UCD3138064A|0.08.08.0317|141031"//设备 ID
    #Elif Defined (UCD3138A64)
    #define DEVICE_ID "UCD310A64V1|0.08.08.0317|141031"//设备 ID
    #Elif Defined (UCD3138128)
    #define DEVICE_ID "UCD310128V1|0.08.08.0317|141031"//设备 ID
    #Elif Defined (UCD3138128A)
    #define DEVICE_ID "UCD3138128A|0.08.08.0317|141031"//设备 ID
    #endif

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

    Amiel 的答案基本上是正确的。

    只需添加一些内容:

    "device_ID"用于:

    const uint8 device_id_string[]= device_ID;

    然后、链接器脚本会将其定位在特定地址(0x7F58):

    FixedDeviceID :{}>(DEVICEID)
    DeviceID (RX):org = 0x00007F58,len = 0x00000020

    此外、ID 字符串必须是特定格式。 示例中提供的字符串:

    "UCD310064V1|0.08.08.0317|141031"

    适用于下载、但下载后、GUI 显示其格式不正确。 我认为版本部分(中间部分)可能太长。

    版本太短也不起作用。 字符串

    "UCD310064V1|0.0.0|191031"

    被拒绝、而字符串被拒绝

    "UCD310064V1|0.0.0.0|191031"

    使用额外的".0"时、会被接受。