AnsweredAssumed Answered

Query regarding implementing RAM self test mechanism

Question asked by Swapnil Vaychale on Dec 26, 2019
Latest reply on Jan 29, 2020 by Daniel Chen



I am using kinetis MK60FX512VMD15 controller having 128 KB SRAM and MQX RTOS version 4.2. 


I would like to implement RAM self test mechanism as follows:

Write some test pattern (e.g. walking 1, walkin 0 etc) to RAM locations, read back the value from RAM locations and verify that the read value matches the written pattern. This way I would like to test the entire physical SRAM periodically.


I am thinking to create one Task using MQX provided API "_task_create()" that will take care of writing the test pattern to RAM locations, reading it back and verifying it.
This way the Task will try to access the physical RAM from its start location and will keep testing it until the RAM's end location.


My questions are:

1.   Can a Task access entire physical RAM so that I can start writing the test pattern from RAM start location and go until RAM end location ?
i.e. assuming the RTOS will allow this Task to access entire RAM without crashing/terminating the Task, even if this Task tries to write to a RAM address that may be mapped to another Task.


2.   How can I access complete physical RAM locations from above Task to perform above test at run time when my other tasks in system are also running ?
i.e. if I try to write the test pattern to a certain RAM location and if that location is mapped/assigned by RTOS to another Task, won't it corrupt the data that was used by other Task?

Kindly let me know if this would be a correct approach or if you would like to suggest some different approach.

Thanks & Regards,