Forums

is there a CCS plug-in that allows a C program to access DSP mem?

Started by Jeff Brower November 11, 2010
All-

Is there a CCS plug-in that allows a user-defined C program to access DSP memory via the same JTAG connection as CCS?
The idea is that we can do something like this:

-our program, operating as a CCS plug-in, reads the
.out file (it can understand COFF format) and
downloads code to memory

-our program releases code to run (we're using C6472
booting in HPI mode)

-at certain points, the DSP code stops and waits and
our program writes data to DSP mem that the DSP
code needs in order to continue

We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.

-Jeff

_____________________________________
All-

Or is it possible for our C program to access the CCS API, as a plug-in would? Like making DLL calls? Without using
ActiveX, MFC, and other out-dated stuff...

-Jeff

> All-
>
> Is there a CCS plug-in that allows a user-defined C program to access DSP memory via the same JTAG connection as CCS?
> The idea is that we can do something like this:
>
> -our program, operating as a CCS plug-in, reads the
> .out file (it can understand COFF format) and
> downloads code to memory
>
> -our program releases code to run (we're using C6472
> booting in HPI mode)
>
> -at certain points, the DSP code stops and waits and
> our program writes data to DSP mem that the DSP
> code needs in order to continue
>
> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>
> -Jeff

_____________________________________
Jeff-

I don't know about CCS 4, but CCS2.2 in my directory
\ti2\tutorial\evm6201\hostio1
has what looks like a RTDX interface for communicating with the host.

Maybe look for RTDX DLLs on the host that you can use for communication over
JTAG ?

- Andrew

________________________________
From: Jeff Brower
To: c...
Sent: Thu, November 11, 2010 10:55:26 AM
Subject: Re: [c6x] is there a CCS plug-in that allows a C program to access DSP
mem?

All-

Or is it possible for our C program to access the CCS API, as a plug-in would?
Like making DLL calls? Without using
ActiveX, MFC, and other out-dated stuff...

-Jeff

> All-
>
> Is there a CCS plug-in that allows a user-defined C program to access DSP
>memory via the same JTAG connection as CCS?
> The idea is that we can do something like this:
>
> -our program, operating as a CCS plug-in, reads the
> .out file (it can understand COFF format) and
> downloads code to memory
>
> -our program releases code to run (we're using C6472
> booting in HPI mode)
>
> -at certain points, the DSP code stops and waits and
> our program writes data to DSP mem that the DSP
> code needs in order to continue
>
> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>
> -Jeff
Hello Jeff,

On 11/11/2010 9:38 AM, Jeff Brower wrote:
>
> All-
>
> Is there a CCS plug-in that allows a user-defined C program to access
> DSP memory via the same JTAG connection as CCS?
> The idea is that we can do something like this:
>
> -our program, operating as a CCS plug-in, reads the
> .out file (it can understand COFF format) and
> downloads code to memory
>
> -our program releases code to run (we're using C6472
> booting in HPI mode)
>
> -at certain points, the DSP code stops and waits and
> our program writes data to DSP mem that the DSP
> code needs in order to continue
>

I'm a bit busy at the moment. Do you require CCS to be running - or do
you just need to use its resources to access the DSP??

I will followup with more info this evening.

mikedunn
> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>
> -Jeff
Mike-

> On 11/11/2010 9:38 AM, Jeff Brower wrote:
>>
>> All-
>>
>> Is there a CCS plug-in that allows a user-defined C program to access
>> DSP memory via the same JTAG connection as CCS?
>> The idea is that we can do something like this:
>>
>> -our program, operating as a CCS plug-in, reads the
>> .out file (it can understand COFF format) and
>> downloads code to memory
>>
>> -our program releases code to run (we're using C6472
>> booting in HPI mode)
>>
>> -at certain points, the DSP code stops and waits and
>> our program writes data to DSP mem that the DSP
>> code needs in order to continue
>>
>
> I'm a bit busy at the moment. Do you require CCS to be running - or do
> you just need to use its resources to access the DSP??

It would be preferable if we could keep CCS open but not connected to the target. For example, after making changes
and rebuilding the project we would then open a separate window to run the host program, which makes CCS DLL memory
access API calls. But if necessary CCS should not be open at all, we can use that, too.

> I will followup with more info this evening.

Thanks Mike.

-Jeff

>> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>>
>> -Jeff

_____________________________________
Jeff,

