.. 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