您的位置:首页 > 其它

Summer Short Course on Embedded Systems Programming

2015-02-03 10:33 477 查看
本文转载至:http://rts.lab.asu.edu/web_ESP_Summer2014/ESP_Main_page.htm

The course was taught in Zhejiang University, Summer 2014. It provided the opportunities for students to learn various fundamental issues as well as practical development skill in the area of embedded systems programming. The goals of the course were to
let student

Understand the design issues of embedded software and gain an in-depth knowledge of development and execution environment on target processors.

Understand the functions and the internal structure of device interfaces, drivers, and real-time operating systems.

Acquire the skill to develop multi-threaded embedded software in target environment, including good quality and coding style for embedded programming, and testing and debugging approaches to verify embedded software operations.

Develop feasible task scheduling and carry out system performance and task schedulability analyses.

The target development environment used in the course was Intel's Galileo board. The board, with its rich architectural features, was used to investigate embedded software characteristics and IO operations, and to experience system design and development practices.

Reference material:

Intel® Quark SoC X1000 Core Developer’s Manual

Intel® Quark SoC X1000 Datasheet

Real-time Systems, by Jane Liu, Prentice Hall; ISBN: 0130996513.

The Linux Kernel Module Programming Guide, Peter Jay Salzman, Michael Burian, and Ori Pomerantz, 2007, ver 2.6.4, http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf.
Linux Device Drivers (3rd Edition), Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, 2005

Writing Linux Device Drivers: a guide with exercises, Jerry Cooperstein, ISBN: 978-1448672387

Debugging Embedded Linux, Christopher Hallinan, 2007

Prerequisites

1. Computer organization

2. Data structures

3. C/C++ programming

Note that it will be very helpful if you have some knowledge of Operating Systems and Computer architecture.

Course Schedule: (20minutes/lecture, 4 lectures/day)

Date

Classes (4 20-minutes lectures/day)

Lab and self-study (3 hours/day)

Monday, July 7

Introduction, Linux loadable modules

Exercise: data structures for Linux device drivers

Tuesday, July 8

Linux device driver

Lab: Linux loadable module

Wednesday, July 9

Quark SOC and Galileo architecture

Exercise: Galileo board design and GPIO programming

Thursday, July 10

Linux ISR and device driver

Exercise: user-level I2C programming

Friday, July 11

Thread and kernel synchronization

Lab: I2C-based EEPROM driver

Monday, July 14

Embedded programming

Exercise: setjmp and longjmp

Tuesday, July 15

Embedded programming

Lab: signal and asynchronous control

Wednesday, July 16

Real-time scheduling and analysis

Self-study: course review

Thursday, July 17

Real-time scheduling and analysis

Lab: real-time task management

Friday, July 18

Real-time scheduling and analysis

Final exam

Lecture slides and videos:

Lecture

Topic

Slide

Video

1

Introduction

ESP-ppt-01

ESP-video-01

2

Trends of Embedded Systems

ESP-ppt-02

ESP-video-02

3

ES Development Environment

ESP-ppt-03

ESP-video-03

4

Linux Kernel Modules

ESP-ppt-04

ESP-video-04

5

Linux Device Driver Basics

ESP-ppt-05

ESP-video-05

6

Basic Data Structures for Device Driver

ESP-ppt-06

ESP-video-06

7

Quark SOC and Galileo

ESP-ppt-07

ESP-video-07

8

x86 Memory and Interrupt

ESP-ppt-08

ESP-video-08

9

x86 System Architecture and PCI Bus

ESP-ppt-09

ESP-video-09

10

PCI Configuration

ESP-ppt-10

ESP-video-10

11

PCIe – An Introduction

ESP-ppt-11

ESP-video-11

12

Quark I2C Interface

ESP-ppt-12

ESP-video-12

13

Linux GPIO & I2C Drivers

ESP-ppt-13

ESP-video-13

14

Interrupt Processing in Linux

ESP-ppt-14

ESP-video-14

15

Linux ISR and Work Queue

ESP-ppt-15

ESP-video-15

16

Work Queue and Input Processing in Linux

ESP-ppt-16

ESP-video-16

17

Input Processing in Linux

ESP-ppt-17

ESP-video-17

18

Task Model

ESP-ppt-18

ESP-video-18

19

pthread Programming

ESP-ppt-19

ESP-video-19

20

Synchronization Mechanisms (1)

ESP-ppt-20

ESP-video-20

21

Synchronization Mechanisms (2)

ESP-ppt-21

ESP-video-21

22

RT Task Model

ESP-ppt-22

ESP-video-22

23

Overrun Management

ESP-ppt-23

ESP-video-23

24

Signaling

ESP-ppt-24

ESP-video-24

25

Kernel Signal Mechanism

ESP-ppt-25

ESP-video-25

26

Synchronous Model

ESP-ppt-26

ESP-video-26

27

Model and Cyclic Scheduling

ESP-ppt-27

ESP-video-27

28

EDF

ESP-ppt-28

ESP-video-28

29

Rate Monotonic Scheduling

ESP-ppt-29

ESP-video-29

30

Response Time Analysis

ESP-ppt-30

ESP-video-30

31

Interrupts and non-RM Tasks

ESP-ppt-31

ESP-video-31

32

Priority Inversion

ESP-ppt-32

ESP-video-32

33

RT Synchronization Protocol (1)

ESP-ppt-33

ESP-video-33

34

RT Synchronization Protocol (2)

ESP-ppt-34

ESP-video-34

35

RT Synchronization Protocol (3)

ESP-ppt-35

ESP-video-35

36

Aperiodic Server

ESP-ppt-36

ESP-video-36

37

A Case Study

ESP-ppt-37

ESP-video-37

38

WCET Analysis (1)

ESP-ppt-38

ESP-video-38

39

WCET Analysis (2)

ESP-ppt-39

ESP-video-39

40

Multicore Embedded Systems

ESP-ppt-40

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