On 11/11/2010 4:20 PM, Jeff Brower wrote:
> Mike-
>
>> On 11/11/2010 9:38 AM, Jeff Brower wrote:
>>> All-
>>>
>>> Is there a CCS plug-in that allows a user-defined C program to access
>>> DSP memory via the same JTAG connection as CCS?
>>> The idea is that we can do something like this:
>>>
>>> -our program, operating as a CCS plug-in, reads the
>>> .out file (it can understand COFF format) and
>>> downloads code to memory
>>>
>>> -our program releases code to run (we're using C6472
>>> booting in HPI mode)
>>>
>>> -at certain points, the DSP code stops and waits and
>>> our program writes data to DSP mem that the DSP
>>> code needs in order to continue
>>>
>>
>> I'm a bit busy at the moment. Do you require CCS to be running - or do
>> you just need to use its resources to access the DSP??
> It would be preferable if we could keep CCS open but not connected to the target. For example, after making changes
> and rebuilding the project we would then open a separate window to run the host program, which makes CCS DLL memory
> access API calls. But if necessary CCS should not be open at all, we can use that, too.

It can definitely be done - I'm just not sure how many secret decoders
rings that you will need. :-)
I am currently CCS 4.x challenged without an install handy...

It sounds like 'Debug Server Scripting' [DSS] will do the job. The catch
is that the API is Java - Java and JavaScript are the two 'easy
connecting' options. Check it out and see what you think.

http://processors.wiki.ti.com/index.php?title=DSS

mikedunn
>> I will followup with more info this evening.
> Thanks Mike.
>
> -Jeff
>
>>> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>>>
>>> -Jeff

_____________________________________
Mike-

> On 11/11/2010 4:20 PM, Jeff Brower wrote:
>> Mike-
>>
>>> On 11/11/2010 9:38 AM, Jeff Brower wrote:
>>>> All-
>>>>
>>>> Is there a CCS plug-in that allows a user-defined C program to access
>>>> DSP memory via the same JTAG connection as CCS?
>>>> The idea is that we can do something like this:
>>>>
>>>> -our program, operating as a CCS plug-in, reads the
>>>> .out file (it can understand COFF format) and
>>>> downloads code to memory
>>>>
>>>> -our program releases code to run (we're using C6472
>>>> booting in HPI mode)
>>>>
>>>> -at certain points, the DSP code stops and waits and
>>>> our program writes data to DSP mem that the DSP
>>>> code needs in order to continue
>>>>
>>>
>>> I'm a bit busy at the moment. Do you require CCS to be running - or do
>>> you just need to use its resources to access the DSP??
>> It would be preferable if we could keep CCS open but not connected to the target. For example, after making changes
>> and rebuilding the project we would then open a separate window to run the host program, which makes CCS DLL memory
>> access API calls. But if necessary CCS should not be open at all, we can use that, too.
>
> It can definitely be done - I'm just not sure how many secret decoders
> rings that you will need. :-)
> I am currently CCS 4.x challenged without an install handy...
>
> It sounds like 'Debug Server Scripting' [DSS] will do the job. The catch
> is that the API is Java - Java and JavaScript are the two 'easy
> connecting' options. Check it out and see what you think.
>
> http://processors.wiki.ti.com/index.php?title=DSS

Thanks Mike, I will take a look. I wish there were some basic DLL calls... but with CCS, I know I can't be picky.

-Jeff

>>> I will followup with more info this evening.
>> Thanks Mike.
>>
>> -Jeff
>>
>>>> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>>>>
>>>> -Jeff
>

_____________________________________
Jeff,

On 11/13/2010 12:47 AM, Jeff Brower wrote:
> Mike-
>
>> On 11/11/2010 4:20 PM, Jeff Brower wrote:
>>> Mike-
>>>
>>>> On 11/11/2010 9:38 AM, Jeff Brower wrote:
>>>>> All-
>>>>>
>>>>> Is there a CCS plug-in that allows a user-defined C program to access
>>>>> DSP memory via the same JTAG connection as CCS?
>>>>> The idea is that we can do something like this:
>>>>>
>>>>> -our program, operating as a CCS plug-in, reads the
>>>>> .out file (it can understand COFF format) and
>>>>> downloads code to memory
>>>>>
>>>>> -our program releases code to run (we're using C6472
>>>>> booting in HPI mode)
>>>>>
>>>>> -at certain points, the DSP code stops and waits and
>>>>> our program writes data to DSP mem that the DSP
>>>>> code needs in order to continue
>>>>>
>>>>
>>>> I'm a bit busy at the moment. Do you require CCS to be running - or do
>>>> you just need to use its resources to access the DSP??
>>> It would be preferable if we could keep CCS open but not connected to the target. For example, after making changes
>>> and rebuilding the project we would then open a separate window to run the host program, which makes CCS DLL memory
>>> access API calls. But if necessary CCS should not be open at all, we can use that, too.
>>
>> It can definitely be done - I'm just not sure how many secret decoders
>> rings that you will need. :-)
>> I am currently CCS 4.x challenged without an install handy...
>>
>> It sounds like 'Debug Server Scripting' [DSS] will do the job. The catch
>> is that the API is Java - Java and JavaScript are the two 'easy
>> connecting' options. Check it out and see what you think.
>>
>> http://processors.wiki.ti.com/index.php?title=DSS
> Thanks Mike, I will take a look. I wish there were some basic DLL calls... but with CCS, I know I can't be picky.

