DSPRelated.com
Forums

About support on DSP/BIOS & better access of I/O space memory.

Started by chiragshah October 9, 2006
Hi. . All. 
I am new to DSP. our seniors have desided TMS320LF2407 platform and we are
already having starter kit from TI. now i want to know that is it possible
to have an advantage of DSP/BIOS for this DSP? because in CCS it is
showing DSP/BIOS option.(tools/OS selector/DSP BIOS).... But while
including i came to know that i dont have BIOS/kernel dll in my c:/ti/bin.
can i get it and start to develope an application on DSP/BIOS?

Another question ....

Right now i am dealing with different memory spaces of DSP. My main
question is that i've seen ioport keyword in to code composer to access IO
soace. but it is dealing with actual physical address. Is it possible to
transfer consecutive bytes to I/O port(peripheral IC)device by just giving
Starting Address & No. of bytes to be transfered?Let me give an example.
.*********** C code *********** ioport unsigned char
a8000;for(i=0;i<10;i++)(a+i) = i;//I want to achieve this. . Is it
possible OR i've to access with an individual memory Address like..
a8000,b8001,c8002..so on. I've refered datasheet for instruction SET . In
that they have mentioned that with the help of OUT instruction u can do
consicutive transfers but not in UOUT.might be a silly question for you
but for me it is urgent & important. Please advice. Thanks in advance... 

Regards,
Chirag Shah 



chiragshah wrote:
> Hi. . All. > I am new to DSP. our seniors have desided TMS320LF2407 platform and we are > already having starter kit from TI. now i want to know that is it possible > to have an advantage of DSP/BIOS for this DSP? because in CCS it is > showing DSP/BIOS option.(tools/OS selector/DSP BIOS).... But while > including i came to know that i dont have BIOS/kernel dll in my c:/ti/bin. > can i get it and start to develope an application on DSP/BIOS? > > Another question .... > > Right now i am dealing with different memory spaces of DSP. My main > question is that i've seen ioport keyword in to code composer to access IO > soace. but it is dealing with actual physical address. Is it possible to > transfer consecutive bytes to I/O port(peripheral IC)device by just giving > Starting Address & No. of bytes to be transfered?Let me give an example. > .*********** C code *********** ioport unsigned char > a8000;for(i=0;i<10;i++)(a+i) = i;//I want to achieve this. . Is it > possible OR i've to access with an individual memory Address like.. > a8000,b8001,c8002..so on. I've refered datasheet for instruction SET . In > that they have mentioned that with the help of OUT instruction u can do > consicutive transfers but not in UOUT.might be a silly question for you > but for me it is urgent & important. Please advice. Thanks in advance... > > Regards, > Chirag Shah
You should be able to use the DSP/BIOS for your applications. It should have been installed as part of your CCS installation. If not, you may need to download the latest DSP/BIOS kernel from TI. This may be prudent anyway since it gets updated periodically. Regarding the use of IO space, the F2407 does not support the external interface, such as is on the F2812. Consequently, all of the IO operations need to be performed using IO instructions, which are distinct from memory access. Hence it is not possible to simply write values to memory and have them appear as IO. You may, however, write a wrapper routine that would provide similarity to this type of interface if so desired.
chiragshah wrote:
> Hi. . All. > I am new to DSP. our seniors have desided TMS320LF2407 platform and we are > already having starter kit from TI. now i want to know that is it possible > to have an advantage of DSP/BIOS for this DSP? because in CCS it is > showing DSP/BIOS option.(tools/OS selector/DSP BIOS).... But while > including i came to know that i dont have BIOS/kernel dll in my c:/ti/bin. > can i get it and start to develope an application on DSP/BIOS? > > Another question .... > > Right now i am dealing with different memory spaces of DSP. My main > question is that i've seen ioport keyword in to code composer to access IO > soace. but it is dealing with actual physical address. Is it possible to > transfer consecutive bytes to I/O port(peripheral IC)device by just giving > Starting Address & No. of bytes to be transfered?Let me give an example. > .*********** C code *********** ioport unsigned char > a8000;for(i=0;i<10;i++)(a+i) = i;//I want to achieve this. . Is it > possible OR i've to access with an individual memory Address like.. > a8000,b8001,c8002..so on. I've refered datasheet for instruction SET . In > that they have mentioned that with the help of OUT instruction u can do > consicutive transfers but not in UOUT.might be a silly question for you > but for me it is urgent & important. Please advice. Thanks in advance... > > Regards, > Chirag Shah
The 24xx familiy does not support DSP/BIOS. Regarding external peripheral on IO memory space. Since IN and OUT instructions take only absolute address your only option is to write self modyfying code and make it callable from C. A cleaner solution is to connect external peripheral to data space. If you have evaluation module, the only option is to reprogram one of the PAL circuits on board, since all of avalabile data space is mapped to RAM on evaluation module. I don't know how is with data space mapping on eZdsp odr any other DSK. Regards, Mitja
Korenje wrote:
> chiragshah wrote: > > Hi. . All. > > I am new to DSP. our seniors have desided TMS320LF2407 platform and we are > > already having starter kit from TI. now i want to know that is it possible > > to have an advantage of DSP/BIOS for this DSP? because in CCS it is > > showing DSP/BIOS option.(tools/OS selector/DSP BIOS).... > > The 24xx familiy does not support DSP/BIOS.
Oops.... I was thinking he said F2807, not F2407. Sorry for the confusion
Hi All. Further moving to discussion on I/O space access. Can i make a
wrapper routine in assembly for consecutive byte transfers?
for(i=0;i<5;i++)
{
        asm(" out _ptr1,_ptr");
        ptr1++;
	ptr++;
}
where ptr & ptr1 both are globle pointers. I think this will be a very
interesting discussion.

