Flash CRC - MVO

Hi group,
I am working with a terminal, 512K RAM (small huh?). Little bit old-fashioned H8510 micro or so. I want to calculate a simple 1-byte xor-checksum (crc) over the bytes written in Flash (where among others the program-code resides). This is the map from 0 to 80000:
# -Z(CODE)INTVEC=000000-0001FF # # -Z(CODE)BOOT,CODELIBS=000200-00FE7F # # -Z(CODE)CODE=010000-01FFFF # # -Z(CODE)CODELIBS2,CDATA,CONST,CSTR,ZVECT,CCSTR, # # RCODE=020000-02FFFF # # -Z(CODE)CODELIBS3=030000-03FFFF # ... # -Z(CODE)CODELIBS7=070000-07FFFF -R -B -z #
With a function called read_mem (from the IAR compiler) I can read bytes from any place in memory. Also cool! :p With a small software all works great, the checksum is steady.
The problem is; each time the crc is calculated for a big sized program in flash, it ends up being a different value. While I thought the program code in flash was always the same. At both the first crc-calculating and in my calc-routine the bytes x00 and xFF are ignored because some blocks in the flash seem to be xFF where the original byte-code contains x00's.
Can somebody explain why my crc-calculating differs eacht time I execute the function?
M/\RK
Reply to
Mark
Loading thread data ...
Hi group,
I am working with a terminal, 512K RAM (small huh?). Little bit
old-fashioned H8510 micro or so.
I want to calculate a simple 1-byte xor-checksum (crc) over the bytes
written in Flash (where among others the program-code resides). This is the
map from 0 to 80000:
# -Z(CODE)INTVEC=000000-0001FF
#
# -Z(CODE)BOOT,CODELIBS=000200-00FE7F
#
# -Z(CODE)CODE=010000-01FFFF
#
# -Z(CODE)CODELIBS2,CDATA,CONST,CSTR,ZVECT,CCSTR,
#
# RCODE=020000-02FFFF
#
# -Z(CODE)CODELIBS3=030000-03FFFF
#
...
# -Z(CODE)CODELIBS7=070000-07FFFF -R -B -z
#
With a function called read_mem (from the IAR compiler) I can read bytes
from any place in memory. Also cool! :p
With a small software all works great, the checksum is steady.
The problem is; each time the crc is calculated for a big sized program in
flash, it ends up being a different value.
While I thought the program code in flash was always the same. At both the
first crc-calculating and in my calc-routine the bytes x00 and xFF are
ignored because some blocks in the flash seem to be xFF where the original
byte-code contains x00's.
Can somebody explain why my crc-calculating differs eacht time I execute the
function?
M/\RK
Reply to
Mark

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.