您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 嵌入式系统开发技术课程设计指导书
1《嵌入式系统开发技术》课程设计一、课程设计目的嵌入式系统的教学可以分为课堂理论教学、实验教学和课程设计三个层面。这三个层面的目标有所不同。理论学习的主要目标是掌握嵌入式系统的一般原理,例如实时调度策略、自动控制算法等;实验教学的主要目的是掌握嵌入式系统的主要开发流程和基本方法,例如开发工具链的使用、小型应用开发等;课程设计的主要目的是通过实际的嵌入式应用系统开发实例掌握嵌入式系统设计和开发的技能和专门知识,积累实践和工程经验。二、课程设计要求1、学生按题目分组参加课程设计,要求每个学生有明确的分工,每组成员4-6人;2、必须按照工程化开发流程,撰写相应的文档和代码,最后还必须通过课设答辩。课设成果包括设计文档、程序代码等。文档必须按照规定的格式撰写(具体见“五、课程设计写作细则”,否则必须调整好格式才能参加答辩。3、课设答辩必须撰写PPT,简要阐述所完成的主要工作,自我阐述时间控制在8分钟之内;自我阐述之后,还需回答指导教师所提的2-3个问题。4、考核办法及评分比例:设计文档占30%,程序代码占30%,答辩占20%,考勤占20%。三、课程设计流程1、准备阶段针对题目所涉及的基本实验(详见“四、课程设计参考题目”),进行分析研究,掌握课题所需要的基本知识,包括理论部分及实验部分的基础知识。2、需求分析根据课设题目进行需求分析,各小组组织召开需求分析研讨会,充分挖掘潜在的需求。3、设计阶段根据需求分析,进行系统设计,可以分为两步:(1)概要设计概要设计主要完成系统软件模块的划分,给出软件总体框图,分析数据之间的关系,确定所需要的数据结构。(2)详细设计详细设计阶段针对概要设计所划分出的软件模块,设计函数原型、数据结构,确定函数之间的接口,并细化每个函数的设计,给出函数的流程图。4、编码阶段2根据设计阶段所提交的系统设计说明书,编写程序。要注意采用统一的编程规范,注重代码的合理注释;在保证功能的基础上,提高算法的效率。5、程序调试利用实验室的实验箱,对所编写的代码进行调试,从而实现在需求分析说明书中所提出的需求。在调试过程中,应将所遇到的问题记录下来,分析产生的原因,提出解决的办法。6、撰写课设综合论文及答辩课件综合课程各步所得成果,对课程进行总结,撰写设计论文,并撰写答辩PPT,准备答辩。四、课程设计参考题目要求以下各课题都基于嵌入式Linux操作系统来设计。1、网络聊天程序的设计网络聊天程序是目前应用极为广泛的一种网络软件,对于方便人们的交流沟通非常有效,同时,作为一种典型的网络应用,编写网络聊天程序是学习基于Linux的网络编程的有效方法。(1)课程设计目的本课题设计是在使用Linux线程和Socket接口的基础上,编写网络聊天程序,从而掌握Linux应用程序开发的基本方法,练习Linux线程及Socket编程的方法,从而将所学知识融会贯通。(2)课程设计要求本课题所设计的系统要求实现以下功能。实现在服务器的控制下,完成多人聊天,鉴于实验条件的限制,采用单机多终端模拟方式。在服务器端,使用多线程机制,为多个用户服务。服务器能够对要求接入的客户端进行身份识别,完成聊天数据的转发,并能够将不同用户聊天记录存档。要求给出编译所用到的makefile文件。(3)课题人数:2人2、守护进程的设计守护进程是Linux中一类特殊的进程,是实现系统服务的常见方式,也是需要长时间运行于后台的用户程序所常采用的一种形式,因此,学习如何编写守护进程,对于全面掌握Linux程序设计具有重要意义。(1)课程设计目的3本课程设计在掌握Linux进程的创建的基础上,掌握守护进程的实现方式,掌握文件的操作方法,还应掌握日志文件的操作方法。(2)课程设计要求实现守护进程功能。每隔10秒将当前运行的进程信息记录到日志文件中。创建进程,将上述信息在屏幕上显示出来。要求给出编译所用到的makefile文件。(3)课题人数:1人3、多进程程序的设计嵌入式系统软件的实时性是其非常重要的特性,采用多进程设计可以提高系统的效率,增强系统的实时性,因此,掌握多进程编程,是学习嵌入式Linux必须达到的目标(1)课程设计目的本课程设计通过设计多进程程序,掌握创建多进程的方法,掌握通过有名管道实现进程之间的通信,掌握进程中运行现有程序的方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。创建子进程1及子进程2。子进程1创建子进程A、B,子进程1等待子进程A、B退出后退出。子进程A、B之间通过有名管道FIFO1进行通信,实现生产者-消费者功能。子进程2创建子进程C、D,子进程C运行“ls–l”命令,子进程D通过有名管道FIFO1作为消费者与进程A通信。要求给出编译所用到的makefile文件。(3)课题人数:2人4、进程通信机制的应用进程管理是操作系统的重要功能,进程之间要完成相互之间的同步与互斥,实现相互之间的通信,Linux中有多种进程间通信的方式,掌握进程间通信程序的设计,是开发多进程实时应用软件必须的目标。(1)课程设计目的通过本课程设计,掌握进程的创建方法,掌握消息队列、信号量等通信机制的实现方法。(2)课程设计要求4本课题所设计的系统要求实现以下功能。编写3段程序,分别使用1个终端运行它们,使用下面的通信机制完成所需功能。程序1:接受用户输入的信息,包括:help、alarm1、alarm2、quit,并将这些信息分别发送给程序2和程序3。程序2与程序1通过消息队列1进行通信,当收到help信息后,打开帮助文件helpfile,读取其中的内容,显示出来;当收到quit后,退出程序。程序3创建2个子进程。程序3与程序1通过消息队列2进行通信,当收到alarm1时,通过信号量1通知子进程1报警(向屏幕输出报警信息);当收到alarm2时,通过信号量2通知子进程2报警(向屏幕输出报警信息)。要求给出编译所用到的makefile文件。(3)课题人数:3人5、读者-写者问题一个数据文件可以被多个进程共享,其中,有些进程要求读(reader进程),而另一些进程要求对数据进行写或修改(writer进程)。允许多个reader进程同时读一个共享对象,因为读操作不会使数据文件混乱,但绝不允许一个writer进程和其他reader进程或writer进程同时访问共享对象。所谓“读者-写者问题”是指保证一个writer进程必须与其他进程互斥访问共享对象的同步问题。(1)课程设计目的通过本课程设计,要求掌握Linux进程的创建方法,掌握文件的操作方法,掌握信号量的使用方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。创建一个文件sharefile作为共享数据存放的文件。创建2个reader进程及2个writer进程,4个进程共享使用文件sharefile。使用信号量机制,编写“读者-写者问题”的实现代码,使得每个writer进程与其他进程互斥访问共享文件sharefile。要求给出编译所用到的makefile文件。(3)课题人数:1人6、过桥问题一座小桥(最多只能承重2个人)横跨南北两岸,任意时刻同一方向只允许一个人过桥,南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人5通过或歇息。因此,过桥问题就是采用某种机制,使得两岸的人可以顺利地过桥,同时又能保证桥的安全性。(1)课程设计目的本课题设计根据上述对于过桥问题的描述,使用Linux的信号量机制编程解决该问题。通过本课设掌握Linux进程创建的方法,掌握信号量使用方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。编写2段程序,程序1创建3个子进程,分别编号A、B、C,用于模拟从南岸前往北岸的人;程序2创建3个子进程,分别编号C、D、E,用于模拟从北岸前往南岸的人。通过向屏幕输出语句模拟过桥过程,如输出“南往北-到桥中间”表示从南岸前往北岸的人到达了桥中间;输出“南往北-到达北岸”表示从南岸前往北岸的人到达了北岸。通过观察输出语句,可以发现过桥时是否发成冲突。使用Linux的信号量机制,编写解决过桥问题的代码。要求给出编译所用到的makefile文件。(3)课题人数:1人7、和尚挑水问题某寺庙中有小和尚、老和尚若干人。庙内有一水缸,由小和尚提水入缸,供老和尚饮用。水缸可容纳30桶水,每次入水、取水仅为1桶,不可同时进行。水取自同一水井,水井路窄,每次只能容纳一个水桶取水,设水桶个数为5个。和尚挑水问题就是使用某种机制,能够使得若干名老和尚可以顺利地喝到水,若干名小和尚之间能够有条不紊地往水缸中入水。(1)课程设计目的本课题设计根据上述对于和尚挑水问题的描述,使用Linux的信号量机制编程解决该问题。通过本课设掌握Linux进程创建的方法,掌握信号量使用方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。编写2段程序,程序1创建3个子进程,分别编号A、B、C,用于模拟3名老和尚;程序2创建3个子进程,分别编号C、D、E,用于模拟3名小和尚。通过向屏幕输出语句模拟过桥过程,如输出“目前水缸水量为10桶”表示目前水缸中有存水10桶;输出“小和尚取水成功”表示从水井中成功取到1桶水;输出“小和尚倒1桶水到水缸中”表示小和尚将1桶水倒入水缸中。6通过观察输出语句,可以发现执行过程是否发成冲突。使用Linux的信号量机制,编写解决和尚挑水问题的代码。要求给出编译所用到的makefile文件。(3)课题人数:2人8、图书管理系统设计图书馆通常采用电子化的管理系统,可以有效地提高工作效率,减少人为因素造成的错误,可以促进资源的有效利用。(1)课程设计目的通过本课程设计,掌握C语言应用程序的开发方法,掌握常用数据结构的定义、操作等方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。新进图书基本信息的输入。图书基本信息的查询。对撤消图书信息的删除。为借书人办理注册。办理借书手续。办理还书手续使用二进制文件方式存储数据,系统以菜单方式工作(3)课题人数:3人9、学生成绩记录簿设计学生成绩管理是学校的一项重要工作,采用电子化的管理方式,有助于提高工作效率,方便师生的查询与统计,所以,应用非常广泛。(1)课程设计目的通过本课程设计掌握C语言应用程序的设计方法和步骤,掌握使用C语言对文件的操作方法,掌握常用数据结构的使用方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。创建信息链表并以磁盘文件保存;读取磁盘文件并显示输出所有学生的成绩;7按学号或姓名查询成绩;添加成绩记录;修改指定姓名或学号的学生的成绩并可存盘;显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。(3)课题人数:3人10、职工工作量统计系统设计职工工作量是每个企业进行绩效考核的依据,也影响到职工的实际收入,采用计算机统计和计算工作量,可以减少人为的差错,提高职工的积极性。(1)课程设计目的通过本课程设计掌握C语言应用程序的设计方法和步骤,掌握使用C语言对文件的操作方法,掌握常用数据结构的使用,掌握C语言中简单菜单的编程方法。(2)课程设计要求本课题所设计的系统要求实现以下功能。编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。程序按完成数量对他们排序,并确定他们的名次。按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。要求程序用有序链表存储数据信息。(3)课题人数:3人11、销售管理系统设计公司销售管理是一个比较复杂的工作,设计到多种产品,关联到多个销售员,采用计算机来进行管理,可以提高工作效率,避免人为错误,为公司节省管理成本。(1)课程设计目的通过本课程设计掌握C语言应用程序的设计方法和步骤,掌握使用C语言对文件的操作方法,掌握常用数据结构的使用,掌握C语言中简单菜单的编程方法。(2)课程设计要求
本文标题:嵌入式系统开发技术课程设计指导书
链接地址:https://www.777doc.com/doc-3558244 .html