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.

Blinking LED using OMAP4430 in CCSv5

Other Parts Discussed in Thread: 4430, 4460

I am trying to understand how to blink an LED in OMAP 4430 using Code Composer Studio v5. This will help me to setup the debug environment in CCS v5 and OMAP 4430. I am using JTAG debugger XDS-100-v3

 

The following link has simillar information for different processor and old CCS v4.

http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/72242.aspx

  • Hi,

    Unfortunately I am not aware of any Blink LED ready-to-run examples for OMAP4 devices. 

    I am not sure if you are already past the point of successfully building, loading and running code with CCSv5 (any code, even a hello world). If not, please check the CCSv5 Getting Started Guide that will get you acquainted to the software environment.

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

    (CCSv5.2 production version will have complete support for basic projects for OMAP4 and others)

    Using the project created with the Getting Started Guide as a platform, to create a simple blink LED code then you will need to have some hardware information about your board - more specifically the connections between your board's LED and the OMAP4 device - CCSv5 does not have this info, but instead you should check the board's documentation for that.

    With this information you will have to add the appropriate code that writes to a register, memory, etc. that turns on the LED.

    Hope this helps,

    Rafael

  • Hi Rafael,

    Thanks for you response.

    I have gone through the link above (CCSv5 getting started) and also went through other tutorials from TI to setup CCS.

    I was able to compile, connect to the OMAP 4430 pandaboard via JTAG debugger XDS 100v3, and also able to view the registers and memory.

    Eventhough I can "Load Program" with my compiled code, but not able to step-by-step debug.

    I suspect some settings is not correct, while compiling.

     - Durai

  • I have uploaded a video on my setup and relevant code

    http://www.youtube.com/watch?v=rCrrwB4zgVc&feature=youtu.be

  • FYI,I am using CCS v5.2.

    Also I have used the GEL files from http://omappedia.org/wiki/PandaBoard_JTAG_Debugging

  • Hi,

    A few details:

    - I noticed you selected the Cortex M device of the OMAP4430 for your project, but is trying to load the executable to the Cortex A9. This is one of the possible causes for the core to be in the never-ending state of "Running" as it tries to reach main().

    - Make sure your linker CMD file is not trying to load code to weird memory areas. CCSv5.2 now ships with example OMAP4 linker CMD files for both the Cortex A and Cortex M cores. If you are creating your project, from the new project wizard simply open the Advanced Settings and select the linker command file as OMAP4430.cmd.

    - I saw the GEL file throws some errors in the first run. CCSv5.2 now ships with a configuration for Pandaboard that already points to a working GEL file. Just be sure you are not running any other Operating System or u-boot when trying to use GELs.

    - If you want to disable the autorun to main, go to the menu Run --> Debug Configurations, select your configuration (OMAP4430_test, if I am not mistaken from your video) and select the tab Target. Then, scroll down until you find Auto Run Options. Remove the main and de-select the checkboxes. Next time you load the code, it will be in the entry point _c_int00 and halted.

    Hope this helps,

    Rafael

  • I dont see "OMAP 4430 cortex A9" from the device list. The devices  I see are  "OMAP 4430 Cortex M" and "OMAP 4430 ARM9", i tried with both and didn't work.

    Currently I use CCS v 5.2.0.0.44. I am downloading CCS v 5.2.0.0.66 to see whether OMAP_4430_CortexA9 is supported.

    FYI, I used  OMAP 4430 CMD linker file from http://processors.wiki.ti.com/index.php/Linker_CMD_Files_for_CCS#OMAP

  • Hi Rafael,

    Thanks a lot for your help.

    I downloaded latest ccs version 5.2.000069 and I was able to compile, load and step-by-step debug in Pandaboard OMAP 4460 (!).

    Here is the list of mistakes I have done so far (reference for others).

    1. I have choosen incorrect  device name (my board is Pandaboard_ES_RevB1). 

    2. Target endianess needs to be changed to little (default is big)

    3. use correct cmd file (now it comes along with CCS 5.2.69) for the device

    However the JTAG connection is bit instable - not everytime I was able to debug. Sometime I get errors while "Lauching target", or while connecting to target. 

    Regards,

    Durai

  • Also I get a "warning" message, "unknown device id - please update gel files" while lauching the target. But still I was able to step-by-step debug, so I ignore the message.

    CortexA9_0: GEL Output: --->>> omap4460_memory_map_init DONE !!! <<<---
    CortexA9_1: GEL Output: --->>> omap4460_startup_sequence <<<---
    CortexA9_1: GEL Output: --->>> omap4430_memory_map_init DONE !!! <<<---
    IcePick_D: GEL Output: Ducati RTOS is released from Wait-In-Reset.
    IcePick_D: GEL Output: Ducati SIMCOP is released from Wait-In-Reset.
    IcePick_D: GEL Output: IVAHD C64 is released from Wait-In-Reset.
    IcePick_D: GEL Output: IVAHD ICONT1 is released from Wait-In-Reset.
    IcePick_D: GEL Output: IVAHD ICONT2 is released from Wait-In-Reset.
    CS_DAP_DebugSS: GEL Output: --->>> Firewalls settings <<<---
    CS_DAP_DebugSS: GEL Output: --->>> GP device, no FW settings needed. <<<---
    CS_DAP_DebugSS: GEL Output: ---<<< Firewalls settings >>>---
    CortexA9_0: GEL Output: --->>> omap4460_startup_sequence <<<---
    CortexA9_0: GEL Output: --->>> omap4460_startup_sequence <<<---
    CortexA9_0: GEL Output: --->>> !!!! UNKNOWN DEVICE (0x00000002), PLEASE UPDATE GEL FILES !!!! <<<---
    CortexA9_0: GEL Output: --->>> GP device <<<---
    CortexA9_0: GEL Output: Reconfigure PSRAM for accessing if device type = GP
    CortexA9_0: GEL Output: Set system clock to 38.4MHz
    CortexA9_0: GEL Output: --->>> start FORCE VCORE1, VCORE2 and VCORE3 to 1100mV <<<---
    CortexA9_0: GEL Output: --->>> PHOENIX RELEASE => (0x02), EEPROM => (0x24) <<<---
    CortexA9_0: GEL Output: --->>> PHOENIX RELEASE => (0x02), EEPROM => (0x24) <<<---
    CortexA9_0: GEL Output: --->>> end FORCE VCORE1, VCORE2 and VCORE3 to 1100mV <<<---
    CortexA9_0: GEL Output: > UNKNOWN DEVICE ID_NAME: 2
    CortexA9_0: GEL Output: > APPLY BY DEFAULT OPP100 settings for all cores and DDR <CortexA9_0: GEL Output: The core is in non-SECURE state.
    CortexA9_0: GEL Output: --->>> omap4460_startup_sequence DONE !!!!! <<<---