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.

Flashburn checksum on DM648 EVM

When I burn my DM648 EVM application to flash, it runs fine the first time, but after that it does not start properly.  I want to know if my program's flash accesses might be corrupting flash.  I was hoping to use the CRC feature of the AIS generator, but the UBL project has an empty function for calculating the CRC.

I am currently digging through the perl to figure out how the CRC is done, but I was wondering if anyone might have a quick way to get a checksum running so I can verify flash integrity.

Thanks!

  •  Nevermind - managed to get a checksum going.

  • Hello chris,

    For the benefit of others out there who may run into the same problems, would you mind elaborating what you did to correct this? A side benefit is that if there are issues with documentation surrounding the bootloader software we can push them to be fixed!

  • In the interest of time, I just implemented a simple checksum by adding up the values in each word of the memory for a given buffer.  I did this in %BIOSDVSDK_INSTALL_DIR%\ais_utility\genAIS.pl in the function calcCrcSection().

    I then put the same calculation in the UBL project in ais.c.  There is a function updateCRC() that just returns NULL as it stands when it comes from TI.  So I put in my same caculation there.  I also added some extra printfs (which come out through the serial connection) that tell me the status of the checksums at boot.

    Then I modified create_ais.bat to have "-crc 1" as an option instead of "-crc 0".  This makes the perl script enable the crc calculations.

    When I ran everything, there was some difference in what areas the perl script ran the crc function on and what the bootloader ran it on, because a lot of the values didn't match due to the expected value from the ais file being 0xFFFFFFFF.  But for my purposes, I verified that the application image looked fine and was not corrupt.