课程概述
第一次上课前首先看这里
加入课程:注册中国大学MOOC的账号,通过课程查询找到本课程,加入课程学习
课程定位:本课程的定位为混合式课程,关于课程的各方面情况介绍,以先介绍纯线上MOOC课程,后补充SPOC课程建议的方式列出。
教学大纲:课程资源组织为16节课的形式(14章内容),大家可在下方看到以章节名目排列的课程大纲。
学时安排:本课程按照每周2次课,各2学时设计,8周完成课程全部32学时学习。同学们可以自由选择每周的学习时间。
课程资源简介:课程资源包括91集授课视频和拓展学习视频、106份非视频资料、16套课后习题、2套单元测试和1套期末测试,以及全部章节对应的代码资源。大家可以在本网站左边侧的“课件”栏目中找到所有课程资源。
教学活动安排:
1.每章均有授课视频、课件等资源每节课后,均有自测题,需要同学们自学完成。
2.每节课后均有作业题,包括5道左右选择题,以及数量不等的讨论题,用于检测学习效果。
3.本课程在进行过程中,安排了两次单元测试,需要大家按时完成。
4.本课程结课之前,需要所有同学按时完成一套期末考试题。
教师线上答疑及作业反馈:教师每周上线回复所有讨论问题。
课程技术:
1.进行本课程的纯线上教学时,须采用本平台的讨论区、作业区;
2.进行本课程实验时,同学们须自备计算机,并安装有Linux系统及C语言编辑器、编译器、链接器、调试器,即能够完成对课程实例的调试,对应学习目标2-4及学习目标5的虚拟驱动部分;安装Proteus虚拟仿真软件,能够完成课上虚拟仿真电路的设计与调试,对应学习目标6的Proteus部分。
混合式教学:
1.教学模式
本课程采用混合式教学时,包括线上教学和线下教学两部分内容。线上环节中,同学们需要在课前自学完成当次课所有教学资源;线下环节中,教师可在自己的SPOC班中组织翻转课堂,进行课程内容讨论、答疑、课上练习、课堂测试、专题报告等内容。
2.SPOC教学建议
进行混合式SPOC教学的老师,可根据自己学校的实际情况,自行确定授课的时间和地点,推荐每周4学时,采用带有多媒体设备和圆桌教室组织翻转课堂。
3.雨课堂技术
本课程推荐使用“雨课堂”软件进行线下翻转课堂教学,同学们可通过弹幕及时向教师提问,并随时解答教师安排的课内练习题。教师课通过对弹幕问题的回答,及时解决学生的问题,以及通过对学生回答问题的即时分析,了解学生的掌握情况,以实时调整教学节奏。
4.课程实验技术
(1)学生必须配备线上教学所需要的计算机及全部相关软件(如上所述),对应学习目标的2-5(不含实际设备驱动部分)和学习目标6的Proteus部分。
(2)在实验环节,进行SPOC教学的学校应配备基于ARM的实验设备,包括但不限于ARM9/10/11,CortexA系列等处理器,即可完成本课程绝大部分实验,如需进行STM32部分的实际操作,还应配备有基于STM32的实验设备,对应学习目标5的实际设备驱动部分及学习目标6的STM32部分。
5.即时联系方式
建议教师与学生建立微信群,以方便随时联系。
授课目标
课程学习目标:
1、能够说出嵌入式系统和嵌入式软件的内涵与外延、以及交叉开发环境的概念
2、能够列举出主要的几种嵌入式C编程架构和ARMC程序优化方法
3、能够使用编辑器、编译器、调试器等工具完成嵌入式软件的构建
4、运用嵌入式LinuxC编程的一般方法完成文件、目录、内存、进程、线程、IPC、socket等软件设计
5、能充分运用驱动程序设计方法独立完成led、键盘、数码管等硬件的驱动程序设计
6、能够复述STM32的基本结构、Proteus的基本工作原理
7、能够复述典型国产技术,分析其特点、原理,基于国产技术独立设计嵌入式系统;能够独立完成技术专题汇报,体现工匠精神;能够展现科技报国的家国情怀和使命担当
学习目标分解:
本课程内容的前14章中,每章介绍中均会包括该章学习目标与课程学习目标的对应关系,同学们可据此对各章节的学习内容与价值进行定位。
学习活动达成:
1、本课程的前14章中,共计包含课后习题80道,以及课后讨论主题42个。习题和讨论主题按照布鲁姆教育目标分类,对学生的要求从第到高分别为:记忆、理解、应用、分析、评价、创造。
2、在每章的介绍中,会对习题和讨论主题按照布鲁姆教育目标进行分类,同学们可据此判断自己对本章内容的掌握程度。
混合式教学:
1、进行SPOC教学的班级,建议在翻转课堂中进行答疑、讨论、课上练习、课上测试、学生报告等环节,线上成绩按比例折算,比例由教师自定,线下成绩单独计分。
2、进行SPOC教学的班级,应在老师和助教的组织下,独立完成下列实验:嵌入式平台构建、虚拟驱动程序、led驱动程序设计、lcd驱动程序等实验,以及能够分组设计具有500行以上代码的综合大作业。
3、本课程部分内容采用师生共建,学生须针对部分拓展知识点进行资料收集和整理,并完成ppt制作,在课上为所有同学进行10分钟的专题报告,并录制视频上传至平台,见本课程第15章。
4、线上活动偏重于理论学习、不需实际设备的实验;线下活动偏重于教师直接指导,以及需要具体硬件设备的实验组织。
课程大纲
01
概述
【本章目标】本章目标对应课程学习目标1。完成本章学习后,学习者将能够:(1)复述嵌入式系统、嵌入式软件设计的内涵与外延;(2)复述交叉开发环境包括哪些环节,以及每个环节的作用。【本章活动】本章主要内容是嵌入式系统概述、嵌入式软件设计概述,课后设置有5道课后测试题,分别测试学生的理解能力,记忆能力,分析能力。本章设置有3个讨论题,分别测试学生的应用能力和分析能力。【等级水平】本章内容主要为常识介绍、基本原理介绍,本章全部教学资源的内容水平为初级,适合具备课程先导知识的学生作为初阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
1.1嵌入式系统概述
1.2嵌入式软件设计概述
02
嵌入式C编程综述
【本章目标】本章目标对应课程学习目标2。完成本章学习后,学习者将能够:阐述在没有嵌入式操作系统上进行C编程的基本方法,包括模块划分、显示、键盘、菜单等设计方法。【本章活动】课后设置有5道课后测试题,分别测试学生的理解能力、记忆能力、应用能力。本章设置有4个讨论题,分别测试学生的应用能力和分析能力。【等级水平】本章内容主要为基本软件设计方法介绍,本章全部教学资源的内容水平为中级,适合具备C语言课程先导知识的学生作为中阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
2.1软件架构
2.2C的面向对象化
2.3汉字处理
2.4屏幕操作
2.5输入事件
03
ARMC程序优化
【本章目标】本章目标对应课程学习目标2。完成本章学习后,学习者将能够:概括ARMC程序优化的主要方式,包括数据类型、循环、指针、结构体等内容。【本章活动】课后设置有5道课后测试题,分别测试学生的理解能力、记忆能力、应用能力。本章设置有2个讨论题,分别测试学生的分析能力。【等级水平】本章内容主要为对ARMC语言的底层特性理解,包括对编译器特点的理解,本章全部教学资源的内容水平为高级,适合具备ARM系统结构课程先导知识的学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
3.1思路优化
3.2变量的数据类型选择
3.3次数固定的循环优化
3.4次数不定的循环优化
3.5循环展开
04
Linux操作系统
【本章目标】本章目标对应课程学习目标3。完成本章学习后,学习者将能够:概括Linux操作系统的发展历史,熟悉并能充分运用Linux的shell命令进行常用操作。【本章活动】课后设置有6道课后测试题,分别测试学生的理解能力、记忆能力、应用能力。本章设置有3个讨论题,分别测试学生的理解能力和应用能力。【等级水平】本章内容主要为对Linux操作系统的一般性功能介绍,为后续软件设计章节打下基础,本章全部教学资源的内容水平为初级,适合学生作为初阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
4.1Linux简介
4.2Linux的shell
4.3Linux的基本操作
4.4Linux的网络命令
05
LinuxC编程工具链及Makefile
【本章目标】本章目标对应课程学习目标3。完成本章学习后,学习者将能够:(1)熟悉并能充分运用LinuxC编程工具链,包括vi、gcc、gdb、ld等;(2)阐述Makefile的基本结构、规则的设计方法,熟悉并能充分运用各类规则来设计自己工程项目的Makefile。【本章活动】课后设置有11道课后测试题,分别测试学生的理解能力、记忆能力、应用能力。本章设置有5个讨论题,分别测试学生的应用能力和分析能力。【等级水平】本章内容主要为对LinuxC编程工具链的详细介绍,为后续软件设计章节打下基础,本章全部教学资源的内容水平为中级,适合学生作为中阶内容学习。
课时
本章的主要视频及课件资源列表如下(4学时):
5.1工具链概述
5.2编辑器vi
5.3gcc简介
5.4gcc的使用
5.5gdb简介
5.6Makefile工作原理
5.7Makefile实例分析
5.8Makefile设计
5.9Makefile综合实例
06
嵌入式软件平台构建
【本章目标】本章目标对应课程学习目标3。完成本章学习后,学习者将能够:阐述嵌入式系统的构成,归纳在一般嵌入式设备上进行环境配置、操作系统内核高效设置的一般方法,阐述bootloader的基本原理,熟悉并能建立起交叉开发环境和linux应用软件设计流程。【本章活动】课后设置有5道课后测试题,分别测试学生的理解能力、记忆能力、应用能力。本章设置有2个讨论题,分别测试学生的应用能力和分析能力。【等级水平】本章内容主要为嵌入式软件平台设计的详细介绍,为后续软件设计章节打下基础,本章全部教学资源的内容水平为中级,适合学生作为中阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
6.1基于Linux的嵌入式平台
6.2BootLoader
6.3应用程序设计流程
07
文件目录和内存
【本章目标】本章目标对应课程学习目标4。完成本章学习后,学习者将能够:阐述文件、目录、内存的编程方法,熟悉并能充分运用相关函数完成对文件、目录、内存的操作。【本章活动】课后设置有7道课后测试题,分别测试学生的理解能力、记忆能力。本章设置有1个讨论题,测试学生的分析能力。【等级水平】本章内容主要为对文件、目录、内存的详细介绍,为后续从事相关软件开发工作打下基础,本章全部教学资源的内容水平为中级,适合学生作为中阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
7.1文件的属性
7.2文件操作
7.3文件操作举例
7.4目录操作
7.5获取目录列表
7.6内存映像
7.7内存映像举例
08
进程与线程
【本章目标】本章目标对应课程学习目标4。完成本章学习后,学习者将能够:阐述进程与线程的概念、区别,熟悉并能充分运用相关函数完成对进程、线程的相关操作。【本章活动】课后设置有7道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有2个讨论题,测试学生的分析能力。【等级水平】本章内容主要为对进程、线程的详细介绍,为后续从事相关软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
8.1进程创建
8.2在进程中启动程序
8.3等待进程结束
8.4线程简介
8.5多线程编程举例
8.6线程同步
8.7线程的属性
09
信号
【本章目标】本章目标对应课程学习目标4。完成本章学习后,学习者将能够:阐述信号的概念和基本使用方法,熟悉并能充分运用相关函数完成对信号的相关操作。【本章活动】课后设置有6道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有2个讨论题,测试学生的分析能力和创造能力。【等级水平】本章内容主要为对信号的详细介绍,为后续从事相关软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
9.1信号简介
9.2发送和捕获信号
9.3更健壮的信号接口
9.4信号集处理
10
进程间通信
【本章目标】本章目标对应课程学习目标4。完成本章学习后,学习者将能够:阐述进程间通信的概念和基本操作方法,熟悉并能充分运用相关函数完成进程间通信的相关操作。【本章活动】课后设置有5道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有2个讨论题,测试学生的分析能力和创造能力、。【等级水平】本章内容主要为对进程间通信的详细介绍,为后续从事相关软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
10.1无名管道
10.2有名管道
10.3信号量简介
10.4信号量举例
10.5共享内存简介
10.6共享内存举例
10.7消息队列简介
10.8消息队列举例
11
套接字
【本章目标】本章目标对应课程学习目标4。完成本章学习后,学习者将能够:阐述套接字的概念和基本操作方法,熟悉并能充分运用相关函数完成套接字的相关操作。【本章活动】课后设置有5道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有2个讨论题,测试学生的理解能力和分析能力。【等级水平】本章内容主要为对套接字的详细介绍,为后续从事相关软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
11.1套接字简介
11.2套接字举例
11.3套接字接口函数
11.4网络套接字
11.5访问系统服务
11.6多客户
12
模块与驱动程序及驱动程序举例
【本章目标】本章目标对应课程学习目标5。完成本章学习后,学习者将能够:阐述模块、设备驱动程序的基本设计方法,熟悉并能充分运用相关函数完成底层硬件设备的驱动程序。【本章活动】课后设置有11道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有2个讨论题,测试学生的理解能力和分析能力。【等级水平】本章内容主要为基于驱动程序,对实际硬件设备进行操作,为同学们将来从事相关底层软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(4学时):
12.1内核模块简介
12.2内核模块设计
12.3Linux设备驱动程序简介
12.4驱动程序的数据结构
12.5虚拟字符设备驱动程序实例
13
STM32编程方法
【本章目标】本章目标对应课程学习目标6。完成本章学习后,学习者将能够:阐述STM32处理器的基本架构、编程方法,熟悉并能充分运用相关函数完成STM32底层硬件的程序设计。【本章活动】课后设置有5道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有2个讨论题,测试学生的理解能力和分析能力。【等级水平】本章内容主要为分析STM32的系统设计方法,对实际硬件设备进行操作,为同学们将来从事相关底层软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
13.1STM32简介
13.2STM32常用片内资源
13.3GPIO编程方法--寄存器方式
13.4LED流水灯实例--GPIO寄存器方式
13.5GPIO编程方法--标准库方式
13.6LED灯闪烁实例--GPIO标准库方式
14
基于Proteus的嵌入式软件仿真
【本章目标】本章目标对应课程学习目标6。完成本章学习后,学习者将能够:阐述Proteus的基本架构、编程方法,熟悉并能充分运用相关函数完成Proteus/STM32底层硬件设备的仿真程序。【本章活动】课后设置有3道课后测试题,分别测试学生的理解能力、记忆能力、分析能力。本章设置有3个讨论题,测试学生的理解能力和分析能力。【等级水平】本章内容主要为基于Proteus的STM32系统仿真,为同学们将来从事相关底层软件开发工作打下基础,本章全部教学资源的内容水平为高级,适合学生作为高阶内容学习。
课时
本章的主要视频及课件资源列表如下(2学时):
14.1Proteus工具介绍
14.2LED流水灯实例
14.3定时器实例
14.4外部按键中断实例
预备知识
本课程的学习者,应具备以下先导知识
1.CorC++语言:学习过相关课程,能独立编写200行以上代码的程序。本课程是支撑课程学习目标2-6的先导知识。
2.计算机组织与结构:学习过计算机组织与结构课程,了解计算机内部5大部件的工作原理。本课程是支撑课程学习目标2和5、6的先导知识。
3.ARM体系结构:学习过任意一种ARM处理器的体系结构,独立编写过汇编语言程序;本课程是支撑课程学习目标2、4、5和6的先导知识。
4.操作系统原理:学习过操作系统原理课程,了解文件、目录、IPC等机制的基本原理;本课程是支撑课程学习目标5和6的先导知识。
5.Linux操作系统:学习过linux操作系统课程,或自己安装、使用过linux操作系统,能熟练使用20种以上常见shell命令;本课程是支撑课程学习目标3-5的先导知识。