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.

MSP430G2231: FW checksum

Part Number: MSP430G2231

Hi Champ,

I am asking for my customer. (using MSP430G2231IRSA16R)

They are asking how do we store the checksum value initially ? Does it also do it by FW programming ?

The checksum was already stored inside our device, usually the customer would use a tool to check the checksum value in their side.

However, the device was programmed by us, sometimes the checksum read by the programmer will be different from the customer's slide.

There will be doubts as to whether the checksum value is correct or not.

If like this already-programmed device, the customer would ask what is the checksum read by ourselves ? Could we provide the checksum read by us ?

The customer will fill in the checksum value we give directly, so as not to say that the checksum is different from what the customer sees.

Thanks for the support.

  • Hi Johnny,

    We don't have a fix address to save FW CRC checksum into device.  Customer could calculate checksum through some calculate tools.

  • Hi Allen,

    Sorry for that, I am not familiar with this. I still don't get it. 

    As I know, at reset, the boot ROM initializes the device, then will check the checksum. If it is valid, then jump to flash. (please correct me if I am wrong)

    Could you please explain more about you are saying we don't have a fix address to save FW CRC checksum into device. It sounds like we do still have the checksum value, though it isn't stored in  a fix address, am I correct ?

    Since the customer said the checksum read by TI programmer or other manufacturer's programmer will be different from the one read by the customer's tools. Is it something going to happen ? Or is it the customer's calculation tool issue ?

    Thanks for your support. I appreciate it.

  • At reset, the CPU begins execution at the address stored in the reset vector. There is no boot ROM.

  • Hi David,

    How about my customer is talking about the part number of MSP430G2231IRSA16R with register, register is attached as below.

    @f800
    
    0F 12 0E 12 E2 B3 79 00 04 24 D2 D3 21 00 A2 43 
    
    04 02 1F 42 04 02 2F 83 66 24 2F 83 0B 24 2F 83 
    
    5A 24 2F 83 50 24 2F 83 41 24 2F 83 37 24 2F 83 
    
    1D 24 64 3C D2 B3 7C 00 02 24 D2 53 02 02 E2 D3 
    
    78 00 D2 92 02 02 7C 00 08 24 F2 43 7C 00 D2 D3 
    
    21 00 B2 40 06 00 04 02 06 3C C2 43 7C 00 D2 C3 
    
    21 00 B2 42 04 02 D2 D3 7B 00 48 3C E2 D3 78 00 
    
    D2 42 7C 00 01 02 5E 42 01 02 5F 42 00 02 8F 10 
    
    0F 5E 82 4F 06 02 92 42 06 02 74 01 C2 43 7C 00 
    
    D2 D3 7B 00 B2 40 06 00 04 02 30 3C E2 C3 78 00 
    
    F2 D2 7B 00 B2 40 0E 00 04 02 28 3C E2 D3 78 00 
    
    D2 42 7C 00 00 02 C2 43 7C 00 D2 D3 7B 00 B2 40 
    
    0C 00 04 02 1B 3C E2 C3 78 00 F2 D2 7B 00 B2 40 
    
    0A 00 04 02 13 3C E2 C3 78 00 F2 40 90 00 02 02 
    
    82 43 04 02 0B 3C 3F 40 E0 00 5F F2 7B 00 7F 52 
    
    C2 4F 7B 00 E2 C3 79 00 A2 42 04 02 D2 C3 79 00 
    
    3E 41 3F 41 00 13 B2 40 80 5A 20 01 F2 93 FF 10 
    
    3A 24 C2 43 56 00 D2 42 FF 10 57 00 D2 42 FE 10 
    
    56 00 F2 40 C0 00 21 00 F2 D0 C0 00 27 00 F2 43 
    
    22 00 F2 D0 0C 00 26 00 B2 40 FF 03 72 01 B2 40 
    
    C0 00 64 01 92 43 74 01 B2 40 30 02 60 01 92 43 
    
    06 02 C2 43 29 00 F2 43 2A 00 D2 D3 21 00 F2 40 
    
    C1 00 78 00 F2 40 70 00 79 00 E2 43 7A 00 F2 D0 
    
    20 00 7B 00 D2 C3 78 00 D2 C3 79 00 32 D2 32 D0 
    
    10 00 03 43 FC 3F FF 3F 0A 12 09 12 08 12 0A 4C 
    
    78 4A 09 43 11 3C 0E 4D 0E 8B 1E 83 1D 53 FD 4E 
    
    FF FF 1F 83 FB 23 03 3C 1D 53 FD 4A FF FF 12 C3 
    
    08 10 19 53 39 92 EC 37 18 B3 F6 23 7B 4A 7F 4A 
    
    0C 4B B0 12 3A FB 0B 4C 0C 4F B0 12 06 FB 3C F0 
    
    0F 00 0B DC 3F F0 0F 00 3F 50 03 00 3F 90 12 00 
    
    0C 20 7E 4A 3E B0 80 00 07 24 7C 4A 4C 4C B0 12 
    
    34 FB 3E F0 7F 00 0E DC 0F 5E 3B 90 FF 0F CB 23 
    
    30 40 B2 FB 0A 12 09 12 3F 40 00 00 3F 90 00 00 
    
    04 24 3C 40 00 00 B0 12 72 FA 3F 40 D8 FB 3F 90 
    
    DE FB 16 24 3F 40 E2 FB 3F 90 EA FB 11 24 3A 40 
    
    EA FB 3A 80 E2 FB 0A 11 0A 11 39 40 E2 FB 3C 49 
    
    7F 4C 0F 5F 1F 4F D8 FB 3D 49 8F 12 1A 83 F7 23 
    
    B0 12 CC FB 3F 40 00 00 3F 90 00 00 08 24 3A 40 
    
    00 00 02 3C 3F 4A 8F 12 3A 90 00 00 FB 23 30 40 
    
    B4 FB 0A 12 09 12 09 4C 1B 49 02 00 0A 43 22 3C 
    
    0C 4A 3D 40 06 00 B0 12 72 FB 0C 59 1E 4C 08 00 
    
    1D 4C 04 00 1F 4C 06 00 0C 4F 0E 93 0E 20 3E 40 
    
    D8 FB 3E 90 DE FB 0D 24 6E 4D 0E 5E 1E 4E D8 FB 
    
    1D 53 0C 4D 0D 4F 8E 12 02 3C B0 12 98 FB 1B 49 
    
    02 00 1A 53 0A 9B DC 2B 30 40 B4 FB 3D F0 0F 00 
    
    3D E0 0F 00 0D 5D 0D 5D 00 5D 12 C3 0C 10 12 C3 
    
    0C 10 12 C3 0C 10 12 C3 0C 10 12 C3 0C 10 12 C3 
    
    0C 10 12 C3 0C 10 12 C3 0C 10 12 C3 0C 10 12 C3 
    
    0C 10 12 C3 0C 10 12 C3 0C 10 12 C3 0C 10 12 C3 
    
    0C 10 12 C3 0C 10 30 41 3D F0 0F 00 3D E0 0F 00 
    
    0D 5D 00 5D 0C 5C 0C 5C 0C 5C 0C 5C 0C 5C 0C 5C 
    
    0C 5C 0C 5C 0C 5C 0C 5C 0C 5C 0C 5C 0C 5C 0C 5C 
    
    0C 5C 30 41 31 40 7E 02 B0 12 C8 FB 0C 93 02 24 
    
    B0 12 04 FA 0C 43 B0 12 06 F9 B0 12 C2 FB 1F 4C 
    
    01 00 0F 93 05 24 1D 53 CD 43 FF FF 1F 83 FB 23 
    
    30 41 0E 43 12 C3 0C 10 01 28 0E 5D 0D 5D 0C 93 
    
    F9 23 0C 4E 30 41 0F 4C 0C 4D 3D 40 03 00 0D 5F 
    
    1E 4F 01 00 30 40 98 FB 0F 4C 0E 93 05 24 1F 53 
    
    FF 4D FF FF 1E 83 FB 23 30 41 34 41 35 41 36 41 
    
    37 41 38 41 39 41 3A 41 30 41 32 D0 10 00 FD 3F 
    
    03 43 03 43 FF 3F 03 43 1C 43 30 41 30 41 02 00 
    
    06 00 00 00 90 00 00 00 5E FB 88 F9 86 FB 00 00 
    
    02 00 CE FB 00 02 DE FB 06 02 
    
    @ffe4
    
    BA FB BA FB 00 F8 BA FB 
    
    @fff0
    
    BA FB BA FB BA FB 
    
    @fffc
    
    BA FB 44 FB 
    
    q
    
    

    The customer is asking is the register stored in the IC by programming ? 

    If so, is it able to provide the checksum read by us ? 

    Since sometimes the checksum read by the programmer will be different from the customer's slide tool.

    Thanks for any reply.

  • You say "register" but provide data which is stored in flash memory used for the program. Plus values stored into the vectors. All of that is of course programmed into the part via some tool. Registers are something completely different.

    You can of course calculate a checksum on that if you desire using whatever method you prefer. That method must be carefully specified in order to get repeatable results. For example, do you just include locations written (not repeatable) or the entire memory space?

  • Hi David, 

    Thanks for your reply.

    I kind of get to know you are saying.

    It seems like the checksum calculation depends on what method I am using, so that doesn't mean there is only one checksum value that we could provide to customer, am I correct ?

    Do we provide any calculation tools or calculation method for the customer ? Or how could we help the customer to calculate the checksum, any doc. to share about it ?

    I appreciate your support, thanks.

  • Hi Johnny,

    Checksum is one of the method the verify the code. I have reply to you by mail how to calculate checksum. I will close this ticket.

    Thanks

**Attention** This is a public forum