DSP Software Development Techniques for Embedded and Real-Time Systems