CCS + BeagleBoard problems

Hey all.

Ok so I've got Angstrom setup on the BeagleBoard (2.6.28) and on my
main PC I have CCS v3.3 with SR-11 update. I'm using a BlackHawk
USB560.

I started up CCS Setup and from the factory boards list I added
Blackhawk USB560m - OMAP3530 Beagle Board which dropped in fine. I
started up CCS and it brings up the Parallel Debug Manager. From
there I try to connect to the C6400+ but because the DSP isn't setup
yet that doesn't work. I try to connect to the CortexA and the
BeagleBoard hangs and the debug manager sits there. Then after about
a minute it says it's haveing troubles connecting and that it might be
stuck in an infinite loop. The only way out is to reboot the BB.

So basically what I want to know is, am I able to start developing
apps that target the Cortex CPU right now or do I have to add anything
else to CCS? If I start CCS and create a new project, the target list
that shows up doesn't include Cortex so I'm a little stuck right now.

Can anyone vector me in the correct direction?

Fred

I started up CCS Setup and from the factory boards list I added
Blackhawk USB560m - OMAP3530 Beagle Board which dropped in fine. I
started up CCS and it brings up the Parallel Debug Manager. From
there I try to connect to the C6400+ but because the DSP isn't setup
yet that doesn't work. I try to connect to the CortexA and the
BeagleBoard hangs and the debug manager sits there. Then after about
a minute it says it's haveing troubles connecting and that it might be
stuck in an infinite loop. The only way out is to reboot the BB.

So basically what I want to know is, am I able to start developing
apps that target the Cortex CPU right now or do I have to add anything
else to CCS? If I start CCS and create a new project, the target list
that shows up doesn't include Cortex so I'm a little stuck right now.

Hi Fred,

You should normally be able to access the Cortex A8 straight out of the box
with SR11 and a Blackhawk USB560m. The system isn't supposed to hang for 1
minute. I have had luck using both the USB560m and USB560bp. Which version
of the USCIF drivers from www.blackhawk-dsp.com are you using?

When can get access to the Cortex A8 in CCS, you can enable the DSP in the
Cortex A8 GEL-menu and then connect to it afterwards using the parallel
debug manager...

With respect to compiling code for the Cortex A8 you need a newer version of
TI code generation tools which doesn't get automatically updated by the
service releases (SRs)...

The standard tools following CCS3.3 is version 4.1.4 (from July 2006). I
can't remember when Cortex A8 was introduced, but it's included in the
fairly new 4.5.0 (October 2008) tool set. I unfortunately don't know how to
get this not having access to the TI network...

As long as you don't really care about performance, ARMv5 instruction set
works as fine for getting started and general use until you get a newer tool
set...

Best regards - Good luck
  Søren

Hi Fred,

You should normally be able to access the Cortex A8 straight out of the
box
with SR11 and a Blackhawk USB560m. The system isn't supposed to hang
for 1
minute. I have had luck using both the USB560m and USB560bp. Which
version
of the USCIF drivers from www.blackhawk-dsp.com are you using?

When can get access to the Cortex A8 in CCS, you can enable the DSP in
the
Cortex A8 GEL-menu and then connect to it afterwards using the parallel
debug manager...

With respect to compiling code for the Cortex A8 you need a newer
version of
TI code generation tools which doesn't get automatically updated by the
service releases (SRs)...

The standard tools following CCS3.3 is version 4.1.4 (from July 2006).
I
can't remember when Cortex A8 was introduced, but it's included in the
fairly new 4.5.0 (October 2008) tool set. I unfortunately don't know
how to
get this not having access to the TI network...

As long as you don't really care about performance, ARMv5 instruction
set
works as fine for getting started and general use until you get a newer
tool
set...

Best regards - Good luck
  Søren

PS: You can get (an evaluation version of) the new tool set 4.5.0 from
CCSv4.0:
http://tiexpressdsp.com/index.php?title=Category:Code_Composer_Studio_v4#Dow
nloads
You need to create a TI account at: http://my.ti.com/

Free Linux versions (for non-commercial use) of the tools can be downloaded
from:
https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/downl
oad.html

