Dear Team ,
Good day!
Our customer are trying to implement a non-destructive RAM test on the F2802 and F2806
controllers. This is a test to be run at power up, and before the C-runtime has been initialized and invoked.
They need to test the M0, M1 and L0 and L1 (in the case of F2806) memories. We
have the following questions:
1. Is it possible to insert and invoke the power on RAM test before the C runtime has been invoked? If yes, how and where would we need to insert
and invoke the RAM test code? We understand this has to be done in assembly code. We tried to use the sample application for F2802x provided in the
C2000MCU_IEC60730 library, but when we tried to build this sample application, we got a lot of link errors that we were unable to resolve.
2. Is there any way to implement the RAM test other than by using the C2000MCU_IEC60730? Would you be able to provide sample code for a self-contained RAM test i.e. one that does not depend on the
C2000MCU_IEC60730 library?
3. If there is no way around other than using the C2000MCU_IEC60730 library, this library currently only provides for the following RAM types to be tested (using function STL_MARCH_TEST_testSafeRam):
a. RAM_TYPE_STACK
b. RAM_TYPE_PIE_VECTOR
c. RAM_TYPE_PSA_CRC
d. RAM_TYPE_BOOT_RSVD
e. RAM_TYPE_PC_TEST_1
Since this does not appear to cover the M1, L0 and L1 memories completely, they are not sure how to use this function for our needs.
4. In the case of function STL_MARCH_TEST_testRam, we can specify the start and end addresses of the RAM to be tested (which means we can test M0, M1, L0 and L1), but is it possible to use this function before the C runtime has been initialized and invoked? If so how?
BR,
Leon.liu