CSE 438/598 Embedded Systems Programming
2015-02-03 10:28
330 查看
本文转载至:http://rts.lab.asu.edu/web_438/CSE438_Main_page.htm
Thecourse provides the opportunities for students to learn various fundamentalissues as well as practical developments in the area of embedded systemsprogramming. After completing the course, students will be able to
1. Understand the design issues ofembedded software and gain an in-depth knowledge of development and executionenvironment on target processors.
2. Understand the functions and theinternal structure of device interfaces, drivers, and real-time operatingsystems.
3. Acquire the skill to developmulti-threaded embedded software in target environment, including good qualityand coding style for embedded programming, and testing and debugging approachesto verify embedded software operations.
4. Develop feasible task scheduling andcarry out system performance and task schedulabilityanalyses.
Aproper target development environment will be adopted for teaching and softwaredevelopment. An embedded platform, with rich architectural features, will beused to investigate embedded software characteristics, DMA and IO operations inhigh-speed data planes,
PCIe, and mmpdevices, and to experience system design and development practices.
Textbook Book:
Writing Linux Device Drivers: a guide with exercises, Jerry Cooperstein, ISBN: 978-1448672387
Reference material:
Real-time Systems, by Jane Liu, Prentice Hall; ISBN:0130996513.
Intel IA32 Software developer’s manual, Atom processor and ICH8Datasheet
The Linux Kernel Module Programming Guide, PeterJay Salzman, Michael Burian,and Ori Pomerantz, 2007, ver 2.6.4.
Linux Device Drivers (3rd Edition) Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, 2005
Debugging Embedded Linux, Christopher Hallinan, 2007
Programming PCI-Devices under Linux, Claus Schroeter, Linux-PCI Support
Prerequisites by Topic
1. CSE230 Computer Organization
2. CSE325 Embedded Microprocessor Systems
Course Content: (75minutes/lecture)
Introduction: characteristics of embedded applications, concurrency and timing constraints, embedded system development environment (1 lecture)
[Slide_1]
Linux Modules and Device Drivers: Software structure of a device driver, Linux loadable kernel module, user program and kernel interface (3 lectures) [Slide_2]
Linux threading and synchronization: Threads in Linux and Vxworks, Task state transitions, Syncronization, Producer/Consumer problem (2 lectures)[Slide_3]
Intel Embedded Processor: Current trends, IA32 processor, Memory model, Modes of operation, Protected mode memory management, System memory map, Interrupts and Exceptions, APIC, Interrupt handling, Overview of Architecture: North-bridge and South-bridge,
IO controller Hub (4 lectures)[Slide_4]
PCI and PCI Express Bus Architecture: Device controllers, programming approaches, plug and play concept,interconnection architecture and high speed serial buses, PCI express (4 lectures)[Slide_5]
I2C driver in Linux: Software structure of an I2C Linux driver Accessing I2C devices from user space, 'I2C-dev' module (2 lectures)[Slide_6]
Linux interrupt processing and kernel threads: Preemptive context switching, Interrupt handling, Bottom halves: Softirqs, Tasklets, Worqueues (2 lectures)[Slide_7]
Linux input systems: Software structure of Input system, Event handling with an example of PS2-mouse, Threaded Irqs (2 lectures)[Slide_8]
Embedded software programming: Task model and specification, deadlocks and distributed deadlock prevention, imprecise computation, overrun management, asynchronous transfer of control, setjmp and longjmp, exception handling in C and C++ (4 lectures)[Slide_9]
Scheduling algorithms and analysis: cyclic scheduling, rate-monotonic scheduling, EDF, resource sharing, priority inheritance, deadlock analysis, and schedulability analysis (6 lectures)[Slide_10]
Project:
Alldesign and development projects will be carried out in the real-time embeddedsystems laboratory which is located in the 2nd floor of Brickyard Building. The lab consists of PCs withLinux and Windows operating systems, and Eclipse IDE. The target
boards areIntel Atom mini-ITX boards.
AIMB 212 Atommini-ITX board
Assignments:
· Assignment 1-- A Device Driver for SharedQueues with Timestamping
· Assignment 2-- A Nunchuck Driver withAsynchronous SMBus Transfer
· Assignment 3-- Mouse Input, Event Handle, andImprecise Computation
· Assignment 4-- Signal and EDF scheduling invxWorks
· Assignment 5-- Real-time Task Model in vxWorks
Project Presentations and Reports(CSE 598):
· Object-orientedIPC, D-bus and CORBA -- Yu Zhang, Duo Lu
[Presentationslides]
· Binary Translation-- Ajey Achutha, Mahesh Kumar
[Presentationslides]
· USB Interface andDriver
-- Jubin Mehta, Koshik Samota [Presentationslides]
· ExceptionHandling
-- Dipal Saluja, Nikhil Kulkarni [Presentation slides]
· HardwareDebugging using GDB, OpenOCD and JTAG
--Dheeraj Chidambaranathan, ImtiyazHussain [Presentationslides]
· Memory Leak Detection --Rahulkumar Thakkar, Tarun Vyas [Presentationslides]
· LINUX TraceTools -- Tarun Sharma, Sharath Koday [Presentationslides]
· AndroidArchitecture and Binder -- Dhinakaran Pandiyan, Saketh Paranjape [Presentation
slides]
· PerformanceMonitoring Unit -- Aman Singh, Anup Buchke [Presentationslides]
· Ubootand Redboot - A Comparitive Study -- Jeevan Prasath S, Tejas Krishna [Presentation
slides]
· Eventdriven Sensor Systems -- Chetan Fegade, Nikhil Mascarenhas
[Presentationslides]
Thecourse provides the opportunities for students to learn various fundamentalissues as well as practical developments in the area of embedded systemsprogramming. After completing the course, students will be able to
1. Understand the design issues ofembedded software and gain an in-depth knowledge of development and executionenvironment on target processors.
2. Understand the functions and theinternal structure of device interfaces, drivers, and real-time operatingsystems.
3. Acquire the skill to developmulti-threaded embedded software in target environment, including good qualityand coding style for embedded programming, and testing and debugging approachesto verify embedded software operations.
4. Develop feasible task scheduling andcarry out system performance and task schedulabilityanalyses.
Aproper target development environment will be adopted for teaching and softwaredevelopment. An embedded platform, with rich architectural features, will beused to investigate embedded software characteristics, DMA and IO operations inhigh-speed data planes,
PCIe, and mmpdevices, and to experience system design and development practices.
Textbook Book:
Writing Linux Device Drivers: a guide with exercises, Jerry Cooperstein, ISBN: 978-1448672387
Reference material:
Real-time Systems, by Jane Liu, Prentice Hall; ISBN:0130996513.
Intel IA32 Software developer’s manual, Atom processor and ICH8Datasheet
The Linux Kernel Module Programming Guide, PeterJay Salzman, Michael Burian,and Ori Pomerantz, 2007, ver 2.6.4.
Linux Device Drivers (3rd Edition) Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, 2005
Debugging Embedded Linux, Christopher Hallinan, 2007
Programming PCI-Devices under Linux, Claus Schroeter, Linux-PCI Support
Prerequisites by Topic
1. CSE230 Computer Organization
2. CSE325 Embedded Microprocessor Systems
Course Content: (75minutes/lecture)
Introduction: characteristics of embedded applications, concurrency and timing constraints, embedded system development environment (1 lecture)
[Slide_1]
Linux Modules and Device Drivers: Software structure of a device driver, Linux loadable kernel module, user program and kernel interface (3 lectures) [Slide_2]
Linux threading and synchronization: Threads in Linux and Vxworks, Task state transitions, Syncronization, Producer/Consumer problem (2 lectures)[Slide_3]
Intel Embedded Processor: Current trends, IA32 processor, Memory model, Modes of operation, Protected mode memory management, System memory map, Interrupts and Exceptions, APIC, Interrupt handling, Overview of Architecture: North-bridge and South-bridge,
IO controller Hub (4 lectures)[Slide_4]
PCI and PCI Express Bus Architecture: Device controllers, programming approaches, plug and play concept,interconnection architecture and high speed serial buses, PCI express (4 lectures)[Slide_5]
I2C driver in Linux: Software structure of an I2C Linux driver Accessing I2C devices from user space, 'I2C-dev' module (2 lectures)[Slide_6]
Linux interrupt processing and kernel threads: Preemptive context switching, Interrupt handling, Bottom halves: Softirqs, Tasklets, Worqueues (2 lectures)[Slide_7]
Linux input systems: Software structure of Input system, Event handling with an example of PS2-mouse, Threaded Irqs (2 lectures)[Slide_8]
Embedded software programming: Task model and specification, deadlocks and distributed deadlock prevention, imprecise computation, overrun management, asynchronous transfer of control, setjmp and longjmp, exception handling in C and C++ (4 lectures)[Slide_9]
Scheduling algorithms and analysis: cyclic scheduling, rate-monotonic scheduling, EDF, resource sharing, priority inheritance, deadlock analysis, and schedulability analysis (6 lectures)[Slide_10]
Project:
Alldesign and development projects will be carried out in the real-time embeddedsystems laboratory which is located in the 2nd floor of Brickyard Building. The lab consists of PCs withLinux and Windows operating systems, and Eclipse IDE. The target
boards areIntel Atom mini-ITX boards.
AIMB 212 Atommini-ITX board
Assignments:
· Assignment 1-- A Device Driver for SharedQueues with Timestamping
· Assignment 2-- A Nunchuck Driver withAsynchronous SMBus Transfer
· Assignment 3-- Mouse Input, Event Handle, andImprecise Computation
· Assignment 4-- Signal and EDF scheduling invxWorks
· Assignment 5-- Real-time Task Model in vxWorks
Project Presentations and Reports(CSE 598):
· Object-orientedIPC, D-bus and CORBA -- Yu Zhang, Duo Lu
[Presentationslides]
· Binary Translation-- Ajey Achutha, Mahesh Kumar
[Presentationslides]
· USB Interface andDriver
-- Jubin Mehta, Koshik Samota [Presentationslides]
· ExceptionHandling
-- Dipal Saluja, Nikhil Kulkarni [Presentation slides]
· HardwareDebugging using GDB, OpenOCD and JTAG
--Dheeraj Chidambaranathan, ImtiyazHussain [Presentationslides]
· Memory Leak Detection --Rahulkumar Thakkar, Tarun Vyas [Presentationslides]
· LINUX TraceTools -- Tarun Sharma, Sharath Koday [Presentationslides]
· AndroidArchitecture and Binder -- Dhinakaran Pandiyan, Saketh Paranjape [Presentation
slides]
· PerformanceMonitoring Unit -- Aman Singh, Anup Buchke [Presentationslides]
· Ubootand Redboot - A Comparitive Study -- Jeevan Prasath S, Tejas Krishna [Presentation
slides]
· Eventdriven Sensor Systems -- Chetan Fegade, Nikhil Mascarenhas
[Presentationslides]
相关文章推荐
- CSE 522 Real-Time Embedded Systems
- Summer Short Course on Embedded Systems Programming
- Programming Embedded Systems: With C and Gnu Development Tools
- 献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法
- Embedded Systems Architecture programming and design--Chapter 1 Summary
- Important Programming Concepts (Even on Embedded Systems) Part V: State Machines
- 献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法
- Programming Embedded Systems with C and GNU Development Tools, 2nd Edition (OReilly, 2006)的读书终于完成
- Building Embedded Linux Systems
- CSE 325 Embedded Microprocessor System Design
- Arm 学习笔记 第一章: Arm embedded systems
- Using QEMU for Embedded Systems Development, Part 1
- Serial Programming Guide for POSIX Operating Systems
- Real-Time Concepts for Embedded Systems----读书笔记
- Serial Programming Guide for POSIX Operating Systems
- Embedded Systems Memory Types
- Everything You Need To Know To Start Programming 64-Bit Windows Systems
- 论文阅读:Efficient isolation of trusted subsystems in embedded systems
- Coursera Machine Learning 第九周 quizProgramming Exercise 8: Anomaly Detection and Recommender Systems
- GNU Tools for Embedded Systems