I am currently using a fixed point DSP (TMS320VC5501) with a TI audio codec (TLV320AIC3204) and I need to move to floating point processing. I am considering members of the ADSP-213xx family because my previous experience with the c6x architecture (over 10 years ago) was not a pleasant one. I am wondering about a few issues that have me steering clear of c67x family processors (eg. c6748) - which I should at least resolve in the name of due diligence:
1. I do not have time (at least initially) to re-write my C and C++ code to be more suitable for the c67x compiler. Instead, I prefer to make as much use as possible of C-callable assembly routines, most of which I found in the c55x DSP library. Besides, this approach should easily beat compiler performance. Can anyone comment on whether the c67x DSP library is as complete as that for the c55x, and how concerned I should be about bugs?
2. I have great concern about the potential headaches of handing over memory management to a caching algorithm. Currently my code runs entirely from internal DARAM on the c5501. If I were to try using external SDRAM with the c5501, then it appears that I could finesse a way to freeze externally stored code in the cache after ensuring that all the needed code was cache-resident, but I have not bothered trying this since DARAM was sufficient. My question regards my concern for the multilevel caching found in the c67x architecture. If my code and data requirements are minimal, can I build my application such that code and data can remain resident in L2 cache?
3. Since I have no interest in or need for an RTOS, should I have any concerns about using a simple looping kernel in my "main" C routine, where each loop iteration is kicked off when a full buffer of ADC data (collected by an audio rx ISR) is available?
4. Is there a good document detailing the code security options that are available?
5. Would my interfacing with the 3204 be more complicated using the c67x? This does not appear to be the case with what I have seen so far. Currently, with the c5501 we have McBSP0 talking to a SPI flash for bootstrap, McBSP1 interfaced for Tx and Rx with the 3204, and I2C for controlling the 3204. This all looks feasible with the c6748. Is DMA recommended versus Tx and Rx ISRs as we currently use on the c5501 (at 192kHz)?
Thanks for any advice,
Vic