by TheoVerelst
I'm working on programming a fairly recent Analog Devices Blackfin DSP (a BF533), using the VisualDSP development environment, which contains editors, C compiler, make file generator, assembler, linker, usb-based dsp board control, including single step and breakpoints, program and data loader and Flash program utility.
I took one of the supplied examples, which makes the AD converter read and feed through to the DA convertor, and added a sine (or other) wave which can be output by pressing one of the pushbuttons, by adding this:
// Initialize.c // short *pa; initialize() { pa = 0x00000000; for (i=0; i< 100; i++) { si = (short) (20000.0 * sin((double) i*(3.1415*2.0)/100.0)); si += (short) (10000.0 * sin((double) i*(3.1415*2.0*5.0)/100.0)); *(pa+i) = si; // printf("%d ",(int) *(pa+i)); } } // Process_data.c // void Process_Data(void) { int k; k = *pFIO_FLAG_D; if (k & SW7) iChannel0LeftOut = ((int) *(sdrams+abi))<<16; if (k & SW6) iChannel0RightOut = ((int) *(sdrams+abi))<<16; if (++abi >= 100) abi = 0; if (!(buttonsprev & SW4)) if (k & SW4) { printf("test 4\n"); } if (!(buttonsprev & SW5)) if (k & SW5) { printf("test 5\n"); } buttonsprev = k; }
I this all handy and well workable? Well, its very good to have a DE which works straignt after install, plug in the dsp with an usb cable, install driver (...) install the devenv, start it up, load an example, press built-and-load, hit 'run' and the dsp is humming. C libraries available on the dsp is cool, too, even though the target in this case must be under 20kB of memory.
More cool is that the dsp can be completely read out, I think over jtag and the propriatary usb interface, so all the registers, control bits (all other chips are memory mapped), and also the memories, and over symblic or direct addresses tables and graphs can be made of memory portions. Stdout can be used to print (slowly) a message on, and I've read evan a uxlinux is available for the dsp.
I've done a lot more already, including starting the port of a complicated and demanding (musical) string simulator to the self contained dsp board:
http://82.168.209.239/Diary/ldiary17.html#dspThis page also includes an example of the devenv.
An example application, a analog simulation sound synthesizer:
http://82.168.209.239/synth
Don't hesitate to comment, suggest, write your own experience, ask ...