Hi All,

FYI, I got my answer from TI yesterday:
----------------------------------------------------------------------------------------------------------------------------------------------------------
Andy,



 


Thank
you for the inquiry to TI. The Service Request #x-xxxxxxxxxx has been
assigned to your inquiry. Please refer to this number for any other
questions regarding this inquiry.


 


After
checking around I am fairly certain that we have no audio examples
available that run solely on the DSP core. Part of the reason for this
is that the design around DaVinci was to put all of the I/O onto the
ARM core to offload it from the DSP. As you can see this is the direct
opposite approach you were trying to take. 

 


With
most of our other DSP devices we included some sort of Chip Support
Library (CSL) which was an API used to control the peripherals. The
DM6446 lacks this as once again everything is controlled in the Linux
world through the Linux drivers. 

 


I
did verify that what you are trying to do is physically possible (the
DSP can access the ASP without going through the ARM) but unfortunately
it looks like you would be on your own as far as creating a driver to
do so. I apologize for the inconvenience, but hopefully this approach
will still at least work out for you. I hope this helps, but please let
me know if I can be of further assistance.


 


Best Regards,

Tim Harron

----------------------------------------------------------------------------------------------------------------------------------------------------------

I guess for now, I will have to do audio processing on the ARM side and only 
offload encoding/decoding responsibility to the DSP side.

Regards,
Andy

----- Original Message ----
From: Andy Ngo <[EMAIL PROTECTED]>
To: "Ring, Chris" <[EMAIL PROTECTED]>; 
[email protected]
Sent: Wednesday, January 3, 2007 1:35:11 PM
Subject: Re: Sample AIC33 loopback test

Do you or anyone on the list know if there are code examples on the DVSDK that 
show you how to do audio I/O on the DSP side?  I will receive the DVSDK 
development kit next week.  I really need to offload audio I/O processing to 
the DSP side to reserve the ARM CPU for a lot of real-time critical processing.

Thanks,
Andy

----- Original Message ----
From: "Ring, Chris" <[EMAIL PROTECTED]>
To: Andy Ngo <[EMAIL PROTECTED]>
Sent: Tuesday, January 2, 2007 12:51:43 PM
Subject: RE: Sample AIC33 loopback test


Privately, I don't know anything about the performance of the Linux
drivers TI/MontaVista provides - hopefully someone else on the list will
respond.

Chris 

