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.

[参考译文] MSP430FR2476:MSP430FR2476 BSL CRC 计算

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1279581/msp430fr2476-msp430fr2476-bsl-crc-calculation

器件型号:MSP430FR2476

早上好!
我要寻找如何在 BSL 命令中计算 CHK 和 CHL?
在 SLAU319AF 中指定:
CHECKSUM = INV [(B1 + 256 ×B2) XOR (B3 + 256 ×B4) XOR… 异或(Bn–1 + 256 ×Bn)]
金奖
CKL = INV [ B1 XOR B3 XOR… XOR Bn–1]
CKH = INV [ B2 XOR B4 XOR… XOR Bn ]。
对于订单:
TX_BSL_版本
[80][01][00][19][e8][62]
<80><05><00><3a><00><09><36> <90><9d>
供应商:[TI] CI:[09] API:[36] pi:[B5]
该计算给出:
CKL = NOT (0x80 XOR 0x00 XOR 0x00 XOR 0x36)= NOT (0XB6)= 0x49。

CKH = NOT (0x05 XOR 0x3A XOR 0x09 XOR 0XB5)= NOT (0x83)= 0x7C。
BSL 脚本解释器给出了这个命令 CKL = 0x90和 CKH = 0x9D。
解释是什么?
提前感谢。

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

    如果您使用的是 FRAM 器件、您参考的是不正确的用户指南。 并未明确说明、但您需要参阅《适用于 FRAM 器件的 BSL 用户指南》(SLAU550)。

    有关计算校验和的信息、请参阅该主题。

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

    尊敬的 Seth:

    感谢您的答复。
    对于每一个阶、只能用灰色的数据来计算 CRC。 


    在这个情况下(TX BSL 版本): 
    TX_BSL_版本 
       [80][01][00][19][e8][62]
       <80><05><00><3a><00><09><36> <90><9d>
       供应商:[TI] CI:[09] API:[36] pi:[B5]

    无符号字符 StingTest[]={0x3A、0x00、0x09、0x36、0xB5};

    uint16_t calculateCRC16CCITTFALSEChecksum (unsigned char * ByteBuffer、unsigned int NumChars)
    {
       INT I = 0;
       INT j = 0;
       uint16_t 校验和= 0xFFFF;    
       
       for (I = 0;I < NumChars;I++)
       {       
          CHECKSUM ^=(ByteBuffer[i]<< 8);
          对于(j = 0;j < 8;j++)
          {
             if (校验和及0x8000)
             {
                校验和<<= 1;
                CHECKSUM ^= 0x1021;//表示 x^15 + x^12 + x^5 + 1多项式
             }
             否则
                校验和<<= 1;
          }
       }



    CRC = calculateCRC16CCITTFALSEChecksum (StingTest、5)= 0x9D90
    对于每个阶、用于 CRC 计算的数据在 SLAU550AB 指南中呈灰色显示。 
    谢谢