Hi Andrew
To understand our latest problem,I better tell you what we are doing ! Our project is to port and optimize an MP3 decoder to the cirrus EP7209. Now you may think,why that, this has been done a long time ago ! You're right, but our prof. didn't want as to order a chip/board from a different manufacturer because he (we) knew that it was the best one for this job :) For the MP3 decoding we chose the "MAD Decoder", a high Q, well structured & optimized fixed-point open source-decoder: http://www.mars.org/home/rob/proj/mpeg/ I installed redhat's ecos (RTOS which also supports the EDB72xx family) and compiled the whole arm-elf toolchain (crosscompiler: cygwin/win9x -> arm). After removing some unneeded ASYNC-features from libmad/decoder.c, the libmad library (containing only MAD's MP3-decoder routines, no player) built successfully for arm. Now we still need a minimal player which reads the MP3-Stream from the EDB7209's NAND-Flash memory and sends the decoded PCM samples to the DA.
That's where the problem occurs: We are not able to include dai.c (containing the DA-wandler interface) from lib7209, because it depends on isr.c (interrupt routines) which does NOT compile with arm-elf-gcc. Problems start at line 17 with a parse error at __swi(0x123456) which has someting to do with ANGEL. I do not understand much there. Couldn't find that __swi in other source files either. Also the asm-file isrshell.S, was completely misinterpreted by gnu-as.
I hope there's still a possibility to build a simple player with DA output using gcc/eCos.
Thank you for you help
Laurent.