Just when I thought I'd seen everything, something new comes along. Today I have two flash memory locations, 0x402E and 0x402F that always read 0xFF. They should be 0xa1 and 0x08 (CMP #08).
The processor is an MC9S08QE128. I'm using CW for MCUs, 11.1. Questions:
- Can I use CW to attempt to manually reprogram these locations to verify the problem?
- Is there a test to see what other locations might be affected?
- Is there a way to tell CW to avoid these locations?
Based on the S19 file, CodeWarrior and the P&E Multlilink Universal FX are supposed to set those locations to 0xA1 and 0x08. They are always 0xFF.
So when you load the S19 using the multilink FX and CodeWarrior, the file is loaded properly, without error but two locations are not written, it is correct?
Can you please check that you are setting the correct device?
if you run the loaded program on the device, the device runs?
regards
Vincent --
The program is for the QE128, which is on the board.
The program runs, but obviously doesn't load Port A.
I wrote a tiny program just to test those memory locations. Here is the main part of the program:
XDEF _Startup
ABSENTRY _Startup
ORG RAMStart ; Insert your data definition here
ExampleVar: DS.B 1
ORG $4028 ; was ROMStart
_Startup:
LDHX #RAMEnd+1 ; initialize the stack pointer
TXS
CLI ; enable interrupts
mainLoop:
NOP
lda PTAD
feed_watchdog
BRA mainLoop
It puts the "LDA PTAD" right at 0x402E and 0x402F. No difference, they are 0xFF.
I then added some NOPs to shove the code over a bit:
ORG $4028 ; was ROMStart
_Startup:
LDHX #RAMEnd+1 ; initialize the stack pointer
TXS
CLI ; enable interrupts
mainLoop:
NOP
NOP
NOP
NOP
NOP
lda PTAD
feed_watchdog
BRA mainLoop
0x402E and 0x402F are still 0xff. The LDA PTAD has moved to 0x4032.
So, I guess the chip is bad.
Is there a way to test the next chip to see if it has a similar problem? I know the factory has ways, but is there anything I can use?
Gary
Sorry, I do not know how you can test all the flash in an easy way and fast way.
but you can try to load data in all the flash and then perform a mass erase, but this will be slow
I do not remember if PÊ has any option for that using the ciclone
sorry would be possible that you to explain a little bit
You have a program and you can not write to those addresses?
how are you writing to those?
you can write to all the other memory areas
are you using flash routines?
regards