> I started up CCS Setup and from the factory boards list I added
> Blackhawk USB560m - OMAP3530 Beagle Board which dropped in fine. I
> started up CCS and it brings up the Parallel Debug Manager. From
> there I try to connect to the C6400+ but because the DSP isn't setup
> yet that doesn't work. I try to connect to the CortexA and the
> BeagleBoard hangs and the debug manager sits there. Then after about
> a minute it says it's haveing troubles connecting and that it might be
> stuck in an infinite loop. The only way out is to reboot the BB.
> So basically what I want to know is, am I able to start developing
> apps that target the Cortex CPU right now or do I have to add anything
> else to CCS? If I start CCS and create a new project, the target list
> that shows up doesn't include Cortex so I'm a little stuck right now.

Hi Fred,

You should normally be able to access the Cortex A8 straight out of the box
with SR11 and a Blackhawk USB560m. The system isn't supposed to hang for 1
minute. I have had luck using both the USB560m and USB560bp. Which version
of the USCIF drivers fromwww.blackhawk-dsp.comare you using?

I have SR12 installed and the most up to date USCIF drivers for the
Blackhawk which are:

Driver Release v3.3.300.0, 26 FEB 2009
CCStudio v3.3 Driver files with USCIF v35.34.0.2 support

When can get access to the Cortex A8 in CCS, you can enable the DSP in the
Cortex A8 GEL-menu and then connect to it afterwards using the parallel
debug manager...

Well that's the thing. Right now the DSP is inactive and we are in
the process of re-compiling the kernel to support it so right now, I'm
just aiming to write some code for the Cortex CPU and maybe hit the
NEON instructions as well. As it stands, in my Parallel Debug
Manager, I see this configuration

Blackhawk USB560m - OMAP 3530 BeagelBoard
  * ICEPICK_C_0
  * C6400PLUS_0
  * CS_DAP_PC_0
  * CortexA_0

When I connect the CS_DAP_PC_0, no problem. when I go to connect the
CoretexA_0, I get an error message - The GEL callback "OnResetDetected
()" for the target "Blackhawk USB560m - OMAP 3530 BeagelBoard/
CortexA_O" is still processing. The function could contain and
infinite loop. Do you wish to pause the processing of this function
and continue? It doesn't matter if I hit YES or NO... the same
message keeps popping up and I need to reboot the BeagleBoard.

Further more, if I click on the CortexA_0 entry, the detailed view in
the right window tells me the processor is the TMS470Rxx which is not
unexpected. Prior to working with the Cortex I was working on the
Davinci DM355 system which uses the ARM7 CPU. But even if I launch
CCS from the PDM and create a new project, I can't see any CPU
configuration for the Cortex in the target list.

Now if I open CCS and try to connect to the CortexA from there, I can
make it work. So now it comes down to which GEL file to use.

Also, how do I upload and connect to code on the Beagle Board if it's
running Angstrom and I'm connected via CCS? Is that even possible?

With respect to compiling code for the Cortex A8 you need a newer version of
TI code generation tools which doesn't get automatically updated by the
service releases (SRs)...

Ok I will have to find those.

Thanks so far for your help!

> I started up CCS Setup and from the factory boards list I added
> Blackhawk USB560m - OMAP3530 Beagle Board which dropped in fine. I
> started up CCS and it brings up the Parallel Debug Manager. From
> there I try to connect to the C6400+ but because the DSP isn't setup
> yet that doesn't work. I try to connect to the CortexA and the
> BeagleBoard hangs and the debug manager sits there. Then after about
> a minute it says it's haveing troubles connecting and that it might be
> stuck in an infinite loop. The only way out is to reboot the BB.
> So basically what I want to know is, am I able to start developing
> apps that target the Cortex CPU right now or do I have to add anything
> else to CCS? If I start CCS and create a new project, the target list
> that shows up doesn't include Cortex so I'm a little stuck right now.

Hi Fred,

You should normally be able to access the Cortex A8 straight out of the box
with SR11 and a Blackhawk USB560m. The system isn't supposed to hang for 1
minute. I have had luck using both the USB560m and USB560bp. Which version
of the USCIF drivers fromwww.blackhawk-dsp.comare you using?

I have SR12 installed and the most up to date USCIF drivers for the
Blackhawk which are:

