This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Does TI have sample code for testing internal memory via DSS?

Other Parts Discussed in Thread: OMAPL138

All:

OMAPL138, CCS 6.1.1

Has anyone used Debug Server Scripting to do testing of internal memory on a TI processor?

I am specifically interested in memory testing of OMAPL138, but I wanted to check on any processor...

What I would like to do:

1. Write a pattern of 1's and 0's to memory (like 5555... or AAAA...) and read it back to verify.

2. Write a unique pattern to memory and read it back - like write the address of the location as data.

 

  • Hi Todd,


    I have used DSS loadti for running examples without manual intervention...
    We don't have example to test internal or external memory.
    I have seen the code some where on my PC..let me check and update you.
    You can also search in internet to get memory test code like as you said writing and reading back the patterns...
  • Hi Todd,

    The following is the code I came across to test the DDR memory. Using this code, please generate a *.out file.

    There is a command line utility as a part of CCS installation i.e., "load-ti" It is an automated Bat script through which you can run the .out without any manual intervention.

    The loadti is located at "~:\ti\ccsv5\ccs_base\scripting\examples\loadti"

    To invoke the .out and to run the loadti script, use the below command.

    syntax: CALL loadti -c < target configuration file>  < out file name >

    example: -

    CALL loadti -c "C:\Users\20009628\ti\CCSTargetConfigurations\C6748_LCDK_XDS510USB.ccxml" DSPBinaries\test1.out

    ddr3A_memory_test ()
    {
        unsigned int index, value;
    
        GEL_TextOut( "DDR3A memory test... Started\n" );
    
        /* Write a pattern */
        for (index = DDR3A_TEST_START_ADDRESS; index < DDR3A_TEST_END_ADDRESS; index += 4) {
            *index = index;
        }
    
        /* Read and check the pattern */
        for (index = DDR3A_TEST_START_ADDRESS; index < DDR3A_TEST_END_ADDRESS; index += 4) {
    
            value = *index;
    
            if (value  != index) {
                GEL_TextOut( "DDR3A memory test... Failed\n" );
                return -1;
            }
        }
    
        /* Write a pattern for complementary values */
        for (index = DDR3A_TEST_START_ADDRESS; index < DDR3A_TEST_END_ADDRESS; index += 4) {
            *index = ~index;
        }
    
        /* Read and check the pattern */
        for (index = DDR3A_TEST_START_ADDRESS; index < DDR3A_TEST_END_ADDRESS; index += 4) {
    
            value = *index;
    
            if (value  != ~index) {
                GEL_TextOut( "DDR3A memory test... Failed\n" );
                return -1;
            }
        }
    
        GEL_TextOut( "DDR3A memory test... Passed\n" );
        return 0;
    	
    }