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.

Failed to run example code from TI Resource Explorer on Pandaboard ES



Hi

I am trying to run the Hello example code from TI Resource Explorer on the DSP core(c646x) of Pandaboard ES with Jtag(XDS510). The example project is from /SYSBIOS/C6000/OMAP4/PandaBoard_ES/Generic Example/HelloExample. Code building and connecting to all processors are successful. But when loading the .out code on DSP core it failed with the following error messages.

C646X_0: Trouble Writing Memory Block at 0x8000ed00 on Page 0 of Length 0x2236: Error 0x00000002/-1202 Error during: Memory,   CPU pipeline is stalled and the CPU is 'not ready'. This means that the CPU has performed an access which has not completed, and the CPU is waiting. The target may need to be reset.

It looks like a memory map problem but I checked .cfg file and it seems ok. As this is a example code I assume the memory setup should be ok. Could someone please give me some clues what could be wrong? Thanks.

Here are my development configurations:

CCS:                       Version: 5.4.0.00091

JTAG:                      Spectrum Digital XDS510USB

Gel:                         …\emulation\gel\omap4460\omap4460_c64_startup.gel

SYS/BIOS:               6.35.1.29

XDCTools:                3.25.0.48

Target:                     ti.targets.elf.C64T

Platform:                  ti.platforms.sdp4430

Yan

  • Yan,

    The error message indicates the external DDR interface either became misconfigured or a bus contention is happening in your system. In other words, an attempt to write to the external DDR at address 0x8000ED00 is not being completed successfully and the CPU is hung during the execute step.

    Therefore this is tied to the application you are running - your code may be inadvertently misconfiguring the DDR interface (thus a memory write operation will never complete) or you need to double-check if any other core is taking control of the external DDR interface (which would cause a bus contention).

    All that said, I don't know if the platform you chose is suitable for the Pandaboard - the SDP4430 is a different board and uses a different device (The Pandaboard ES uses an OMAP4460).

    Hope this helps,

    Rafael

  • Thank you very much Rafael for the information.

    I have double-checked and even disconnected all other cores(only DSP core connected) but got same error message.

    Regarding the platform, the ti.base searching lists all available platforms for the Target of ti.targets.elf.C64T. There is no SDP4460 on the list for selection. That is the reason the ti.platforms.sdp4430 was used. I also tried ti.platforms.sdp5430 but same error. So how could I add ti.platforms.sdp4460 on my developing system.Thanks.

    Yan

  • Yan,

    From a pure memory organization standpoint both OMAP4430 and OMAP4460 are interchangeable. However, it is possible the platform is initializing timers or something else that turns the board incompatible. To get insights on that you would need to send this question to the BIOS forum (the experts there know a lot more about the RTSC platforms than I)

    Just one additional detail I missed: (edit) are you using a GEL file when connecting to your PandaBoard ES? GEL files are scripts that perform initialization of several device peripherals (including external memory interface) and would allow you to properly read external memory addresses. If in doubt, create a target configuration file (.ccxml) for the PandaBoard ES (not the OMAP4460 device) as it already contains pre-configured GEL files for the board.

    Regards,

    Rafael

    P.S. I saw that you are using a GEL file for the C646x core. However, the external memory interface is configured by the core 0 of the Cortex A9 core - thus, if you are not doing this already, you need to connect to it first (thus initializing all peripherals), then release C646x from reset, then connect to the C646x and load the code. Also, try to open the memory address at the memory browser view to see if this memory can be accessed - this can give you an idea if the issue is catastrophic (thus killing your DSP app) or temporary (the memory is just taking too long to respond). Check the attached screenshot.

    P.S.2 The P.S. above was too large, maybe I should have written a new post.

  • Hi Rafael,

    The .ccxml file I have been using is for PandaBoard ES. My procedures for this example is: connect Cortex A9 core; reset C646x core from Scripts menu; then connect and load C646x core. I guess this should be OK.

    The memory view as you suggested is a good method to narrow down the problem. With is method  I found after Cortex A9 core is connected 0x8000ed00 is visible to A9 core. However this memory is not visible(error message pop up) to C646x core when this core is connected. It suggests to me that some configurations registers have not been initialized property and it has nothing to do platform selection as code loading has not started yet. So it comes down again gel files again. But I believe the .ccxml file I am using is same as your one.

    P.S From your screenshot I found you are using a XDS560 for a jtag connection and my one is XDS510. Is this could be problem? 

    Regards,

    Yan

  • Yan,

    Quite interesting. I am using the exact configuration and procedure as you, which initializes the GEL files in the same way.

    Although I couldn't connect to my Pandaboard ES with my Spectrum Digital XDS510USB (not plus) due to the JTAG voltage (minimum of 3.3V), the emulator class itself shouldn't matter (my BH510L connected fine) and the issue seems indeed focused on the GEL file or a pre-existing board initialization.

    These two details bring two questions:

    - Do you know if your Pandaboard ES uses silicon revision ES1.1 or 1.0? I think the GEL files support both, but this could explain differences in apparently similar setups/boards.

    - Do you have a bootable SD card plugged or any other piece of software running on the board before connecting (maybe stored in flash)? This would pre-initialize the board and could cause the difference in behaviour - maybe MMU, firewalls or any other detail are active and preventing the normal operation.

    Unfortunately I am quickly running out of ideas, as the setup works here with multiple emulators...

    Hope this helps,

    Rafael

     

     

  • My Pandaboard ES is labeled as version B2.

    I do have a SD card running a Linux OS. However when using CCS with jtag I don't have it plugged as this caused some problem when connecting to the board.

    So I will give up on DSP core but will use Cortex A9 with my application. I noticed that there are no any example codes under TI Resource Explorer. I guess it is because TI's C compiler doesn't support Cortex A9.  I may need install third part tools I guess.

    This is probably my last question: Are there any Pandaboard sample codes available from TI particular like SPI, I2S, etc.  Thanks.

    Regards,

    Yan

  • Yan,

    I see a difference: my board is revision B1, but unfortunately I don't have access to a board revision B2 to do this testing. Maybe the experts at the OMAP forum may know something.

    Regarding the availability of example code, I could not find anything - again, the experts at the OMAP forum could help you with that.  

    Regards,

    Rafael

  • Hi Rafael,

    OK I will post this on OMAP forum. Actually my original post was on the OMAP forum and they asked me to put my question on CCS forum.

    Well thank you Rafael for your help.

      Yan

  • Yan,

    I found today a board with a newer silicon revision of the OMAP4460 device (ES1.1). My previous board had ES1.0.

    Unfortunately I still can't reproduce the issue you are seeing - i.e., connecting to the DSP still shows me the entire memory space and does not throw any errors, even after loading some example code to it (a simple hello world).

    I will reply here if I find anything different, ok?

    Regards,

    Rafael

     

  • Hello,

    I'd like to run one of the CCS examples on my Pandaboard ES board. Could you tell me, which values should I use in Target and Platform fields ?

    Regards,

    Paweł