|
 |
Device Software Engineering
|
Prerequisite Courses
|
| Course # |
Title |
Winter |
Spring |
Summer |
Fall |
EECS 805 |
C Programming for Embedded Systems ( 1.5 CEU )
Show Details
Embedded software can be found in many electronic devices today. Increase your understanding of the essential embedded language features required for embedded systems programming. Embedded software developers benefit from this hands-on course by expanding their knowledge of using pointers and arrays, bit manipulation, using key words such as "volatile" and "register," and learning more about source code solutions to common embedded software problems.
|
 |  |

|

|
|
Required Courses
|
| Course # |
Title |
Winter |
Spring |
Summer |
Fall |
EECS X497.24 |
Getting Software and Hardware Working - Co-Development and Co-Debug ( 1.5 units )
Show Details
This course takes participants through the hardware and software development process showing the value of co-simulation. Participants learn how, when, where and why using co-simulation is a valuable tool for today's development of embedded systems. Topics include: Parallel development and leveraging co-simulation to convert the engineering process from being serial to parallel, the state of co-simulation tools and what to expect, understand how to reduce risks in your products before they are produced via co-simulation, reasonable expectations from the tools and costs.
|
 |  |  |  |
EECS X497.19 |
Writing Portable Device Drivers ( 3 units )
Show Details
Gain a competitive edge on writing portable device drivers source code. Participants will gain practical knowledge of what constitutes a device driver, how to build one from a hardware datasheet, and how to write the code that will be readily portable across multiple platforms and operation systems. Increase your knowledge of timing, interrupt handling, direct memory access (DMA), how to avoid pitfalls, and other critical issues fundamental to writing device drivers. Hands-on lab exercises reinforce code writing skills.
|
 |  |  |

|
EECS X497.31 |
Designing Embedded Software Using Real-time Operating Systems ( 3 units )
Show Details
Learn how to write real-time systems software in relation to the architectural design of a complete embedded system utilizing a real- time operating system kernel. Participants will gain a practical knowledge of how to use a real-time kernel to accomplish the design goals of a real-time system. Learn how a real-time kernel is used to satisfy hard real-time constraints in comparison to soft real-time constraints. Gain a greater insight into the concepts of task scheduling, resource management, inter-task communications, task synchronization, and interrupt handlers.
|
 |  |

|  |
EECS X497.10 |
Fundamentals of Embedded Linux ( 3 units )
Show Details
Further your understanding of Linux and its adoption as an embedded OS platform. This course provides an overview of methods and techniques to design and create embedded systems based on the Linux kernel. The essentials of the Linux operating system are discussed from the embedded system point of view including selecting, configuring, cross-compiling, installing a target-specific kernel; licenses; drivers and subsystems; the GNU development toolchain; and tools used to build embedded Linux systems. Prerequisite: Familiarity with software programming and hardware design.
|
 |  |  |

|
EECS X497.11 |
Linux Driver Primer ( 1.5 units )
Show Details
Gain a competitive edge by learning how to develop and write code for Linux device drivers. Participants will gain practical knowledge of what constitutes a device driver in Linux and basic Linux device driver building blocks. In addition, learn how to build and grow a framework from scratch that can be used to develop a Linux device driver. Increase your knowledge of timing, interrupt handling, direct memory access (DMA), how to avoid pitfalls, and other critical issues fundamental to writing Linux device drivers. Hands-on lab exercises reinforce code writing skills.
|
 |  |  |  |
EECS X495.1 |
C Programming for DSP ( 3 units )
Show Details
C programming is a preferred high-level programming language for digital signal processing (DSP) applications. Increase your knowledge on efficient DSP programming techniques and how to write DSP code in C. Participants are guided through the DSP software design flow, common DSP hardware architectures, and fixed-point and floating-point considerations and limitations. An emphasis is placed on C programming techniques for DSP such as FIR and IIR filters, noise reduction algorithms, sample rate conversion, parametric and non-parametric power spectrum estimation techniques, speech and music processing, and adaptive filter applications.
|
 |  |

|  |
Course schedules are subject to change.
Individual courses may be taken without enrolling in the full certificate.
=Accelerated Format =Classroom =Online
=Classroom/Online =To Be Scheduled
|
|
|
|
- Certificates
- Focuses search on "Certificates"
|