Just to rub some salt into the wound... :-)
A not widely known piece of trivia - CCS 3.3 had a DLL or LIB + header
file in the scripting directory that you could call from C and was
probably just what you are looking for. I believe that the basic DLL or
LIB [I don't remember which] was SWIG'd to provide PERL support for CCS
Scripting in v3. If they took the same route for JAVA support [SWIGing
the DLL or LIB], it is possible that they might have provided them in
CCS 4. You might want to poke around the directory where DSS lives to
see. If you already have an investment in C++ code, you may want to look
at what it would take to do [or find] a 'C to Java' adapter [or
adapter-builder tool].

mikedunn
> -Jeff
>
>>>> I will followup with more info this evening.
>>> Thanks Mike.
>>>
>>> -Jeff
>>>
>>>>> We're using the EVM6472 board, CCS4, and SYSBIOS (BIOS6). Thanks.
>>>>>
>>>>> -Jeff

_____________________________________
Mike-

> On 11/13/2010 12:47 AM, Jeff Brower wrote:
>> Mike-
>>
>>> On 11/11/2010 4:20 PM, Jeff Brower wrote:
>>>> Mike-
>>>>
>>>>> On 11/11/2010 9:38 AM, Jeff Brower wrote:
>>>>>> All-
>>>>>>
>>>>>> Is there a CCS plug-in that allows a user-defined C program to access
>>>>>> DSP memory via the same JTAG connection as CCS?
>>>>>> The idea is that we can do something like this:
>>>>>>
>>>>>> -our program, operating as a CCS plug-in, reads the
>>>>>> .out file (it can understand COFF format) and
>>>>>> downloads code to memory
>>>>>>
>>>>>> -our program releases code to run (we're using C6472
>>>>>> booting in HPI mode)
>>>>>>
>>>>>> -at certain points, the DSP code stops and waits and
>>>>>> our program writes data to DSP mem that the DSP
>>>>>> code needs in order to continue
>>>>>>
>>>>>
>>>>> I'm a bit busy at the moment. Do you require CCS to be running - or do
>>>>> you just need to use its resources to access the DSP??
>>>> It would be preferable if we could keep CCS open but not connected to the target. For example, after making
>>>> changes
>>>> and rebuilding the project we would then open a separate window to run the host program, which makes CCS DLL
>>>> memory
>>>> access API calls. But if necessary CCS should not be open at all, we can use that, too.
>>>
>>> It can definitely be done - I'm just not sure how many secret decoders
>>> rings that you will need. :-)
>>> I am currently CCS 4.x challenged without an install handy...
>>>
>>> It sounds like 'Debug Server Scripting' [DSS] will do the job. The catch
>>> is that the API is Java - Java and JavaScript are the two 'easy
>>> connecting' options. Check it out and see what you think.
>>>
>>> http://processors.wiki.ti.com/index.php?title=DSS
>> Thanks Mike, I will take a look. I wish there were some basic DLL calls... but with CCS, I know I can't be picky.
>
> Just to rub some salt into the wound... :-)
> A not widely known piece of trivia - CCS 3.3 had a DLL or LIB + header
> file in the scripting directory that you could call from C and was
> probably just what you are looking for. I believe that the basic DLL or
> LIB [I don't remember which] was SWIG'd to provide PERL support for CCS
> Scripting in v3. If they took the same route for JAVA support [SWIGing
> the DLL or LIB], it is possible that they might have provided them in
> CCS 4. You might want to poke around the directory where DSS lives to
> see. If you already have an investment in C++ code, you may want to look
> at what it would take to do [or find] a 'C to Java' adapter [or
> adapter-builder tool].

We found rtdxlibc.dll, in which we can see function calls having to do with RTDX read and write. We also found
CCSLegacyScriptingJNI.dll, but no API calls that seem related to mem access.

Do either of these two sound familiar?

-Jeff

_____________________________________