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.

Disassembly and Memory Browser difference



Hi,

I am working on a bootloader based off the Hercules example.  I've gotten to the point where I am able to erase flash and program the flash with the provided example API, Fapi_BlockErase(...) and Fapi_BlockProgram(..)

However, at the end of the Fapi_BlockProgram(..) there is a call to the Flash_Program_Check(...) in which it is failing during the memory comparison.  I looked at the Memory Browser and the Disassembly and noticed that the bytes are different when I hit the failure breakpoint.  On the Memory Browser, the bytes appear exactly as how it should be after the Flash write, but the Disassembly's bytes displays 0xFFFFFFFF (before a Flash write).

I do have a workaround by calling Flash_Program_Check twice.  The second time I call it, the Disassembly's bytes are identical to the Memory Browser.

I've tried using volatiles and calling Fapi_flushPipeline() with no luck.  Is there a reason why this the Disassembly's values are not updating immediately?  This seems to occur when I am rewriting 0x00000000, I am not sure why this address space would be causing the issue.  Please advise.

Thank You,