Presentation is loading. Please wait.

Presentation is loading. Please wait.

System Software Design Engineer: Mac Gainor Western Washington University.

Similar presentations


Presentation on theme: "System Software Design Engineer: Mac Gainor Western Washington University."— Presentation transcript:

1 System Software Design Engineer: Mac Gainor Western Washington University

2  MCU Specifications  Memory Requirements  Kernel Choice  Kernel Design  Overall System Design

3  TMS320C6713 DSP ◦ Dual Fixed/Floating Point Multipliers ◦ Two Multichannel Audio Serial Ports (McASP) ◦ Two General-Purpose Timers ◦ 15 General-Purpose I/O Pins  Bus Frequency: 225MHz

4  262k Internal RAM Available ◦ Estimated Program Requirement: 10kBytes  256k Flash ROM Available ◦ Estimated Program Requirement: 25kBytes

5  DSP/BIOS ◦ Scalable Real-Time Multi-Tasking Kernel ◦ Designed for C6000 Series DSP ◦ Real-Time Analysis Tools ◦ Semaphore and Mutual Exclusion Implementation

6  Prioritized Kernel Events 1.HWI 2.SWI 3.Tasks 4.Idle  Kernel Tick Time: 32uS

7  McBSP Rec Interrupt (Generate Semaphore) ◦ Frequency: 44kHz ◦ Period: 22.7uS ◦ Execution Time: 0.1uS(max)  ADC Receive Interrupt (Generate Semaphore) ◦ Frequency: ~1.6kHz ◦ Period: ~625uS ◦ Execution Time: 0.1uS(max)

8  Clock Interrupts ◦ ADC Receive (Generate Semaphore)  Period: 32uS  Execution Time:.1uS(max) ◦ LCD Transmit (Generate Semaphore)  Period: 32uS  Execution Time:.1uS(max) ◦ UI Task Frequency (Generate Semaphore)  Period: 9.98ms  Execution Time:.1uS(max)

9 Task NamePriority StartTask()1 ClockTask()2 CodecTask()3 ADCRecTask()4 UITask()5 LCDTask()6

10  Description: The purpose of the start task is to run initialization code for different hardware and software modules. The start task must initialize interrupts, LCD, and DSK peripherals.  Period: One Shot  Execution Time: ~600mS

11  Description: The clock task provides software interrupts at 32uS intervals. The clock task must count up to 312 to reach approximately 10mS. The 10mS SWI is used to post a UITask().  Period:~9.98ms(Periodic)  Execution Time: 10uS(max)

12  Description: The periodic codec task pends on a codec semaphore and an output buffer mutex. The output buffer is sent to the codec and the next output is calculated.  Period: 2.27uS(Periodic)  Execution Time: 0.45uS(max)

13  Description: The ADC Receive Task checks to see if a new analog input has been received into an input buffer. If so, it pends on the output buffer mutex and copies the input data to the output array.  Period: 32uS(Periodic)  Execution Time: 0.5uS(max)

14  Description: The user interface task runs every 10mS and polls the GPIO pins looking for a button press. If a button press is found, the LCD display task semaphore is posted for changes to be displayed.  Period: 10mS(Periodic)  Execution Time: 10us(max)

15  Description: The LCD task runs when the user interface task posts a semaphore. This task looks for changes in the effects selection and sends appropriate messages to the LCD.  Period: 10mS(Periodic)  Execution Time: 1uS(max)

16 Max Load: 44.70% HWISWITASKS

17 ModuleTasksPublic Functions main.cStart Task Codec Task ADC Receive Task User Interface Task DSK_init() comm_intr() Effects Structure Input Buffer Output Buffer LCD.cLCD TaskLCD_init() LCD_clear() LCD_clearline() LCD_putchar() LCD_putstr() drum_machinecfg_c.cClock TaskAll kernel functions effects.cfilter() delay() lfo() phase_shift()

18

19


Download ppt "System Software Design Engineer: Mac Gainor Western Washington University."

Similar presentations


Ads by Google