Do you have a question? Post it now! No Registration Necessary
September 17, 2003, 4:19 pm

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)INTVEC00%0000-0001FF
#
# -Z(CODE)BOOT,CODELIBS00%0200-00FE7F
#
# -Z(CODE)CODE01%0000-01FFFF
#
# -Z(CODE)CODELIBS2,CDATA,CONST,CSTR,ZVECT,CCSTR,
#
# RCODE02%0000-02FFFF
#
# -Z(CODE)CODELIBS303%0000-03FFFF
#
...
# -Z(CODE)CODELIBS707%0000-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
M/\RK
Site Timeline
- » Powering a LPC2114 ARM7
- — Next thread in » Embedded Programming
-
- » PIC without paging?
- — Previous thread in » Embedded Programming
-
- » Plug&Play solution to reach an embedded HTTP server under a router
- — Newest thread in » Embedded Programming
-
- » T37-6 versus T30-6
- — The site's Newest Thread. Posted in » Electronics Design
-