1、嵌入式软件开发教学大纲一、课程概况所属专业:计算机科学与技术开课单位:数学计算机科学学院课程类型:专业方向课程课程代码:07492090开课学期:6学分:2学时:课堂讲授16+实验核心课程:否32+课外自主3拟使用教材:陈文智.嵌入式软件开发.北京:高等教育出版社.20152国内(外)现有教材:1周立功.ARM嵌入式系统软件开发实例(一).北京:北京航空航天大学 出版社.2004.12何先波,李薇,罗建.嵌入式系统软件开发技术实验教程.北京:清华大学 出版社.2011.73姜先刚,袁祖刚.嵌入式Linux系统开发教程.北京:电子工业出版社.2016.8 学习参考资料1何坚.嵌入式软件开发技术.
2、北京:科学出版社.2014.92华清远见嵌入式学院3华清创客学院.4嵌入式培训I . : l/qianrenshi.html#bbdss-qrs二、课程描述本课程为计算机科学与技术专业嵌入式系统与物联网方向课程。学习嵌入式 软件开发的基本知识、方法和技术,内容包括:嵌入式软件开发概述,嵌入式软 件开发环境,嵌入式软件编程,嵌入式软件调试,Boot Loader程序设计,嵌入 式系统级软件设计(包含嵌入式操作系统内核设计、嵌入式文件系统设计、嵌入 式驱动程序设计和嵌入式数据库设计),嵌入式GUI及应用程序设计,嵌入式程 序代码优化,嵌入式软件测试,以及嵌入式应用程序创新设计。学 时:2学时。教学
3、方法:演示法/讲授/现场指导。实验类型:设计性实验。实验八:嵌入式程序代码优化(授课时间:第六学期第十四周) 教学目标:掌握嵌入式程序代码优化方法。主要内容:嵌入式程序代码优化。学 时:2学时。教学方法:演示法/讲授/现场指导。实验类型:验证性实验。实验九:嵌入式软件测试(授课时间:第六学期第十五周) 教学目标:掌握嵌入式软件测试方法。主要内容:嵌入式软件测试工具使用。学 时:2学时。教学方法:演示法/讲授/现场指导。实验类型:验证性实验。实验十:嵌入式应用程序创新设计(授课时间:第六学期第十六周) 教学目标:完成嵌入式应用程序创新设计。主要内容:设计一个嵌入式应用系统。学 时:4学时。教学方
4、法:演示法/讲授/现场指导。实验类型:设计性实验。1、课程教学中可随嵌入式软件开发技术的开展进行内容调整。2、可适当布置课外自主学习内容。.三、课程目标了解嵌入式软件的组成要素与结构,掌握嵌入式软件开发的思想和方法,掌 握嵌入式软件开发的过程和技巧,熟练使用相关嵌入式软件开发工具,具备初步 分析问题和解决问题的能力,能够从事嵌入式软件开发。四、教学要求依据本课程的性质、目的及任务,教学基本要求是紧扣多媒体教学、课后答 疑、实验几个主要环节,要求学生系统地了解、熟悉和掌握嵌入式软件开发基本 方法,能开发嵌入式软件系统。五、考核方式及要求为实现课程教学目标,本门课程采用过程性考核和期末考核结合的方
5、式进行 考核。过程性考核占总成绩70%,其中:考勤占10%,随机点到,每人不少于3 次,其中无故缺席1次,按无考勤成绩计算;课程实验9次,占70%,实验时间 和内容根据教学进度由教师安排;课程作业3次,按批改成绩折算,占20%。期 末考核占总成绩30%,完成一个嵌入式应用系统设计,为开卷考试。六、课程内容课堂教授第一章:嵌入式软件开发概述(授课时间:第六学期第一周)教学目标:了解嵌入式系统的历史与现状、嵌入式系统的特点和应用领域和开展 方向;掌握嵌入式软件的组成与特点;了解嵌入式软件的开展趋势; 掌握嵌入式软件开发流程和嵌入式软件的开发管理。教学重点:嵌入式软件的组成与特点;嵌入式软件开发流程
6、和嵌入式软件的开发 管理。 教学难点:嵌入式软件的组成。学 时:课堂教学1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式系统概述;(2)嵌入式软件的组成与特点;(3)嵌入式软件的开展趋势;(4)嵌入式软件开发流程;(5)嵌入式软件的开发管理。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式软件的组成与特点,嵌入式软件开发流程和嵌入式软件的 开发管理等知识点练习题。第二章:嵌入式软件开发环境(授课时间:第六学期第二周至第三周)教学目标:了解嵌入式软件开发特点和嵌入式软件开发模式;掌握宿主机环境、 目标机环境和交叉编译工具链。教学重点:交叉编译工具链。教学难点:交叉编译
7、工具链。学 时:课堂教学2学时,课外自主学习时间不少于1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式软件开发模式;(2)宿主机环境;(3)目标机环境;(4)交叉编译工具链。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式软件开发模式、交叉编译工具链等知识点练习题。第三章:嵌入式软件编程(授课时间:第六学期第四周至第五周) 教学目标:了解嵌入式汇编语言基础、嵌入式高级编程知识,掌握嵌入式开发工 程;了解嵌入式汇编编程技术;掌握嵌入式高级编程技术;掌握高级 语言与汇编语言混合编程。教学重点:嵌入式开发工程;嵌入式高级编程技术;高级语言与汇编语言混合编 程。教学难点:高
8、级语言与汇编语言混合编程。学 时:课堂教学2学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式编程基础;(2)嵌入式汇编编程技术;(3)嵌入式高级编程技术;(4)高级语言与汇编语言混合编程。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式开发工程,嵌入式高级编程技术,高级语言与汇编语言混 合编程等知识点练习题。第四章:嵌入式软件调试(授课时间:第六学期第六周)教学目标:了解GDB调试器;掌握GDB远程调试、KGDB内核调试、网络调 试工具tcpdump; 了解典型嵌入式集成开发环境。教学重点:GDB远程调试;KGDB内核调试;网络调试工具tcpdump。教学难点:GDB
9、远程调试;KGDB内核调试;网络调试工具tcpdump。学 时:课堂教学1学时,课外自主学习时间不少于1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)GDB调试器;(2)远程调试;(3)内核调试;(4)网络调试;(5)典型嵌入式集成开发环境。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成GDB远程调试,KGDB内核调试,网络调试工具tcpdump等知 识点练习题。第五章:BootLoader程序设计(授课时间:第六学期第七周)教学目标:理解Boot Loader基础知识;了解Boot Loader典型结构;掌握Boot Loader基本设计。教学重点:Boot Loader基
10、础知识;Boot Loader基本设计。教学难点:Boot Loader基本设计。学 时:课堂教学1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1) Boot Loader基础知识;Boot Loader 典型结构;(2) Boot Loader 基本设计。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成Boot Loader基础知识等知识点练习题。第六章:嵌入式系统级软件设计(授课时间:第六学期第八周至第九周)教学目标:理解嵌入式操作系统内核设计;掌握嵌入式文件系统设计、嵌入式驱 动程序设计;了解嵌入式数据库设计。教学重点:嵌入式操作系统内核设计;嵌入式文件系统设计、嵌入式驱动
11、程序设 计。教学难点:嵌入式操作系统内核设计。学 时:课堂教学2学时,课外自主学习时间不少于1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式操作系统内核设计;(2)嵌入式文件系统设计;(3)嵌入式驱动程序设计;(4)嵌入式数据库设计。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式操作系统内核设计,嵌入式文件系统设计,嵌入式驱动程 序设计等知识点练习题。第七章:嵌入式GUI及应用程序设计(授课时间:第六学期第十周至第十一周)教学目标:了解嵌入式GUI设计需求和嵌入式GUI设计原那么;掌握嵌入式GUI 体系结构设计;了解基于主流GUI的应用程序设计。教学重点:嵌入式G
12、UI体系结构设计。教学难点:嵌入式GUI体系结构设计。学 时:课堂教学1学时,课外自主学习时间不少于1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式GUI设计概述;(2)嵌入式GUI体系结构设计;(3)基于主流GUI的应用程序设计。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式GUI体系结构设计等知识点练习题。第八章:嵌入式程序代码优化(授课时间:第六学期第十二周)教学目标:了解嵌入式程序代码优化基本方法。教学重点:嵌入式程序代码优化基本方法。教学难点:嵌入式程序代码优化基本方法。学 时:课堂教学1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式程序
13、代码优化概述;(2)提高代码效率;(3)减少代码尺寸;(4)有效使用内存;(5)降低代码能耗。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式程序代码优化基本方法等知识点练习题。第九章:嵌入式软件测试(授课时间:第六学期第十三周至第十四周)教学目标:了解嵌入式软件测试基础知识;掌握静态测试技术、白盒测试技术、 黑盒测试技术等嵌入式软件测试技术;了解测试与分析工具。教学重点:嵌入式软件测试技术。教学难点:嵌入式软件测试技术。学 时:课堂教学2学时,课外自主学习时间不少于1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)嵌入式软件测试基础;(2)嵌入式软件测试技术;(3)测试与
14、分析工具。学习方法:听讲记录,小组讨论,上网调研。课后作业:完成嵌入式软件测试技术等知识点练习题。第十章:嵌入式应用程序创新设计(授课时间:第六学期第十五至第十六周)教学目标:掌握设计任务和设计过程。教学重点:设计过程。教学难点:设计过程。学 时:课堂教学1学时。教学方法:讲授法、演示法、讨论法。主要内容:(1)设计任务;(2)设计过程。学习方法:听讲记录,小组讨论,上网调研。课后作业:。实验实验一:建立开发团队和制定管理规范(授课时间:第六学期第一周至第二周) 教学目标:学会建立开发团队和制定管理规范。主要内容:建立开发团队和制定管理规范。学 时:2学时。教学方法:演示法/讲授/现场指导。实
15、验类型:演示性实验。实验二:开发环境构建(授课时间:第六学期第三周至第四周) 教学目标:掌握开发环境构建方法。主要内容:开发环境构建。学 时:2学时。教学方法:演示法/讲授/现场指导。实验类型:验证性实验。实验三:嵌入式软件编程技术(授课时间:第六学期第五周至第六周) 教学目标:掌握嵌入式软件编程技术。主要内容:汇编和C语言等嵌入式软件编程技术。学 时:2学时。教学方法:演示法/讲授/现场指导。实验类型:验证性实验。实验四:调试技术演练(授课时间:第六学期第七周至第八周) 教学目标:掌握调试技术。主要内容:调试技术演练。学 时:2学时。教学方法:演示法/讲授/现场指导。实验类型:验证性实验。实
16、验五:设计与实现Boot Loader(授课时间:第六学期第九周至第十周) 教学目标:掌握Boot Loader设计与实现方法。主要内容:设计与实现Boot Loader。学 时:2学时。教学方法:演示法/讲授/现场指导。实验类型:验证性实验。实验六:嵌入式操作系统内核与驱动程序(授课时间:第六学期第十一周至第十二周) 教学目标:掌握嵌入式操作系统内核与驱动程序编制方法。主要内容:编制嵌入式操作系统内核与驱动程序。学 时:4学时。教学方法:演示法/讲授/现场指导。实验类型:综合性实验。实验七:嵌入式GUI应用设计(授课时间:第六学期第十三周) 教学目标:掌握嵌入式GUI应用设计。主要内容:嵌入式GUI应用设计。