flash - mvo

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View

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



Re: flash - mvo
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

Re: flash - mvo
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

Site Timeline