> -----Original Message-----
> From: Andy Ngo [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, January 02, 2007 10:29 AM
> To: Ring, Chris; [email protected]
> Subject: Re: Sample AIC33 loopback test
> 
> Hi Chris,
> 
> Thank you for your response; at least now I know why not many 
> people are
> trying to do I/O on the DSP side.  Basically, the ARM 
> application is an IP
> application that sends and receives the encoded data via IP 
> from another
> ARM application (on another DaVinci board); so basically the 
> ARM application
> just acts like a routing and transporting agent (multicast) 
> of encoded data to ARM
> applications and I want the DSP side to do the bulk of the 
> work (sampling and
> encoding, decoding and playback).  The reason so is that for 
> the project I'm
> working on, I need to reserve the ARM CPU for real time 
> critical processing and
> I don't want to waste any time on it doing I/O (sampling and 
> playback).  How
> efficient is the Linux OSS driver on the ARM side?  Can it do 
> full duplex?
> I'm worried that having I/O done on the ARM side will slow it 
> down while the
> DSP side is not doing much (the ARM application will be doing 
> a lot of time
> critical processing in our final custom hardware).  Also, is 
> there an ALSA
> implementation of the sound driver for Linux?  Your advice is deeply
> appreciated.
> 
> Regards,
> Andy
> 
> 
> ----- Original Message ----
> From: "Ring, Chris" <[EMAIL PROTECTED]>
> To: Andy Ngo <[EMAIL PROTECTED]>; 
> [email protected]
> Sent: Tuesday, January 2, 2007 7:16:31 AM
> Subject: RE: Sample AIC33 loopback test
> 
> Briefly, one reason you're probably not seeing to much 
> response to this
> is that, for support reasons, TI is encouraging I/O take place via
> ARM-side device drivers.  This is to avoid things like ARM/DSP
> peripheral ownership collisions - e.g. what if someone reads from
> /dev/dsp on the ARM at the same time your DSP-side driver is reading
> from it?  (I realize you can constrain your system to avoid this)
> 
> Codec Engine itself doesn't support I/O as a side effect of 
> calling its
> "VISA" API's.  That is, when an ARM-side application calls, 
> for example,
> AUDENC_process(), it's a blocking call that returns the encoded data
> back to the ARM-side app.  No I/O occurs within AUDENC_process().
> There's nothing like a "AUDENC_readAndEncodeNextBlockOfData()" API,
> which your diagram may be suggesting.
> 
> If you _really_ need to do I/O on the DSP side, you might want to
> consider using your own DSP Link-based framework to move data from the
> ARM->DSP or vise-versa.  Note that you can still use Codec Engine APIs
> _on the DSP-side_ to invoke "local" DSP-side codecs.  This is not the
> traditional use case exemplified in the demos, but can be supported by
> the software in the DVEVM/DVSDK.  The data flow might look 
> like this for
> a "player":
> 
>    1. ARM-side app reads encoded data (from disk?)
>    2. ARM-side app uses Link APIs (like MSGQ_put) to send 
> data from ARM
> to DSP.
>    3. DSP-side app uses Link APIs (like MSGQ_get) to receive data from
> ARM.
>    4. DSP-side app uses CE APIs (like AUDDEC_process) on a locally
> configured codec to decode data.
>    5. DSP-side app plays decoded data out using a DSP-side device
> driver.
> 
> This will be more work, and I don't know of any examples of this, but
> it's possible.  I'd encourage you revisit your requirement that I/O
> occur on the DSP-side - if it can take place on the ARM, I 
> think you're
> well enabled.
> 
> A few direct replies also inline'd below...
> 
> Chris  
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED]
> ] On Behalf Of Andy Ngo
> > Sent: Thursday, December 21, 2006 5:53 PM
> > To: [email protected]
> > Subject: Re: Sample AIC33 loopback test
> > 
> > In trying to figure out the topic I posted below, I searched 
> > through the DaVinci audio driver (in
> > /opt/mv_pro_4.0/montavista/pro/devkit/lsp/ti-davinci/sound/oss
> ) and noticed that it doesn't use
> > any CE API.  Does this mean all the audio processing is done 
> > on the ARM side?
> 
> Audio I/O is done on the ARM (e.g. this OSS driver).  An app
> acquires/plays raw data using these drivers.
> 
> Audio processing is typically done on the DSP, when the same 
> application
> uses the CE APIs to encode or decode a buffer of data.
> 
> >  The project
> > I'm working on requires me to offload all the audio 
> > processing (reading samples in and writing
> > samples out) to the DSP side; the ARM side is reserved for a 
> > very critical real-time application
> > so I need to do all audio processing on the DSP side.  Does 
> > this mean I can't use the Linux
> > driver for my requirements?
> 
> Where does the encoded data live?  On an ARM-side disk drive 
> or device?
> If so, you'll have to do at least half the I/O (reading/writing the
> encoded data to/from disk) on the ARM.
> 
> > How do the demo programs do it; 
> > for example for the g711
> > encoding, does it use the ARM side to sample the audio (via 
> > the audio driver), send it via CE 
> > API to the DSP side to encode the data into g711 and the 
> > resulting encoded file is sent back 
> > to the ARM side and saved on the filesystem?  If that's the 
> > case, for g711 decoding, the
> > ARM side gvies the encoded data to the DSP side via CE API, 
> > which decodes it and gives
> > it back the ARM side to play the decoded audio via the audio 
> > driver; am I correct?
> 
> Exactly.
> 
> > For my
> > project, the ARM side is only used to exchange encoded data 
> > with the DSP side, which does
> > all the process (sample and encode, decode and playback).  
> > Any advice/comment is
> > appreciated!
> > 
> > Regards,
> > Andy
> > 
> > ----- Original Message ----
> > From: Andy Ngo <[EMAIL PROTECTED]>
> > To: [email protected]
> > Sent: Thursday, December 21, 2006 2:49:10 PM
> > Subject: Sample AIC33 loopback test
> > 
> > 
> > Hi, 
> > 
> > Does anyone have or know if there's a sample DSP loopback 
> > program that samples the AIC33 mic input (like say 8Khz, 
> mono, 16-bit)
> > and then plays it through the AIC33 headphone output? I know 
> > I can do this on the ARM side by accessing the /dev/dsp 
> device, but I
> > need to access the mic input and headphone output directly 
> > from the DSP side. Basically, I want to create a DSP codec 
> > that reads from
> > AIC33 mic input and sends the data to the ARM side (via CE 
> > API) and vice versa: gets data from the ARM side and writes 
> > it to the AIC33
> > headphone output. I looked at the encode/decode examples in 
> > the DVSDK but still don't know how to access ore make use of the
> > AIC33.  Sorry, I'm very new to the TI DSP development 
> > environment and don't know much; I spent the last week just 
> > learning about
> > xDAIS and DSP/BIOS by going through the CCS 3.2 tutorial.  
> > Your help is much appreciated.  Thanks.
> > 
> > 
> > Basic flow diagram: 
> > 
> > DSP side 
> > 
> > AIC33                          
> > headphone output  <------- DSP codec <--------- CE API 
> > <--------- simple ARM application
> > 
> > AIC33                          
> > microphone input  -------> DSP codec ---------> CE API 
> > ----------> simple ARM application
> > 
> > 
> > Regards,
> > Andy Ngo
> > _______________________________________________
> > Davinci-linux-open-source mailing list
> > [email protected]
> > 
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> > _______________________________________________
> > Davinci-linux-open-source mailing list
> > [email protected]
> > 
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> > 
> 
> 
> 
>
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source




_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to