DSPRelated.com
Blogs

Resolving 'Can't initialize target CPU' on TI C6000 DSPs - Part 1

Mike DunnOctober 30, 200715 comments

Introduction

Today I am going to discuss some of the basics that can help prevent errors that frustrate some users. The information is directed toward TI C6000 family DSPs, but much of it also applies to other TI DSPs. In many cases they represent the user's first involvement with using Code Composer Studio [CCS] and a target board. It has been my experience that the primary cause of the "Can't initialize target CPU" error message and similar messages like "Error connecting to the target" and "Can't establish connection with target CPU" are related to an improper CCS configuration. I will begin with configuration issues and follow-up with troubleshooting procedures to isolate problems that may also generate these errors. This discussion assumes a single DSP target and no other devices in the scan chain.

Background

The answers to many configuration issues are often "in the manual". The questions that occur in real life are "which manual?", "where is the manual?", and "who reads the manual?". Many times a person comes in to the middle of a project or gets to use equipment left over from a completed project and has no knowledge of the 'history of the CCS and emulator installation'. The important initial minimum steps to get past this problem are as follows:

  1. Know which specific version of CCS that you are using [bring up CCS and go to Help->About and make note of the version of CCS that is installed. It is usually 4 numbers separated by 3 decimal points like '3.3.54.1']
  2. Know the vendor name and model of the emulator that you are using.
  3. If you are using a purchased board, know the manufacturer's name and the board part number. If the board is a custom board, know the exact TI device part number being used.

We can assess from the information above that questions like "What is wrong when CCS gives 'Can't initialize target CPU' error on my c6x DSP" do not really provide any useful information.

Turnkey Configuration

In an ideal world, we would bring up CCS setup, observe our target/emulator configuration, select it, and life would be wonderful. Unfortunately, life is not always wonderful. The most common mistake is selecting the wrong target/emulator combination. Make sure that you make your selection carefully. A BlackHawk XDS510, TI XDS510, and Spectrum Digital XDS510 are not the same and they should not be configured the same. Situations occur in which a vendor's configuration files may not be installed correctly and the user, seeing only a single choice, selects the wrong emulator. Be careful, pay attention, and select the correct target/emulator combination.

But wait - that may not be enough. You need to make sure that you have up to date software to support your target. Many targets are displayed with 'x' as a wild card character [like 64xx]. If you are using a target that was released after the driver, that target may not be supported. Always check the emulator vendor's web site for updates on a new installation!

CCS Setup

CCS Setup is used to select the correct emulation driver and target combination. In most situations the correct setup is readily achieved without any problem. Occasionally a user has to create the configuration manually and makes a minor mistake that prevents CCS from operating with the target correctly. One common C6400 mistake is listed below.


Processor Type
XDS510 Driver NameXDS560 Driver Name Comments
TMS320C6400R10 tixds6400.dvr tixds560c64x.dvr only for a few original v1.0 devices
TMS320C6400 tixds6400_11.dvr tixds560c64x_11.dvr use this driver 99.9% of the time

Many of the newer C6000 devices have a more complicated setup than older devices. If you have a non-TI emulator that did not provide a turnkey configuration for your target, you can use the following tip to get the setup correct. This example uses CCS 3.3.

  1. Locate the TI 'Factory Board' configuration that matches the class of your emulator [XDS510 or XDS560] and your target. Drag it into the left pane and leave it there.
  2. Select 'File->Save'. The file will be saved as a text file in the 'C:\CCStudio_v3.3\cc\bin\brddat' directory with 'ccBrd0.dat' as the file name.
  3. Open 'ccBrd0.dat' in a text editor. In most cases, you can duplicate the configuration without referring to this file. When setup asks for something like 'Number of subpaths', you can refer to this file for a clear answer.
  4. Use the graphical display and the information in the text editor as a guide for the following steps.
  5. Select the 'Create Board' tab and locate the vendor's emulator and drag it into the left pane below the configuration.
  6. Drag the appropriate items from the center pane to duplicate the configuration created in step #1.
  7. When you think that you have duplicated the configuration, select 'File->Save'. Now for a twist - the lower configuration will be saved as 'ccBrd0.dat' and your original configuration will be saved as 'ccBrd1.dat'. Be aware that c64+ configurations will display subpath addresses in hex when you look at the properties in setup, but the values will be in decimal in the 'ccBrdx.dat' file.
  8. Delete the original configuration in CCS Setup and perform 'File->Save'. Your new configuration will be saved as 'ccBrd0.dat'.
  9. You can now select 'File->Export' so that you can recall the configuration as needed.


That's all for now,

mikedunn

 p.s. Part 2 is here


[ - ]
Comment by vakilpOctober 30, 2007
Thanks for this. In the past, I have spent over 3-4 days setting the tools up before I have written a single line of code. Very frustrating! This will definately help. What is so different about all these emulators? Are they all not doing JTAG over USB business?
[ - ]
Comment by mikedunnOctober 30, 2007
Thanx for the comment vakilp. I plan to do a more detailed article on emulators in the future. As for your question, think about it like this - You have 2 separate and fixed entities; CCS with a set of APIs and a DSP target with a JTAG interface. You add a unique piece of hardware in the middle [a vendor's emulator] and some amount of unique software [a vendor's software]. After you do this, you must communicate with CCS how to access the vendor software and target. It all sounds so simple - but then you throw in the real life situations. CCS and the target DSP are not constants - they can each vary. Once you consider the total universe - different versions of CCS, different vendor's emulators, and different types of targets the task of configuration can become difficult at times.
[ - ]
Comment by stephanebOctober 30, 2007
Very nice writeup Mike. Do not hesitate to announce this document to the c6x group. I am sure many people will benefit from it.
[ - ]
Comment by linda1December 26, 2007
thanks for the article above,it is very important to my task.but i have come aross another question,please help me , Trouble running Target CPU: Invalid Source port address in the trp The Trp ignored .. QCOMP sent Source Address 0xffffffcf Requestor is CACHE Can't Run Target CPU: SIM may not be in stable state, Advisable to correct the error before Running in the ccs2.2 enrionment ,when i run the code of t264decoder,i come across this question. Thanx and regards linda
[ - ]
Comment by mikedunnJanuary 1, 2008
Linda, your problem may originate as a software bug. The error message portion "Target CPU: Invalid Source port address" which is shown as "0xffffffcf" [a definite bad address]. The code that you are running could be written for a different C6000 family member than you are using causing the invalid address. mikedunn
[ - ]
Comment by sbaruaJanuary 30, 2008
Mike, I am taking the advantage of asking you for help. I used to program MSP430 and recently joined a company to program DSP and it is dual core OMAP5910. I love digital signal processing and i have theoretical experience on it. But as i do not have any experience programming DSP, I do not know and like to know how to configure different peripherals around the dsp core and it's associated GPIO pins. Actually I took the job in the hope that talking to different perpherals (like Flash, RAM, UART) of dsp would be similar to the way it is for microcontroller. I just wanted to hear from someone like you if it is true. if not how different are they. Please drop a note for me. Any sample code that configures a target would be great help.
[ - ]
Comment by mikedunnJanuary 31, 2008
sbarua, The OMAP 5910 is an ARM9/C55x and most of my experience with TI DSPs is with the C6000 family. Flash, RAM, and UART programming is similar to that of a microcontroller, but the setup/configuration may be a bit more difficult. If you have CCS installed, there are probably example or tutorial projects for the 55x installed. You may have to modify the addresses for the OMAP. You can also search ti.com for app notes. I hope this helps. mikedunn
[ - ]
Comment by sbaruaJanuary 31, 2008
Thanks a lot mike. OK it is encouraging that talking to peripherals could be handled. As you said setup/configuration may be difficult. Is it due to the fact that the number of pins and associated REGISTERs used for configuration are enormous as compared to micro ? The other thing i heard that CCS has graphical interface so that you can configure each of the pin and registers from that GUI. Is it true ? Thanks again for your help.
[ - ]
Comment by huangleiJuly 4, 2008
thans a lot.
[ - ]
Comment by jmmNovember 7, 2008
Thank u mike. I want to know is there any RTOS for this TMS320DM6437 ?? if so please let me know
[ - ]
Comment by otaghizadehmdspFebruary 25, 2009
thank you sir for your usefull information.
[ - ]
Comment by absciitNovember 20, 2009
very nice help tips....... it really worked
[ - ]
Comment by ee_praphanAugust 24, 2010
Thanks
[ - ]
Comment by 8310213November 9, 2010
Hi I have a xds 510-usb2.0 Ti Dsp emulator that is a Chinese made. I want to connect CCSv3.3 to EVMOMAPL137 via XDS510-USB2.0 jtag emulator. You wrote:"Locate the TI 'Factory Board' configuration that matches the class of your emulator [XDS510 or XDS560] and your target. Drag it into the left pane and leave it there." But I can't find C6747 EVM XDS510 USB in 'Available Factory Board'. Would you please help me?
[ - ]
Comment by slvsivaAugust 31, 2016
Hello sir,
I want to connet ccs3.1 to tms320lf2407(c2000 dsp) spectrum digital board through XDS510PP Emulator. But I am getting error like "cant intilaize target cpu". Would you please help me out to solve this issue.

To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Please login (on the right) if you already have an account on this platform.

Otherwise, please use this form to register (free) an join one of the largest online community for Electrical/Embedded/DSP/FPGA/ML engineers: