Hi
I would like to learn about DSP (Digital Signal Processor) programming.
Is it different from assembly, or microcontroler programming?
do you have any source to learn it?
thanks
Digital Signal Processors are special-purpose processors designed for use in "DIGITAL SIGNAL PROCESSING" applications. Most DSProcessing tasks are maths intensive requiring a lot of multiplications and additions (both floating point and fixed point), thus a general purpose processor which normally executes a single multiplication in more than one machine cycle is usually not good enough to do the job (or would be very costly - imagine having a Pentium 4 running at 3 GHz inside your mobile phone) - on the contrary the DSP can have a number of multipliers and adders in its data path. Thus even with a slower machine cycle, the DSP can perform 3-5 multiplications in one machine cycle. Thus they are much cheaper ($3 per processor) for use in DSProcessing applications. However they are not really that useful in applications other than Digital Signal Processing.
Digital Signal processing tasks include digital filters, digital frequecy up/down converters; your mobile phone also has a DSP in it, so that it can process the information sent via GSM packets. There is LOTS of pretty tough maths involved, so if you're not an Electrical/Computer graduating student, probably it is of no use to u. The smallest book on DSProcessing you can get is SIGNALS AND SYSTEMS MADE RIDICULOSLY SIMPLE (less than 150 pages)
DSPs can be programmed using C/C++ or Assembly. One good book is "DSP APPLICATIONS USING C AND TMS320C6x DSK - Rulph Chassaing" You can get a free CD with a C compiler and Simulator for this processor from www.ti.com
The name of the software is CCS (Code Composer Studio). It is the tool that is used with Texas Instrument's DSPs
I suggest that you should go to www.analog.com, analog have well programable and very usefull DSP-s, moreover there's lots of sources, userguides and documents from newbies to experts.
Also consider that DSP is a very wide field, you have to define in which field you want to work, i.e. image processing, audio processing, communications, etc etc