Driver Release v3.3.300.0, 26 FEB 2009
CCStudio v3.3 Driver files with USCIF v35.34.0.2 support

When can get access to the Cortex A8 in CCS, you can enable the DSP in the
Cortex A8 GEL-menu and then connect to it afterwards using the parallel
debug manager...

Well that's the thing. Right now the DSP is inactive and we are in
the process of re-compiling the kernel to support it so right now, I'm
just aiming to write some code for the Cortex CPU and maybe hit the
NEON instructions as well. As it stands, in my Parallel Debug
Manager, I see this configuration

Blackhawk USB560m - OMAP 3530 BeagelBoard
  * ICEPICK_C_0
  * C6400PLUS_0
  * CS_DAP_PC_0
  * CortexA_0

When I connect the CS_DAP_PC_0, no problem. when I go to connect the
CoretexA_0, I get an error message - The GEL callback "OnResetDetected
()" for the target "Blackhawk USB560m - OMAP 3530 BeagelBoard/
CortexA_O" is still processing. The function could contain and
infinite loop. Do you wish to pause the processing of this function
and continue? It doesn't matter if I hit YES or NO... the same
message keeps popping up and I need to reboot the BeagleBoard.

Further more, if I click on the CortexA_0 entry, the detailed view in
the right window tells me the processor is the TMS470Rxx which is not
unexpected. Prior to working with the Cortex I was working on the
Davinci DM355 system which uses the ARM7 CPU. But even if I launch
CCS from the PDM and create a new project, I can't see any CPU
configuration for the Cortex in the target list.

Now if I open CCS and try to connect to the CortexA from there, I can
make it work. So now it comes down to which GEL file to use.

Also, how do I upload and connect to code on the Beagle Board if it's
running Angstrom and I'm connected via CCS? Is that even possible?

With respect to compiling code for the Cortex A8 you need a newer version of
TI code generation tools which doesn't get automatically updated by the
service releases (SRs)...

Ok I will have to find those.

Thanks so far for your help!

> I started up CCS Setup and from the factory boards list I added
> Blackhawk USB560m - OMAP3530 Beagle Board which dropped in fine. I
> started up CCS and it brings up the Parallel Debug Manager. From
> there I try to connect to the C6400+ but because the DSP isn't setup
> yet that doesn't work. I try to connect to the CortexA and the
> BeagleBoard hangs and the debug manager sits there. Then after about
> a minute it says it's haveing troubles connecting and that it might be
> stuck in an infinite loop. The only way out is to reboot the BB.
> So basically what I want to know is, am I able to start developing
> apps that target the Cortex CPU right now or do I have to add anything
> else to CCS? If I start CCS and create a new project, the target list
> that shows up doesn't include Cortex so I'm a little stuck right now.

Hi Fred,

You should normally be able to access the Cortex A8 straight out of the box
with SR11 and a Blackhawk USB560m. The system isn't supposed to hang for 1
minute. I have had luck using both the USB560m and USB560bp. Which version
of the USCIF drivers fromwww.blackhawk-dsp.comare you using?

I have SR12 installed and the most up to date USCIF drivers for the
Blackhawk which are:

Driver Release v3.3.300.0, 26 FEB 2009
CCStudio v3.3 Driver files with USCIF v35.34.0.2 support

When can get access to the Cortex A8 in CCS, you can enable the DSP in the
Cortex A8 GEL-menu and then connect to it afterwards using the parallel
debug manager...

Well that's the thing. Right now the DSP is inactive and we are in
the process of re-compiling the kernel to support it so right now, I'm
just aiming to write some code for the Cortex CPU and maybe hit the
NEON instructions as well. As it stands, in my Parallel Debug
Manager, I see this configuration

Blackhawk USB560m - OMAP 3530 BeagelBoard
  * ICEPICK_C_0
  * C6400PLUS_0
  * CS_DAP_PC_0
  * CortexA_0

When I connect the CS_DAP_PC_0, no problem. when I go to connect the
CoretexA_0, I get an error message - The GEL callback "OnResetDetected
()" for the target "Blackhawk USB560m - OMAP 3530 BeagelBoard/
CortexA_O" is still processing. The function could contain and
infinite loop. Do you wish to pause the processing of this function
and continue? It doesn't matter if I hit YES or NO... the same
message keeps popping up and I need to reboot the BeagleBoard.

