CSE 438/598 Embedded Systems Programming

2023-10-10 04:18

本文主要是介绍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]


这篇关于CSE 438/598 Embedded Systems Programming的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177880

相关文章

[LeetCode] 438. Find All Anagrams in a String

题:https://leetcode.com/problems/find-all-anagrams-in-a-string/description/ 题目 Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowerca

阅读笔记(四)NoSQL的选择指引《NoSQL database systems: a survey and decision guidance》

一. 前言   《NoSQL database systems: a survey and decision guidance》是一篇很好的综述类论文,详细的论述了NoSQL的特点和各种不同NoSQL数据库的选择依据。   传统的关系型数据库(relational database management systems ,RDBMSs)可以在保证一致性、可靠性、稳定性的前提下提供强有力的数据存储

leetcode解题思路分析(五十)432 - 438 题

全O(1)的数据结构 哈希表+链表即可 class AllOne {public:/** Initialize your data structure here. */struct Node{unordered_set<string> container;int val = 0;Node(int v):val(v){}};unordered_map<string, list<Node>::i

【论文分享】MyTEE: Own the Trusted Execution Environment on Embedded Devices 23‘NDSS

目录 AbstractINTRODUCTIONBACKGROUNDARMv8 ArchitectureSecurity statesTrustZone extensionsVirtualization Communication with Peripherals MOTIVATIONATTACK MODEL AND ASSUMPTIONSYSTEM DESIGNOverviewExecu

Nordic Collegiate Programming ContestNCPC 2021

Date:October 9, 2021 Dashboard - 2021-2022 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2021) - Codeforces Problem - C - Codeforces--Customs ControlsProblem - C - Codeforces- 题意:给定一个n个点,m条边

强化学习实践(二):Dynamic Programming(Value \ Policy Iteration)

强化学习实践(二):Dynamic Programming(Value \ Policy Iteration) 伪代码Value IterationPolicy IterationTruncated Policy Iteration 代码项目地址 伪代码 具体的理解可以看理论学习篇,以及代码中的注释,以及赵老师原著 Value Iteration Policy Itera

SAP CAP(Cloud Application Programming)知识介绍和学习路径

1. 框架简介 1.1 什么是CAP? CAP(Cloud Application Programming)是SAP推出的一种现代化开发框架,旨在简化和加速云原生应用程序的开发。 CAP框架基于开放标准和技术,如Node.js、Java、OData和SQL,提供了一套工具和库,帮助开发人员快速构建、扩展和运行企业级应用。 1.2 CAP的基础技术框架 CAP框架主要由以下几个部分组成:

出现 WebServerException: Unable to start embedded Tomcat 解决方法(全)

目录 1. 问题所示2. 原理分析3. 解决方法4. 彩蛋总结4.1 方式一4.2 方式二4.3 方式三4.4 方式四 1. 问题所示 原本今天早上可以执行,但是突然下午执行springboot项目的时候出现如下问题 Caused by: org.springframework.boot.web.server.WebServerException: Unable to sta

指针 C programming

”许久未曾提笔,心湖泛起涟漪。“ 概念:指针是一种将另一个变量的内存地址存储 为其值的变量。 int a = 1;printf("%d", a); // 打印的是 变量a 的 存储地址 位置上 存储的 值printf("%p", (void*)&a); // 打印的是 变量a 本身的 地址值int *p = &a; // & 符号是取地址符 所以这行代码的意思是取变量a的本身存储地

Focus On 3D Terrain Programming·Chapter 5(1)

写在前面的话 原著:《Focus On 3D Terrain Programming》 章节:Chapter5 Geomipmapping for the CLOD Impaired 说明:图形渣、英语渣,学习的同时记录下来的(主要是不翻译就读不下去TT),希望能和大家相互交流学习,翻译有误的地方欢迎指出^^ 正文开始↓ 哦吼!你将要学习地形编程中的核心内容,里面包含了相当复杂的算法。实