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.

How to take a processor out of reset in CCS?

I have an EVM with the C6a8168 and the way it is setup the ARM keeps the DSP held in reset unless ProcMgr does otherwise.  When developing code in Code Composer is it possible to manually take the DSP out of reset so that code may be loaded into it?  If so, how?  I can connect to the ARM, it gets halted, but I can only connect to the DSP if there is already a program running on it, the DSP is already out of reset.

Lee Holeva

 

  • Lee,

    Check the page below:

    http://processors.wiki.ti.com/index.php/GSG:Connecting_to_slave_cores_in_SoC_devices_v5

    This depends on the GEL file you are using, but for your device you should have an option in the menu Scripts called EVM816X CPUs BRINGUP --> C674x

    Once the DSP is unlocked, you can connect to it and then load code. Just be sure that your code contains memory addresses that the DSP can access or is configured to do so. 

    Hope this helps,

    Rafael

  • During CCS debug, GEL files are often used to release devices held in reset.

    See how Ralph loads a gel file for the A8 which has a routine to initialize the DSP (including pulling it out of reset).

    http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/111318.aspx

    I attached the GEL file discussed in the post.

    ki

    1004.Ti816x_ddr2.gel

  • One other note: If  you have Linux booted on the Cortex A8, you will want to turn the MMU off before running the GEL script. You can do that from the ARM Advanced Features view under the tools menu. Remeber to turn the MMU back on after running the script of course ...

  • It;s not working.  I connected to the ARM A8, unclicked the MMU from ARM Advanced Features, and clicked on Scripts-->EVM816x CPUs Bring Up-->C674x, and it waits forever:

     

    This is CCS4.2.3 by the way.

     

    Lee Holeva

     

  • desouza said:

    This depends on the GEL file you are using, but for your device you should have an option in the menu Scripts called EVM816X CPUs BRINGUP --> C674x

     

    The problem appears to be with the GEL file.  I need a GEL file that upon connection, does  not reset the ARM.  I have discovered that when using no GEL file for the ARM, but only with the C674, the menu item Scripts-->CPUs Bring Up-->C674, does not work.  As I need the DSP to work with a program running on the ARM in Linux, the current GEL file disrupts the execution of the Linux program.  Is there such a GEL file available, and if not, how may the current GEL file be modified?  I'm using the latest GEL file for the C6a816x EVM from Spectrum Digital.

    Lee Holeva

     

  • Lee,

    The GEL file supplied by Spectrum Digital must be assigned to the ARM core to properly work. In this case, since you are already running Linux on the ARM you should not attempt to initialize it from GEL (x-loader + u-boot + Linux already do this for you). In this case I would edit the GEL file and remove all functions from the GEL function OnTargetConnect() - this would prevent them from running when the ARM core is connected, however all the menus to initialize the other cores would still be functional.

    On a side note, when you are running Linux on the ARM but also need the DSP to perform specific processing (like a coprocessor), you can use either Codec Engine or DSP/Link (depending on the device family it is called SYSLink). These components are designed to bring up the DSP from reset, load the desired code into its memory and start its processing with message passing mechanisms - all performed from the ARM side running Linux. 

    As you can imagine, debugging the DSP under these conditions requires some additional steps as the system is running freely and you can't "see" when the DSP is ready to be connected to CCS - the components mentioned above may finish using the DSP before you even have a chance to click on the mouse button to connect. In this case there are some specific pages that describe this process in greater detail. 

    http://processors.wiki.ti.com/index.php/Debugging_the_DSP_side_of_a_CE_application_using_CCS

    http://processors.wiki.ti.com/index.php/Debugging_the_DSP_side_of_a_DSPLink_application_on_OMAP_using_CCS

    http://processors.wiki.ti.com/index.php/Debugging_the_DSP_side_of_a_DSPLink_application_on_OMAP-L137_using_CCS

    http://processors.wiki.ti.com/index.php/Debugging_the_DSP_side_of_a_DSPLink_application_on_OMAP-L138_using_CCS

    When using these components, you must never use a GEL file to initialize your device - everything is being done programmatically. 

    Best regards,

    Rafael

  • desouza said:
    In this case I would edit the GEL file and remove all functions from the GEL function OnTargetConnect() - this would prevent them from running when the ARM core is connected, however all the menus to initialize the other cores would still be functional.

    I did this for the ARM, I connect to the ARM, followed by bringing up the C674, and connect to it.  I've then get an error when I attempt to load the DSP program:

    I'm using the same platform memory map as used in the Syslink samples.

    Lee Holeva

     

  • Lee,

    Did you use the GEL script to initialize external memory? the menu item is ""NETRA External Memories" (in the gel file I attached).

    ki

  • Ki-Soo Lee said:

    Did you use the GEL script to initialize external memory? the menu item is ""NETRA External Memories" (in the gel file I attached).

     

    No, I overlooked that.  Should I use this GEL file in-place of the Spectrum Digital GEL for the DSP?

    Lee Holeva

     

  • I went to Spectrum Digital's site and took a peek at the GEL files there. Looks like external memory is automatically initialized when your connect to the A8 with 'Setup_DDR()'. The one I had needed that manual step. I tried their GEL file out, and it worked for me. I was able to load a program at least.I did have to powercycle the board though.

    Could you attach your executable for the DSP? I'd like to see if I can load it in my environment.

    ki

  • Ki-Soo Lee said:
    I tried their GEL file out, and it worked for me. I was able to load a program at least.I did have to powercycle the board though.

    I got it working now.  I had forgotten to unckeck MMU from ARM Advanced Features.

    Lee Holeva