CSE 438/598 Embedded Systems Programming

本文转载至: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]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值