>Right now i am dealing with different memory spaces of DSP. My main >question is that i've seen ioport keyword in to code composer to access
IO
>soace. but it is dealing with actual physical address. Is it possible to >transfer consecutive bytes to I/O port(peripheral IC)device by just
giving
>Starting Address & No. of bytes to be transfered?Let me give an example. >.*********** C code *********** ioport unsigned char >a8000;for(i=0;i<10;i++)(a+i) = i;//I want to achieve this. . Is it >possible OR i've to access with an individual memory Address like.. >a8000,b8001,c8002..so on. I've refered datasheet for instruction SET .
In
>that they have mentioned that with the help of OUT instruction u can do >consicutive transfers but not in UOUT.might be a silly question for you >but for me it is urgent & important. Please advice. Thanks in advance...
> >Regards, >Chirag Shah > > >
chiragshah wrote:
> Hi All. Further moving to discussion on I/O space access. Can i make a > wrapper routine in assembly for consecutive byte transfers? > for(i=0;i<5;i++) > { > asm(" out _ptr1,_ptr"); > ptr1++; > ptr++; > } > where ptr & ptr1 both are globle pointers. I think this will be a very > interesting discussion. >
No. Take a look at OUT instruction description. The address on I/O space can be only hardcoded into instruction e.g OUT #0FFEFh,var1 transferes content of var1 to address 0xFFEF in I/O space. The address 0xFFEF is the second word in two word instruction OUT and is in program memory space. I can see two approaches to your problem. 1. You put this function in RAM and change the second word (address) with TBLW instruction 2. You can put this function into SARAM block, map it into data (0x0800-0x0FFF) and program (0x8000-0x8FFF) memory space. Now you can access program memory space via data memory space. With clever labeling and some simple computation you can find out which address in data memory space correspond to the second word of OUT instruction. I haven't tried any of this methods, since it is much better (in terms of speed) to map your peripherals to data memory space (I have done this). I belive this is especially true if your are programing in C where you can completely avoid calling functions. I hope I was clear enough. Mitja