VDK Concepts and Features How to Create a Project with VDK support

Slides:



Advertisements
Similar presentations
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Advertisements

More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
1 Process Description and Control Chapter 3. 2 Process Management—Fundamental task of an OS The OS is responsible for: Allocation of resources to processes.
Chapter 13 Embedded Systems
System Calls 1.
Interrupts. What Are Interrupts? Interrupts alter a program’s flow of control  Behavior is similar to a procedure call »Some significant differences.
The Amiga Operating System: Past and Present Aaron Hensley Kayla Zinn Brad Campbell Gregory Mathurin Josh Benson.
Support Across The Board ™ Visual DSP Kernel (VDK)
RTX - 51 Objectives  Resources needed  Architecture  Components of RTX-51 - Task - Memory pools - Mail box - Signals.
Multi-threaded projects Services and Drivers Alternate ways of doing Labs 1, 2, 3 and 4.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Chapter 10 Interrupts. Basic Concepts in Interrupts  An interrupt is a communication process set up in a microprocessor or microcontroller in which:
Introduction to Operating Systems Concepts
Operating System Overview
Real-time Software Design
Computer System Overview
Processes and threads.
Advanced Operating Systems CIS 720
CS501 Advanced Computer Architecture
Process Management Process Concept Why only the global variables?
CS 6560: Operating Systems Design
Lesson Objectives Aims Key Words Interrupt, Buffer, Priority, Stack
Operating Systems (CS 340 D)
Mobile Operating System
Computer Architecture
REAL TIME OPERATING SYSTEM
CS101 Introduction to Computing Lecture 19 Programming Languages
Chapter 4 Threads.
VDK Concepts and Features How to Create a Project with VDK support
Introduction of microprocessor
Intro to Processes CSSE 332 Operating Systems
Real-time Software Design
Chapter 8 Input/Output I/O basics Keyboard input Monitor output
Operating Systems (CS 340 D)
8259 Chip The Intel 8259 is a family of Programmable Interrupt Controllers (PIC) designed and developed for use with the Intel 8085 and Intel 8086 microprocessors.
OPERATING SYSTEM OVERVIEW
Introduction to cosynthesis Rabi Mahapatra CSCE617
Microcomputer Systems 1
Computer System Overview
Chapter 2: The Linux System Part 3
Process Description and Control
Basic Concepts Protection: Security:
BIC 10503: COMPUTER ARCHITECTURE
Lecture Topics: 11/1 General Operating System Concepts Processes
Process Description and Control
Architectural Support for OS
Threads and Concurrency
Threads Chapter 4.
Single Value Processing Multi-Threaded Process
Multiprocessor and Real-Time Scheduling
Multithreaded Programming
Process Description and Control
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
Interrupt handling Explain how interrupts are used to obtain processor time and how processing of interrupted jobs may later be resumed, (typical.
Computer System Overview
Lab. 2 Overview Move the tasks you developed in Lab. 1 into the more controllable TTCOS operating system.
Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads
CS703 - Advanced Operating Systems
Computer System Overview
Outline Operating System Organization Operating System Examples
Architectural Support for OS
VDK Concepts and Features How to Create a Project with VDK support
System Calls System calls are the user API to the OS
Chapter 3: Process Management
Threads CSE 2431: Introduction to Operating Systems
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

VDK Concepts and Features How to Create a Project with VDK support 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

Included with VisualDSP++ development tools What is the VDK? 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

A simple application that does only one task may not need a kernel Why do we need a kernel? 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

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

Application code executes in one of two domains VDK Domain Concepts 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

More VDK Concepts Signals 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

Thread types defined at project creation Threads 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

Signals are used to synchronize thread activity Semaphores 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

Events are used to synchronize thread activity to the system Events and Event Bits 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

Inter-thread communication Messages 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

Execute using hardware priorities Interrupts 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

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

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

The System Node System Control Thread Configuration Blackfin Threads

Debug Assistance 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

Allows for rapid prototype of system VDK Summary 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