Presentation is loading. Please wait.

Presentation is loading. Please wait.

DSP/BIOS for C6000/C5000. What is DSP/BIOS Real-time Environment –Thread execution model Threads, Mailboxes, Semaphores –Device independent I/O Logging,

Similar presentations


Presentation on theme: "DSP/BIOS for C6000/C5000. What is DSP/BIOS Real-time Environment –Thread execution model Threads, Mailboxes, Semaphores –Device independent I/O Logging,"— Presentation transcript:

1 DSP/BIOS for C6000/C5000

2 What is DSP/BIOS Real-time Environment –Thread execution model Threads, Mailboxes, Semaphores –Device independent I/O Logging, Streaming I/O RTDX (Real-time data exchange) Real-time Analysis –Debug facility ( with CCS) Device Configuration and Management –GUI based configuration in CCS

3 DSP/BIOS Modules Kernel ModuleDescription Hardware InterruptsInterface from hardware interrupts to DSP/BIOS kernel Software InterruptsLightweight pre-emptible threads that use program stack TasksIndependent threads of execution that can yield the processor Periodic FunctionsTime-triggered lightweight threads MailboxesSynchronized data exchange between tasks LockNestable binary semaphores SemaphoresCounting semaphores QueuesAtomic link lists ClockInterface to hardware timers StreamsStreaming I/O for tasks PipesStreaming I/O for software interrupts Memory ManagerLow overhead dynamic memory allocation

4 DSP/BIOS Configuration

5

6 DSP/BIOS Real-time Kernel

7 DSP/BIOS Task Synchronization

8 DSP/BIOS Real-time Analysis

9 DSP/BIOS Real-time Analysis Features Low overhead (formatting done in IDE) Real-time Analysis Operations C5000 CPU Cycles Time (usec) for 100 MHz 5410 C6000 CPU Cycles Time (usec) for 200 MHz 6201 Log operations LOG_event590.59330.165 LOG_printf590.59360.18 Statistics operations STS_set190.19140.07 STS_add420.42150.075 STS_delta480.48210.105

10 DSP/BIOS Execution Graph

11 DSP/BIOS Statistics View

12 DSP/BIOS Input/Output Capability

13 DSP/BIOS I/O Example AudioFilter( inputPipe, outputPipe ) { PIP_get(inputPipe); /* dequeue full frame */ PIP_alloc(outputPipe); /* dequeue empty frame */ copy algorithm; /* read/write data frames */ PIP_free(inputPipe); /* recycle input frame */ PIP_put(outputPipe); /* enqueue output frame */ return; /* wait for next frame pair */ }

14 DSP/BIOS Audio I/O Example Void audio(PIP_Obj *in, PIP_Obj *out) { Uns *src, *dst; Uns size; if(PIP_getReaderNumFrames(in) == 0 || PIP_getWriterNumFrames(out)==0){ error(); } /* get input data and allocate output buffer */ PIP_get(in); PIP_alloc(out); /* copy input data to output buffer */ src = PIP_getReaderAddr(in); dst = PIP_getWriterAddr(out); size = PIP_getReaderSize(in); PIP_setWriterSize(out,size); for (; size > 0; size++) { *dst++ = *src++; } /* output copied data and free input buffer */ PIP_put(out); PIP_free(in); }

15 CSL and Peripheral Configuration

16 Peripheral Configuration using IDE

17 System Configuration Allows detailed specification of target –Memory: Data and Code location Generates peripheral initialization code –Interrupts, Timers, McBSP, DMA etc. Generates linker configuration file (.cmd)

18 Conclusions Royalty-free real-time kernel for production use Allows for rapid development of product from concept Can be integrated with another real-time OS Small footprint (can be as small as 1K words) –Modules used are controlled by the user Allows for on-the-fly debug/analysis in the field Available with C6000 and C5000 processors


Download ppt "DSP/BIOS for C6000/C5000. What is DSP/BIOS Real-time Environment –Thread execution model Threads, Mailboxes, Semaphores –Device independent I/O Logging,"

Similar presentations


Ads by Google