Introduction to VisualDSP++
VDK (Real Time Kernel)

VDK is Analog Devices' real-time multi-threading tool. It allows users to set up multiple "threads" that the processor can switch between. This allows multiple different things to be running at the same time. VDK keeps track of all these threads, including their priorities, and allows them processor time based on their priority and whether or not they are ready to run. Semaphores can be used to control the threads as well. Threads can be told to wait for semaphores to be posted before running. This allows greater control of the threads.

Here are some lecture notes given to the Winter 2004 ENEL515 DSP course at the University of Calgary. These lecture notes deal with a simple VDK assignment.

Introduction to multi-threading
Single value processing with multi-threading
Attempt at Batch Threading

There is also a student project that was done in the above class dealing with VDK. Follow this link to download the powerpoint slides for the project.

Click here to download a zip file with an example VDK project file and all required files. This project can be built and run to see an example of VDK. It is built using instructions in the preceeding powerpoint slides (not the student project) and was used as a lab in the same class as the above student project.

In order to see the example of multi-threading, build and run the project. Halt it anytime after starting (it does not have a built-in endpoint). Then open the VDK history window (View - VDK Windows - History in VisualDSP++) and zoom in on any section of the window. There are five threads. The lower two (initialize and idle) and not used in this project. You can see the other three threads switching between each other in a certain order. For more information about this, read the powerpoint slides on this page.


Follow this Link to open a new window to the webpage for a Realtime Systems course
that uses VDK with the Blackfin (the last lab assignments).

This page is common for Analog Devices SHARC, BlackFIN and TigerSHARC processors


Last Modified June 29, 2004 by Alan Martin
at the University of Calgary in Calgary, Alberta, Canada
Contact ECE-ADI@enel.ucalgary.ca