1 / 20

VDK Module Outline

VDK Module Outline. What is the VDK? Why Do We Need a Kernel? VDK Concepts and Features How to Create a Project with VDK support Debug Capabilities Summary/Conclusion. The Visual DSP Kernel is a pre-emptive kernel designed to run efficiently on Analog Devices family processors

mote
Download Presentation

VDK Module Outline

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VDK Module Outline • What is the VDK? • Why Do We Need a Kernel? • VDK Concepts and Features • How to Create a Project with VDK support • Debug Capabilities • Summary/Conclusion

  2. The Visual DSP Kernel is a pre-emptive kernel designed to run efficiently on Analog Devices family processors Included with VisualDSP++ development tools No NRE or royalties associated with VDK What is the VDK?

  3. A simple application that does only one task may not need a kernel i.e.) Blind processing of a super loop If you have more than one task, an application could be structured in a couple of ways Respond to an event Events change execution state Assign tasks a given priority and execute high priority tasks more often These approaches get difficult when You need to preserve the state of a task Low priority tasks may steal processing time longer than anticipated Why do we need a kernel?

  4. Automatic preservation of task/system state Assign a scheduling method to tasks Provides synchronization abilities Frees architect from having to design ‘control code’ What does a kernel give you?

  5. Application code executes in one of two domains 1 Thread Domain 2 Interrupt Domain Applications and algorithms execute in the thread domain under control of the VDK Kernel Interrupts execute outside this domain and priority is implemented in hardware Thread execution is halted while in the interrupt domain Device drivers are a bridge between the two domains VDK Domain Concepts

  6. Threads A segment of code and it’s related variables/data Each thread has its own stack and executes in supervisor mode Interrupts Priority based in hardware Strongly recommend writing in assembly but C/C++ is supported Signals Semaphores, Events, Device Flags, and Messages Used to synchronize activity Device Drivers Threads do not communicate with hardware directly Hide the details of the hardware More VDK Concepts

  7. Domain Model • Thread Domain • Under control of scheduler • Device Driver • Interface bridge between Thread and ISR domains • ISR Domain • Priority set in hardware using event controller configuration registers • Executes outside of schedulers control

  8. Thread types defined at project creation Each thread has a unique ThreadID Each thread has its own stack Programmers responsibility not to overflow The size of heap for stack and thread data can be specified Threads

  9. Signals are used to synchronize thread activity A semaphore is a token that threads can post or acquire i.e.) relay race – second runner can not run until it has the baton Semaphores can be periodic allows given tasks to be scheduled on a fixed interval Semaphores

  10. Events are used to synchronize thread activity to the system Used to convey various system states to threads Similar to semaphores but can convey several combined system states at once Events and Event Bits

  11. Inter-thread communication Transfer information between threads i.e.) Thread A sends some data for processing to Thread B Application views single and multi- processor systems the same Messages

  12. Execute using hardware priorities Spend as little time as necessary and only do the minimal processing required in ISR Any registers used by an ISR must be saved and restored ISRs can be written in assembly, C or C++ C/C++ not recommended but included for flexibility Interrupts

  13. Device drivers bridge the gap between the thread and interrupt domains How threads communicate with hardware Provides a black box view to the application A device driver is a single function with multiple entry points Initialization Activation Open Close SyncRead SyncWrite IOCtl Device Drivers

  14. VDK support is added from the project wizard in Visual DSP++ Visual DSP++ creates all the necessary project files and skeleton code Creating a Project using VDK

  15. Auto Generated Frame Work • Automatically Added • Input.cpp • Output.cpp • Relay.cpp • Volcalc.cpp • VolRamp.cpp • Kerenel Files folder

  16. The Kernel Tab System Control Thread and Kernel Configuration Blackfin Threads

  17. Integrated in to Visual DSP++ VDK Status window State of each object, active thread, resource management, etc VDK History window Graphical display of system events Useful when used with Trigger points Debug Assistance

  18. VDK Status

  19. VDK History Window

  20. Provides a comprehensive set of services reducing the need to create your own control code Allows for rapid prototype of system Easy to move applications/algorithms across ADI processor families Well integrated with the IDDE for efficient editing and debug VDK Summary

More Related