您的位置:首页 > 其它

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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: