Sign in

username:

password:



Not a member?

Search blogs



Search tips

Articles by category

Our Bloggers

DSP Blogs > Mike Dunn > Resolving 'Can't initialize target CPU' on TI C6000 DSPs - Part 1

Mike Dunn
Mike has over 30 years of direct involement with embedded systems like communication controllers, mainframe and minicomputer peripheral controllers, custom minicomputers, microcontrollers and DSPs. His role in these systems has included hardware, microcode, firmware, and software for companies ranging in size from startups to Fortune 500. Mike also enjoys sharing his knowledge and experience with others.

RSS Feed

Would you like to be notified by email when Mike Dunn publishes a new blog?

  

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

Posted by Mike Dunn on Oct 30 2007 under TMS320C6x | Basics   

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



Rate this article:
5
Rating: 5 | Votes: 2
 
posted by Mike Dunn
Mike has over 30 years of direct involement with embedded systems like communication controllers, mainframe and minicomputer peripheral controllers, custom minicomputers, microcontrollers and DSPs. His role in these systems has included hardware, microcode, firmware, and software for companies ranging in size from startups to Fortune 500. Mike also enjoys sharing his knowledge and experience with others.

Previous post by Mike Dunn: Embedded TMS320C6000 Information Kick Off
Next post by Mike Dunn: Resolving 'Can't initialize target CPU' on TI C6000 DSPs - Part 2
all articles by Mike Dunn

Would you like to be notified by email when Mike Dunn publishes a new blog?

  


Comments


 

vakilp wrote:

10/31/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?
 

mikedunn wrote:

10/31/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.
 

stephaneb wrote:

10/31/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.
 

linda1 wrote:

12/27/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

 

mikedunn wrote:

1/2/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
 

sbarua wrote:

1/31/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.

 

mikedunn wrote:

2/1/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
 

sbarua wrote:

2/1/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.

 

huanglei wrote:

7/4/2008
 
thans a lot.

Add a Comment
You need to login before you can post a comment (best way to prevent spam). ( Not a member? )