Hi David, I've been busy and this issue had been put on the back burner. I have just tried enabling flash read buffering via driverlib API enableReadBuffering, just DATA_READ and then tried both DATA_READ and INSTRUCTION_FETCH, and my problem was not solved in either case. I have disabled my bootloader's self-verification and don't plan to pursue this issue for the time being. You may close this thread for now; if I find a resolution I'll post it here. With regards to your example application, I must point out that it is not replicating my sitation. It is reading a location in flash and running it through two versions of the CRC calculation engine and comparing the result, and not actually comparing to a CRC computed on the program image itself before loading onto the target. To properly replicate my situation, you would need to extract the program bytes from the toolchain output, in case of GNU toolchain an ELF is produced and the program bytes can be extracted with objcopy -O binary . Then you would run those bytes through the software CRC calculator running on your host PC, and it would be that result that is compared to the CRC computed at runtime on the target. This is what my bootloader is doing and the comparison is failing when examining itself. The bootloader verifies the application it is booting using the same CRC algorithm/functions just fine. Best Regards, Evan
↧