CSE 438/598 Embedded Systems Programming

本课程提供深入的嵌入式软件设计问题及目标处理器的开发与执行环境理解。学生将掌握嵌入式软件多线程开发技能,了解设备接口、驱动和实时操作系统的功能与内部结构,并能进行任务调度、系统性能分析与验证。通过采用合适的教学与开发环境,利用特定嵌入式平台,学生将获得丰富的实践体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值