MC9S08 GALPAT RAM Test

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC9S08 GALPAT RAM Test

7,623 Views
airbusboy
Contributor I
Hi

I have a requirement to perform a continuous on-line GALPAT memory test. I can't afford to spend too much time performing the test so i was planning on testing one byte per background loop. However, here in lies a problem, without using the stack, i don't see any way of getting parameters into the GALPAT test routine or returning them to their original state after the test.

I've had a look at :-

http://forums.freescale.com/freescale/board/message?board.id=8BITCOMM&message.id=447&query.id=509#M4...

Where a suggestion was made to split the memory up into 32 byte blocks. However, this wouldn't allow me to test for coupling faults outside of the 32 byte block being tested.

Coding is currently in C but i guess 'm looking at an assembler solution.

Based on the MC9S08's limited register set, i'm beginning to wonder if a full test is actually possible.

Any thoughts much appreciated

Gary








Labels (1)
0 Kudos
6 Replies

1,379 Views
bigmac
Specialist III
Hello Gary,
 
To avoid stack usage, I assume the RAM test would need to be inline, within your main loop, and the execution paced by means of a timer overflow interrupt, or something similar, that would set a flag bit to initiate each test.  You might also consider using unused (and benign) peripheral read/write registers for temporary storage purposes, and for keeping track of the next address to be tested.  For example, unused TPM channel registers might be suitable contenders.
 
I am not sure about the "coupling faults" issue.  This would seem to imply that every other RAM address would need to be tested for change, as the test address value was changed.  Since storage is very limited, this would appear feasible only a single byte at a time, for each test value at the test address, making each test very time consuming.
 
Regards,
Mac
 
0 Kudos

1,379 Views
Frosteg
Contributor I
Excuse me, but i have question on the issue too :smileyhappy:
I understand how to keep stack safe,and where to save variables,but how do I keep my current running function  code (which is also in RAM) untouched, during the "backup,test,restore" cycle?
And, does anybody has an idea of how to test entire FLASH , while keeping the data safe (the same cycle?)
0 Kudos

1,379 Views
Nabla69
Contributor V
Hello,

You can move your code around in the RAM: while testing an area you execute from another.
There is no problem of writing RAM while executing from RAM.

Cheers,
Alban.
0 Kudos

1,379 Views
Alban
Senior Contributor II
Hello,

At what the frequency do you need to refresh any memory location ?
Which memory do you need to test (RAM-EEPROM-Flash) ?

Cheers,
Alban.
0 Kudos

1,379 Views
airbusboy
Contributor I
Hi

Test is for RAM.

Frequency is one byte of RAM tested per background loop.

Gary


0 Kudos

1,379 Views
Alban
Senior Contributor II
Hello,

I wanted to know the frequency required in minutes, hours or days. As one byte per loop depends on the loop lenght and bus speed.

You could put the verification in a Timer interrupt that every XXms would read, change, read back, restore a byte in RAM.
Just keep the 1st word (2 bytes) to keep the progress counter. These locations can be tested during soft initialization and then each time the whole RAM is tested.

Regards,
Alban.
0 Kudos