Further more, if I click on the CortexA_0 entry, the detailed view in
the right window tells me the processor is the TMS470Rxx which is not
unexpected. Prior to working with the Cortex I was working on the
Davinci DM355 system which uses the ARM7 CPU. But even if I launch
CCS from the PDM and create a new project, I can't see any CPU
configuration for the Cortex in the target list.

Now if I open CCS and try to connect to the CortexA from there, I can
make it work. So now it comes down to which GEL file to use.

Also, how do I upload and connect to code on the Beagle Board if it's
running Angstrom and I'm connected via CCS? Is that even possible?

With respect to compiling code for the Cortex A8 you need a newer version of
TI code generation tools which doesn't get automatically updated by the
service releases (SRs)...

Ok I will have to find those.

Thanks so far for your help!

Whoa.. NO idea why it posted 3 times!

Now if I open CCS and try to connect to the CortexA from there, I can
make it work. So now it comes down to which GEL file to use.

OK - General rule of thumb - Remove all GEL stuff you don't need. I know
some people don't agree with me on this, but as long as you know what you
are doing and you have a board, which is up running (SD RAM initialized,
Clocks configured, GPMC setup, etc) - because of x-loader and u-boot, you
really don't need GEL files unless you have some kind of special purpose,
and in that case you anyway know what your GEL files are doing...

I hope you will be able to solve you GEL files mess - In case it continues
to bug you please let me know, and I will see what I can do to help you out,
although I - as said - prefer to use GEL files as little as possible... :slight_smile:

Also, how do I upload and connect to code on the Beagle Board if it's
running Angstrom and I'm connected via CCS? Is that even possible?

Why do you consider this a problem? Let Angstrom start booting, hit Alt+C in
CCS in order to connect to the board. Then you can do a Ctrl+R in order to
Reset the CPU and then download your own code using JTAG from the File-Load
menu...

Unless I have completely misunderstood you question, I think you should
easily be able to run you own code although Angstrom is flashed into the
NAND...

Best regards - Good luck
  Søren

> Now if I open CCS and try to connect to the CortexA from there, I can
> make it work. So now it comes down to which GEL file to use.

OK - General rule of thumb - Remove all GEL stuff you don't need. I know
some people don't agree with me on this, but as long as you know what you
are doing and you have a board, which is up running (SD RAM initialized,
Clocks configured, GPMC setup, etc) - because of x-loader and u-boot, you
really don't need GEL files unless you have some kind of special purpose,
and in that case you anyway know what your GEL files are doing...

I hope you will be able to solve you GEL files mess - In case it continues
to bug you please let me know, and I will see what I can do to help you out,
although I - as said - prefer to use GEL files as little as possible... :slight_smile:

> Also, how do I upload and connect to code on the Beagle Board if it's
> running Angstrom and I'm connected via CCS? Is that even possible?

Why do you consider this a problem? Let Angstrom start booting, hit Alt+C in
CCS in order to connect to the board. Then you can do a Ctrl+R in order to
Reset the CPU and then download your own code using JTAG from the File-Load
menu...

Ha ya I was trying to do it after Angstrom had already loaded. I think
a lot of the connection problems was due to Angstrom putting the CPU
into protected mode? This time, I booted and waited until U-Boot had
started and showed the countown timer. I hit a key and stopped the
boot process and easily connected with CCS.

Unless I have completely misunderstood you question, I think you should
easily be able to run you own code although Angstrom is flashed into the
NAND...

Now I have to figure out how to get CCS to compile for Cortex!

Ha ya I was trying to do it after Angstrom had already loaded. I think
a lot of the connection problems was due to Angstrom putting the CPU
into protected mode? This time, I booted and waited until U-Boot had
started and showed the countown timer. I hit a key and stopped the
boot process and easily connected with CCS.

AFAIK standard Angstrom doesn't do anything which should prevent you from
accessing the Cortex using JTAG. That being said you GEL-files might cause
you problems, since the Linux kernel definitely configures the MMU in a way,
which will make certain address ranges protected/unavailable, which might
cause the GEL files to fail/hang...

