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.

[参考译文] CC8530:更改制造的产品 ID

Guru**** 2392105 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/610609/cc8530-change-product-ids-for-manufacturing

器件型号:CC8530

大家好、感谢大家以前提供的所有帮助、

在制造过程中、我们希望将一些信息放入产品 ID 中、每个部件的 ID 可能不同。 配置的其余部分将保持不变、只是不同的产品 ID。

使用 TI 配置器更改配置将是制造过程中的一个实际问题、因此我正在寻找一种更简单的方法。 我注意到、更改产品 ID 仅会更改 hex 文件中的3个点。 2个点是产品 ID 的变化、最后一个点看起来可能是校验和。

我的问题是:

-是否有工具可以修改 hex 文件中的产品 ID?

-或者、我能否制作自己的工具来更新产品 ID、然后重新校验和? 为此、我需要有关如何计算校验和以及覆盖范围的信息。

——或者是否有人有第三种方式:)

我感谢您在这方面提供的任何帮助。

谢谢、

Brian

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

    我不知道可以修改现有 hex 文件中的产品 ID 的任何工具。 但是、如果您对哪些字节是实际产品 ID 持肯定态度、则应直接自己制作此类工具。 当然,在不修改文件中的任何其它内容时,您应该非常小心:-)

    对于校验和计算、您可以查看以下内容: en.wikipedia.org/.../Intel_HEX

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

    按照校验和、我并不是指十六进制文件中每行末尾的校验和、而是指图像底部的校验和。 我假设总图像将受到校验和的保护、看起来是这样的。 但是、我需要有关图像格式的信息、以及如何计算校验和以允许在图像中"修补"产品 ID。

    由于能够对十六进制进行"修补"、我们的制造过程将极其复杂。 我希望有一个解决方案。

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

    您好 Brian、

    以下是用于计算图像校验和的代码:

    (笑声)
    //重新计算图像 CRC (存储的大端字节序)
    const mint32 CRC_ADDR = 0x10000 - 0x0400 - 4;
    mint32 imageCrcBe = pwcUtils::flipUint32 (calcImageCrc (pHexFile、0x00008000、CRC_ADDR - 0x8000));
    pHexFile->Set (CRC_ADDR、4、(字节*)&imageCrcBe);
    (笑声)
    
    
    静态 const mint32 pCrc32Lut[16]={
    0x00000000、0x1DB71064、0x3B6E20C8、0x26D930AC、0x76DC4190、 0x6B6B51F4、0x4DB26158、0x5005713C、
    0xEDB88320、0xF00F9344、0xD6A3E8、0xCB61B38C、0x9B64C2B0、 0x86D3D2D4、0xA00AE278、0xBDBDF21C
    };
    
    
    #define CRC32_INIT 0xFFFFFFFF //<初始累加器值
    #define CRC32_Poly 0x04C11DB7 //< CRC 多项式(00000100 11000001 00011101 10110111)
    #define CRC32_RPOLY0xEDB88320 //< CRC 反向多项式(11101101 10111000 10000011 00100000)
    #define CRC32_final 0xFFFFFFFFF///< HexCety32
    
    
    :PhyCetcr 文件生成器、Hexctry32*操作数 X32
    标准32 d、ind;
    quint32 acc = CRC32_init;
    
    //对于每个字节...
    while (byteCount--){
    d = pHexFile->get (addr++);
    IND =(ACC & 0x0F)^(d & 0x0F);
    ACC =(ACC >> 4)^ pCrc32Lut[ind];
    IND =(ACC & 0x0F)^(d >> 4);
    ACC =(ACC >> 4)^ pCrc32Lut[ind];
    }
    
    返回 ACC ^ CRC32_FINAL;
    }// calcImageCrc
    

    此致、
    Fredrik

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

    谢谢! 我将执行一些 python 代码、并对未修改的十六进制代码运行它、并确保我可以生成相同的校验和。

    现在、这看起来正好是我需要的信息。

    此致、
    Brian