Hi there,
i use a SiLabs C8051F411 with an onboard crc32-engine. In my firmware i build a crc32-checksum of the downloaded hex-file in flash. This checksum is compared to a pre-saved crc32-checksum (written to an other page in the flash-memory). This works fine.
Now i try to simulate this behavior with µVision V4.22.0.0, but i don't work. I use an initialization-file to write my precalculated checksum in the memory before debugging, eg: E CHAR c:0x7A00 = 0x07,0x08,0x03,0xE8
In the code-window of the debugger i see the downloaded hex-file and the precalculated checksum, it all looks correct.
But i get different checksums from the simulation to the real hardware.
Second, i can't access the crc32-result in the debug-session, i only can access bits 7..0 of the 32 bit result.
The datasheet of the C8051F411 says:
14.5.Accessing the CRC0 Result The internal CRC0 result is 32-bits (CRC0SEL = 0b) or 16-bits (CRC0SEL = 1b). The CRC0PNT bits select the byte that is targeted by read and write operations on CRC0DAT and increment after each read or write. The calculation result will remain in the internal CRC0 result register until it is set, overwritten, or additional data is written to CRC0IN.
The pointer CRC0PNT isn't incremented by the debugger after a read-access to CRC0DAT.
Any ideas? Do i have to make any additional settings?
best regards, michael
that's the reason. i didn't check this page, sorry....
best regards