On 08/29/2016 02:07 AM, Stefan Stenzel wrote:
I strongly recommend Paul’s Teensy as a start for any new DSP development,
especially as a floating point version of this is already planned.
The Cortex-M4 has many special DSP instructions, and it makes much more sense
to program in C/C++ and focus on optimizations in small doses of (inline)
assembly than to hand code everything for a DSP chip that is soon going to be
extinct anyway. ARM based Chips are not so endangered species and come in many
flavours from lots of suppliers, so coding for these in a portable way has many
advantages.
Recently I used a 72 MHz STM32F303 Cortex-M4, and I was really impressed on how
much that chip performs DSP-wise.
It runs a fully polyphonic oscillator bank with phaser/reverb/3-band eq/chorus
and a tiny synthesizer section flawlessly.
I've had good luck doing DSP on the STM32F3, F4 and F7 parts. They
aren't as efficient for FIR structures as a true DSP due to the lack of
dedicated X/Y buses and parallel address calculations, but on IIR
filters which don't benefit from convolution acceleration they're pretty
good.
Hardware floating point performance in the Cortex M4F and M7 is pretty
decent - the instructions are somewhat limited to basic "4-banger"
operations, but there is a square-root. Most operations are single cycle
except for divide and sqrt, so converting from fixed to float doesn't
cause much of a performance hit. IIRs done with floats are much more
controllable, but most DSP works fine in fixed point when you've got 32
bits to play with.
I haven't spent a lot of time with assembly optimization. The compiler
does pretty well in -O2 or -Os modes and for the simple cases I've tried
I haven't seen enough improvement to make it worthwhile. Perhaps I
haven't tried the right cases, or I'm not working hard enough, but the
ROI wasn't there for my tests.
Eric
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp