.. EmbSys documentation created on Wed Dec 8 15:01:38 2010. ====================== Embedded Systems CP105 ====================== | **Programming with Embedded Real-time Operating Systems** | **Certificate Program** | **John Hatch** | **University of Washington** | **Copyright 2013** ====== Course ====== General ------- .. toctree:: :maxdepth: 1 Course Outline Class Overview Course_Books Discussion Forum and Collect It ------------------------------- * `Assignment Drop Box `_ * `Discussion and Class Forum `_ ============ Introduction ============ .. toctree:: :maxdepth: 2 01_Overview/EmbSys Introduction 01_Overview/Real_Time ================== Exception Handling ================== .. toctree:: :maxdepth: 2 02_Exceptions/Register_Organization 02_Exceptions/Modes_and_Exception_types 02_Exceptions/Status_Registers 02_Exceptions/Status_Register_Instructions 02_Exceptions/Interrupt_Control 02_Exceptions/Vector_Table 02_Exceptions/Exceptions and Interrupts 02_Exceptions/How to Cause Exceptions 02_Exceptions/Prefetch Abort Behavior 02_Exceptions/Nesting_Interrupts 02_Exceptions/Calling Standard 02_Exceptions/uDebugger Assignment 02_Exceptions/Debugger Discussion ================= Context Switching ================= .. toctree:: :maxdepth: 2 03_Context_Switch/Context_Switch 03_Context_Switch/Starting a Task from Scratch 03_Context_Switch/Context Switch Assignment ======= Tiny OS ======= .. toctree:: :maxdepth: 2 03.5_TinyOS/Tasks 03.5_TinyOS/Critical_Sections 03.5_TinyOS/Delay_Timer 03.5_TinyOS/Adding_Semaphores 03.5_TinyOS/Adding_Semaphores_2 ============================== Synchronizing and Sharing Data ============================== .. toctree:: :maxdepth: 2 06_Synchronization/Synchronizing_and_Data_Sharing 06_Synchronization/Semaphores 06_Synchronization/Deadlocks 06_Synchronization/Priority_Inversion 06_Synchronization/Reentrant_Code ======================== Synchronization Patterns ======================== .. toctree:: :maxdepth: 2 06_Synchronization_Patterns/Polling 06_Synchronization_Patterns/Signaling 06_Synchronization_Patterns/Synchronization Patterns ================= uCOS Introduction ================= .. toctree:: :maxdepth: 2 04_uCOS_Intro/uCOS Startup 04_uCOS_Intro/uCOS Startup Walkthrough 04_uCOS_Intro/uCOS Port Review and Notes 04_uCOS_Intro/startup assembly file 04_uCOS_Intro/uCOS Start Functions ========== uCOS Tasks ========== .. toctree:: :maxdepth: 2 05_uCOS_Tasks/Tasks_uCos 05_uCOS_Tasks/Tasks_Functions 05_uCOS_Tasks/Task Control Block 05_uCOS_Tasks/ucos_ii.h ==================================== uCOS Interrupts and Context Switches ==================================== * How does uCOS handle interrupts * uCOS Timer * How does a context switch work in uCOS .. toctree:: :maxdepth: 2 07_uCOS_Functions/uCOS_Interrupts ============ uCOS Indepth ============ .. toctree:: :maxdepth: 2 07_uCOS_Functions/uCOS_OS.txt 07_uCOS_Functions/uCOS_Critical_Sections.txt 07_uCOS_Functions/uCOS_Time.txt 07_uCOS_Functions/uCOS_Semaphores.txt 07_uCOS_Functions/uCOS_Mutexes.txt 07_uCOS_Functions/uCOS_Mailboxes.txt 07_uCOS_Functions/uCOS_Queues.txt 07_uCOS_Functions/uCOS_Flags.txt 07_uCOS_Functions/uCOS_Timer.txt ================= Memory Management ================= .. toctree:: :maxdepth: 2 08_Memory_Management/Memory_Management 08_Memory_Management/Memory_Partitioner 08_Memory_Management/uCOS_Memory_Functions ======= Drivers ======= .. toctree:: :maxdepth: 2 09_Drivers/Drivers 09_Drivers/Creating a Driver 09_Drivers/MP3 Player Driver 09_Drivers/Driver code ==================== Music Player Project ==================== .. toctree:: :maxdepth: 2 10_Music_Player/Music Player Project 10_Music_Player/MP3 Commands 10_Music_Player/Design 10_Music_Player/Code ================= Operating Systems ================= .. toctree:: :maxdepth: 2 11_Operating_Systems/Operating Systems 11_Operating_Systems/Operating Systems Internals 11_Operating_Systems/Code to Running Process 11_Operating_Systems/Translation Lookaside Buffer * :download:`Windows_CE_Architecture.pdf <11_Operating_Systems/Windows_CE_Architecture.pdf>` * :download:`Virtual Memory <11_Operating_Systems/Class_9_Virtual_Memory.pptx>` * :download:`Shell and Flashing ` .. * :download:`Translation_Lookaside_Buffer.pdf <11_Operating_Systems/Translation_Lookaside_Buffer.pdf>` =========== Assignments =========== For the assignments details and due dates see the `Assignment Drop Box `_. .. toctree:: :maxdepth: 1 02_Exceptions/uDebugger Assignment 03_Context_Switch/Context Switch Assignment .. 03_Context_Switch/Context Switch Assignment 04_uCOS_Intro/uCOS Port Assignment 10_Music_Player/Music Player Project .. toctree:: :maxdepth: 1 13_Final/Final Questions ===== Final ===== :download:`EMBSYS CP105 - Final.docx <13_Final/EMBSYS CP105 - Final.docx>` ============= Project Files ============= ================================================================================================= ================================================================================== File Description ================================================================================================= ================================================================================== :download:`uDebugger_Homework.zip ` uDebugger homework project :download:`Context_Switcher_Homework.zip ` Context switcher homework project - LPC2378 :download:`TinyOS_Homework.zip ` TinyOS homework project - critical sections and timer delays :download:`TinyOS_Homework_VIC.zip ` TinyOS homework project with VIC support :download:`TinyOS_Events_LPC2478_Homework.zip ` TinyOS homework project with Event Blocks and semaphores :download:`uCOS_Port_Homework.zip ` uCOS Port homework project - LPC2378 :download:`uCOS_2_LPC2478_Homework.zip ` uCOS Port homework project - LPC2478 :download:`Semaphore_Homework.zip ` Semaphore homework for TinyOS and uCOS :download:`uCOS_2_Music_LPC2478_Homework.zip ` uCOS Music drivers homework project - LPC2478 :download:`MP3_Player_LPC2378_Homework.zip ` MP3 Player Homework project for LPC2378 (last year) ================================================================================================= ================================================================================== .. :download:`WavHdr.exe ` Utility for converting audio files into headers files :download:`LPC2378STK_LCD_Demo.zip ` uCOS Demo project using LCD to display task statistics ======================================================================================== ================================================================================== ============ Sample Files ============ ======================================================================================== ================================================================================== File Description ======================================================================================== ================================================================================== :download:`AudioDevice_Demo_2478.zip ` Full feature Audio Demo for LPC2478 - ported but doesn't build. :download:`LCD_Demo_2478.zip ` LCD Demo project for the LPC2478 - builds and runs. :download:`LPC23xx_Sample_Software.zip ` LPC23xx sample software for device peripherals ======================================================================================== ================================================================================== =========== Extra Files =========== ======================================================================================== ================================================================================== File Description ======================================================================================== ================================================================================== :download:`TinyOS_Shell_LPC2478.zip ` TinyOS with Shell :download:`TinyOS_with_Priorities.zip ` First draft of TinyOS with Priorities - os files only :download:`lpc2478.h ` Register definitions header file for NXP LPC247x devices. Ported from IAR version. ======================================================================================== ================================================================================== | ======== Hardware ======== .. toctree:: :maxdepth: 1 Hardware/LPC2378_STK Hardware/LPC2478_STK Hardware/Olimex JTAG Hardware/MOD-MP3 Hardware/VS1002 Hardware/MOD-MP3-X Hardware/VS1053 Hardware/VIC Hardware/SPI Hardware/LCD .. uCOS ==== .. toctree:: :maxdepth: 1 Sources/index ========= uCOS Port ========= .. toctree:: :maxdepth: 1 uCOS Port/uCOS Port uCOS Port/Exception Handling Sequence uCOS Port/uCOS Port Dependent Functions uCOS Port/uCOS Port - Code ===== Build ===== .. toctree:: :maxdepth: 1 Build/Linker Definition File ============ Setup Guides ============ .. toctree:: :maxdepth: 1 Setup/Setup_Guide Setup/Flash_Magic Setup/Terminal_Emulator ===== Tools ===== .. toctree:: :maxdepth: 1 Tools/index OpenOCD/index GCC/index ================= General Resources ================= .. toctree:: :maxdepth: 1 Resouces/Projects .. ========== Extra Bits ========== .. toctree:: :maxdepth: 1 01_Overview/Homework_01 07_uCOS_Functions/Assigment - More Porting 07_uCOS_Functions/uCOS Functions 07_uCOS_Functions/uCOS_Hooks 07_uCOS_Functions/uCOS_Memory 10_Music_Player/App Design 10_Music_Player/Flow Diagram Student Notes 12_Review/Review Assigments/Timer Assignemt Sources/lpc2378_flash_ld Course Outline - old GCC/ARM-ELF-GCC Options Hardware/Board Setup Hardware/Olimex_JTAG/ARM_USB_OCD_JTAG Hardware/VIC/VIC_Channels OpenOCD/setenv Resouces/Embedded_publications .. Solutions ========= .. toctree:: :maxdepth: 1 02_Exceptions/uDebugger Solution