Download presentation
Presentation is loading. Please wait.
Published byMelina Malone Modified over 8 years ago
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()
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.