flash - 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 ...

Ok, forget this one. I got it fixed. First segment (with BOOT,INTVEC etc.) is skipped. That gave me a stable CRC. That and ignoring xFF. Let's use this for a while. ;-)

Mark

Reply to
Mark

Hi Mark, after second post i can't understand too. But at all unstable CRC maybe by apply to external memory(low speed flash), TI has special registers for "external bus delay".

Cheers

Reply to
Vic

ElectronDepot 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.