If you try to connect with no GEL files, I'm however almost certain you will
be able to connect even though Angstrom is running. You might then get
"killed" by a Watchdog not being services or something like this afterwards,
but I bet the basic JTAG connection will work...

Now I have to figure out how to get CCS to compile for Cortex!

In my previous post I forgot to mention that you need to select the new
toolset in CCS after installing it. You do this from the
Parallel-debug-manager by:

1) Select menu Help/About
2) Hit button Component Manager
3) Select "Build Tools/TMS470RxX"
4) Select "Code Generation Tools <v4.5.0>" (or whatever you installed)
   (Per default <v4.1.4> is selected...)

After this you will be able to select Cortex as a build target in CCS...

Best regards - Good luck
  Søren

> Now I have to figure out how to get CCS to compile for Cortex!

In my previous post I forgot to mention that you need to select the new
toolset in CCS after installing it. You do this from the
Parallel-debug-manager by:

1) Select menu Help/About
2) Hit button Component Manager
3) Select "Build Tools/TMS470RxX"
4) Select "Code Generation Tools <v4.5.0>" (or whatever you installed)
(Per default <v4.1.4> is selected...)

Oddly I install CCS SR12 update (so now running 3.3.82.13) yet there
is no option for selecting code generation tools for the CortexA8.
Even the update advisor doesn't present them to me. Could it be
because this version of CCS was given to use for use with the DM355
(which runs the TMS470Rx CPU)?

> > Now I have to figure out how to get CCS to compile for Cortex!
> In my previous post I forgot to mention that you need to select the
> new toolset in CCS after installing it. You do this from the
> Parallel-debug-manager by:
>
> 1) Select menu Help/About
> 2) Hit button Component Manager
> 3) Select "Build Tools/TMS470RxX"
> 4) Select "Code Generation Tools <v4.5.0>" (or whatever you
installed)
> (Per default <v4.1.4> is selected...)
>

Oddly I install CCS SR12 update (so now running 3.3.82.13) yet there
is no option for selecting code generation tools for the CortexA8.
Even the update advisor doesn't present them to me. Could it be
because this version of CCS was given to use for use with the DM355
(which runs the TMS470Rx CPU)?

No it hasn't anything to do with that - CCS is the same for DM and OMAP
(only "branch" is for the MSP430 CPUs :-). The Code Generation Tools (CGT)
isn't a part of the CCS Service Releases.

CGT are released on their own - Unfortunately I don't know any official way
of obtaining them not being a TI employee - The only way I have found is to
download the CCSv4.0 Beta, which contains the 4.5.0 toolset, and then use it
from here, as indicated in my previous post...

Best regards - Good luck
  Søren

That's exactly what I had thought.

ok thanks man for all your help!

There are free Linux versions at: https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/download.html
There are Windows versions at: https://www-a.ti.com/downloads/sds_support/CodeGenerationTools.htm

Those links could be found at http://tiexpressdsp.com and http://beagleboard.org/resources.

There are Windows versions at: https://www-
a.ti.com/downloads/sds_support/CodeGenerationTools.htm

Those links could be found at http://tiexpressdsp.com and
http://beagleboard.org/resources

Hi Jason,

Thanks for the links - Exactly what I couldn't find :slight_smile:

I admit I didn't search the tiexpressdsp.com site. I though searched the
beagleboard.org/resources (again), and I can only find a reference to the
Linux based tools from here.

Going from Linux to Windows on the sds_support-site internally is nearly
impossible - They don't refer each other in any way :slight_smile:

Best regards and thanks again - Enjoy your weekeend
  Søren

So I've managed to get CCS to see the Cortex CPU. I can compile code
but... now I need a .cmd file to properly link it.

Any ideas anyone?

So I've managed to get CCS to see the Cortex CPU. I can compile code
but... now I need a .cmd file to properly link it.

Please use the attached file as a reference. You of cause need to change
section names and sizes to fit your exact needs - The file might contain
stuff which isn't necessary for you project - Just delete it in case. I
however think it serves as a great starting point showing the syntax for
building you own .cmd-files...

Best regards - Good luck
  Søren

PS: I haven't checked this particular file, since it a cut'n'paste (from a
larger file) I did in order to make the main lines/ideas clear...

example.cmd.txt (2.82 KB)