嵌入式操作系统程课程设计报告

关键词: 课程设计 信息技术 网络

嵌入式操作系统程课程设计报告(精选6篇)

篇1:嵌入式操作系统程课程设计报告

目录

一、实习任务和目的„„„„„„„„„„„„1

二、实习基本要求„„„„„„„„„„„„„1

三、实习题目„„„„„„„„„„„„„„„1

四、实习地点„„„„„„„„„„„„„„„1

五、实习内容„„„„„„„„„„„„„„„3

六、实习总结、心得体会„„„„„„„„„„8

七、参考资料„„„„„„„„„„„„„„„9

0

一、实习的任务和目的:

本次实习的目的是在学生已掌握了嵌入式操作系统的知识、对当前嵌入式操作系统的主要种类和应用领域有较清晰的概念的基础上,以嵌入式LINUX操作系统教学内容为指导,以S3C2410经典实验箱为平台,使学生掌握配置、裁剪、移植和维护嵌入式LINUX操作系统的技能和相关理论知识,具备一个初级嵌入式LINUX系统程序员的综合技能。

本次实习的任务是通过教师对嵌入式LINUX的配置、裁剪、移植以及文件系统的移植等内容的讲解,让学生掌握如何搭建嵌入式开发环境、嵌入式LINUX系统移植、文件系统移植以及简单的驱动程序的开发。

二、实习基本要求:

1、了解嵌入式操作系统技术前沿、应用领域、发展趋势及相关领域研究成果;

2、熟悉嵌入式操作系统的特点、分类、基本概念;

3、熟悉主流实时操作系统。深入了解嵌入式LINUX,包括系统配置、裁剪、移植;

4、熟悉并掌握嵌入式文件系统的建立、移植;

5、以嵌入式处理器器S3C2410为例,掌握嵌入式LINUX驱动程序开发的一般方法。

三、实习题目:

1、复习LINUX系统基本操作,常用命令;

2、嵌入式LINU开发基础知识;

3、嵌入式LINUX开发环境的建立;

4、Bootloader移植;

5、LINUX内核的配置、裁剪;

6、LINUX内核移植与编译;

7、建立根文件系统;

8、模块方式驱动程序设计;

9、中断、LED驱动程序设计。

四、实习地点:

应用技术学院五楼四机房。

五、实习内容:

第一部分 嵌入式LINU开发基础知识: 1.1 嵌入式LINUX简介

嵌入式系统的定义为以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它的主要特点是潜入、专用。本次实训的平台是在LINUX下的ubuntu系统上进行的。

1.2 嵌入式LINUX开发平台简介

本次实训的需要一台主机及一块开发板,它们需要满足一定的硬件要求,主机的硬件要求是:有一个25针的并口接口,它用来连接JTAG连线,有一个9针的串口接口,支持网络,至少20GB的硬盘,用到的开发板是s3c2410,它有如下的部件:64MB SDRAM,1MB NOR Flash,64MB NAND Flash,两个网卡,5个串口(内置3个,外扩2个),音频输入输出。2.5寸IDE接口,标准SD/MMC卡座,GPIO按键,外接I2C接口的实时时钟(RTC)芯片。1.3 嵌入式LINUX开发流程

(1)在主机上编译Bootloader,然后通过JTAG烧入单板,(2)在主机上编译嵌入式LINUX内核,通过Bootloader烧入单板或直接启动,(3)在主机上编译各类应用程序,单板启动内核后通过NFS运行他们,经过验证后再烧入单板。1.4 嵌入式LINUX开发环境的建立

开发环境的搭建:硬件开发环境的搭建很简单,将主机与目标板通过JTAG、串口线(接单板上的串口0)、网线(接单板上的网卡0)连接起来,将各类设备连接到目标板上即可,软件的搭建环境相对要复杂的多,时间也要得多,首先第一步需要移植U—boot,然后再来烧写LINUX内核,再创建根文件系统,最后才可以来写相应的驱动程序来进行开发的!第二部分 嵌入式LINUX系统构建:

2.1 Bootloader移植

u-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, u-boot不仅仅支持嵌入式LINUX系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。u-boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。移植过程:

在主机上创建一个文件夹,把以下四个已下载的文件复制到里面,这四个文件分别为:

u-boot.bin,----LINUX操作系统启动的bootloader;uImage,---LINUX操作系统内核;

root.cramfs,----根文件系统;yaffs.tar.bz2,----应用程序压缩包。运行sjf2410-s命令如下:sjf2410-s /f:u-boot.bin。然后按回车,等待烧写完成后,设置开发板的地址与服务器的地址,命令如下:设置本机服务器IP地址:(根据具体主机环境更改IP)setenv serverip 192.168.1.113,设置ARM设备IP地址:(随意设置成与上面主机同一网段IP即可),setenv ipaddr 192.168.1.199,保存变量设置:saveenv。

2.2 内核裁剪与移植

LINUX本次实验目录下存放着已经修改好的博创经典2410平台的内核源码包,将该源码包拷贝到宿主机LINUX系统中,解压至本次实验目录,配置编译生成内核uImage文件烧写到ARM设备中。在内核根目录下,用命令make menuconfig进入配置界面,对系统进行裁剪,如下:

选择硬件系统

配置LCD驱动

网卡驱动

配置NANF Flash驱动

配置文件系统

然后运行 bootm 启动内核即可。2.3 创建根文件系统

解压busybox源码后,进入busybox源代码目录,打开Makefile,修改两个地方,分别是在Makefile文件中的CROSS_COMPILE=后面添加上arm-LINUX-这一行以及ARCH ?=后面改成arm.然后在busybox根目录下使用命令make menuconfig进入配置界面进行配置,如图:

Busybox截图

退出后,使用命令make,make install。用shell脚本创建根文件系统的目录结构,并在想要运行根文件系统的地方运行脚本,需要创建一个文件夹rootfs,里面包括了一些LINUX下的基本的文件。还需要把busybox源码目录下的/etc 的内容拷贝到此处创建的文件夹的etc下,修改拷贝过来的profile文件,修改初始化文件inittab和fstab,修改初始化的脚本文件,init.d/rcS,创建一个空的mdev.conf文件,在挂载根文件系统时用到,再把本机上的passwd,shadow,group文件拷贝过来,把busybox默认安装目中的文件全部复制到这里的rootfs中,会发现多了LINUXrc->bin/busybox,这是挂载文件系统需要执行的,这时,在rootfs目录下,使用命令cp-rvf /rootfs/busybox-1.12.2/_install/*./,,到此,就用busybox创建了一个基本的文件系统。

第三部分 设备驱动程序设计:

3.1 模块方式驱动实验

在这里,需要有两个程序,一个驱动程序,一个用户程序,驱动程序通过用户程序来调用,完成基本的读写以及注册设备号等,在本程序中,用户程序非常简单,驱动程序的核心部分是如下代码所示:

static struct file_operations demo_fops = { owner: THIS_MODULE, write:demo_write, read: demo_read, ioctl: demo_ioctl, open: demo_open, release: };demo_release, 其他的所有程序都是在这个基础上延伸出来的。还有一个注册设备号的函数如示:

register_chrdev(0, DEVICE_NAME, &pxa270_fops);假设本驱动程序的源代码名字是s3c2410_led.c编译驱动程序模块的方法是把驱动程序复制到内核目录下的drivers/char子目录下,在drivers/char/Makefile中增加一行:obl-m +=s3c2410_led.o,然后在内核根目录下执行make modules.就生成drivers/char/s3c2410_led.ko,再把它复制到开发板上,就可以使用insmod s3c2410_led.ko,rmmod s3c2410_led.ko了,此时,就可以执行本用户程序了,结果如下:

3.2 LED驱动实验

本实验的主要目的是写一个驱动程序来点亮开发板上的一颗LED灯。主要的程序核心还是集中在怎么给led灯引脚一个电平以及用户程序中ioctl程序的使用。程序的核心代码如下:

static struct file_operations s3c24xx_leds_fops = {.owner =

THIS_MODULE,.open

=

s3c24xx_leds_open,.ioctl =

s3c24xx_leds_ioctl, };static int s3c24xx_leds_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg){

if(arg > 4){

return-EINVAL;

}

switch(cmd){

case IOCTL_LED_ON:

s3c2410_gpio_setpin(led_table[arg], 0);

return 0;

case IOCTL_LED_OFF:

s3c2410_gpio_setpin(led_table[arg], 1);

return 0;

default:

return-EINVAL;

} } 编译好模块后,复制到开发板目录下即可在开发板下执行,点亮led灯。

命令led_test 1 off/on,如此,就可以关闭或点亮一个led灯了!3.3 中断按键控制LED实验 核心代码如下:

注册中断:request_irq(button_irqs[i].irq, buttons_interrupt, button_irqs[i].flags,button_irqs[i].name,(void *)&press_cnt[i]);注册备:register_chrdev(BUTTON_MAJOR, DEVICE_NAME, &s3c24xx_buttons_fops);中断函数:

static irqreturn_t buttons_interrupt(int irq, void *dev_id){

volatile int *press_cnt =(volatile int *)dev_id;

*press_cnt = *press_cnt + 1;/*

ev_press = 1;

wake_up_interruptible(&button_waitq);

return IRQ_RETVAL(IRQ_HANDLED);} 同理,把它的目标文件放到内核根目录下的drivers/char编译后,把生成的模块文件复制开发板下,即可完成相应的任务,通过按键可以来控制led灯了,同时,可以通过命令cat /proc/devices, cat /proc/interrupt来查看设备及中断的注册情况!

六、实习总结、心得体会:

通过为期将近几周的嵌入式操作系统实习,我收获颇深。这次实习虽然短,可是收获很大,感觉平时上课学到的东西都没有这几天学到的多。正所谓:“实践是检验真理的唯一标准”。这次实习可以形象的概括为:“山重水复疑无路,柳暗花明又一村”。只有自己经历过才会真正的懂,书本知识还远远不够!

此次嵌入式操作系统实习给我最深的体会就是:理论+细心+实践才能在实际 生产中体现所学知识的价值。

在嵌入式行业发展如此快速完善的今天,理论与细心与实际的完美结合才能让自己在专业领域占有一席之地。在实习中,我初步了解了嵌入式处理器S3C2410的工作原理、也加深了对嵌入式处理器S3C2410的认识;也见识了关于嵌入式处理器的一些工作方式等。

几周的嵌入式操作系统实习结束了,做了好几个小实验,有成功也有失败,然而终究还是学会了很多东西。在整个实习期间,我体会到了自己的进步,并且从中也体会到了它的快乐。实习也让我明白了:第一,通过实践真正觉得自己可以做些什么了有点存在的小成就感;第二,通过嵌入式操作系统实习,加强了我们的动手实践能力和设计创新精神。作为信息时代的大学生基本的动手能力是一切工作和创造的基础和必要条件。第三,在嵌入式操作系统实习的这些日子里,大家的团队精神得到了很大的加强,闭门就会造车那是不可能的事情。

在为期两周的实习当中感触最深的便是实践联系理论的重要性,当遇到实际问题时,只要认真思考,运用所学的知识,一步一步的去探索,是完全可以解决遇到的一般问题的。本次实习的目的主要是:使我们嵌入式操作系统及LINUX相关操作有一定的感性和理性认识,培养和锻炼我们的实际动手能力。使我们的理论知识与实践充分地结合,作到不仅具有专业知识,而且还具有较强的实践动手能力,能分析问题和解决问题的应用型技术人才,为以后的顺利就业作好准备。此次实习学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。在此,感谢老师及其他老师的细心指导,也同样谢谢其他各组同学的无私帮助!

七、参考资料:

1、雅默著.构建嵌入式LINUX系统[M].北京:中国电力出版社.2004年

2、孙琼著.嵌入式LINUX应用程序开发详解[M].北京:人民邮电出版.2003年 3、2410经典实验指导书3.2 北京博创兴业科技有限公司2410经典实验箱配套教材

4、韦东山著.嵌入式LINUX应用开发完全手册

北京:人民邮电出版

篇2:嵌入式操作系统程课程设计报告

《嵌入式系统基础》 课程设计报告

设计题目: 系 部: 电子通信工程系 班 级: 学 号: 学生姓名: 成 绩:

2012年 05月

《嵌入式系统基础》课程设计任务书 1.时间:2012年05月14日~2011年05月25日 2.课程设计单位:河南机电高等专科学校

3.课程设计目的:掌握《嵌入式系统基础》课程基本概念、基本原理,具有一定的单片机设计能力,能够利用所学知识完成设计内容,提高实际动手能力。4.课程设计任务:

①参考相关的的书籍、资料,根据设计要求完成原理图设计; ②制作电路板并完成调试; ③绘制软件流程图; ④完成软件设计并完成调试;

⑤作好笔记,对自己所发现的疑难问题及时请教解决; ⑥联系自己所学知识,总结本次设计经验; ⑦认真完成课程设计报告。

5.设计要求

根据所给具体的设计要求来写!

《嵌入式系统基础》课程设计报告

前言:

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

一、硬件设计

1.设计思路及原理框图

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

………………

××××××××××××××××××××××××××××××× 2.采用的芯片功能介绍

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

………………

××××××××××××××××××××××××××××××× 3.原理图

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

………………

×××××××××××××××××××××××××××××××

二、软件设计

1.设计思路

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

………………

××××××××××××××××××××××××××××××× 2.程序流程图(必须要有)

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× ………………

××××××××××××××××××××××××××××××× 3.具体程序(可选,但流程图一定要有)

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

………………

×××××××××××××××××××××××××××××××

心得体会: ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

………………

×××××××××××××××××××××××××××××××

参考文献:

[1] 付家才 电子实验与实践.北京:高等教育出版社130-150页

[2] 李东生、张勇、许四毛 《Protel 99SE电路设计技术入门与应用》电子工业出版社231-300页

………………

格式要求:

标题按照所给模板格式书写。

正文字体为:中文宋体,西文(字母和数字):Times New Roman,小四号字; 段落:两端对齐,首行缩进2字符,行距固定值20磅,其他设置为默认。

篇3:嵌入式操作系统程课程设计报告

随着社会的发展, 社会对毕业生要求越来越高, 要想提高毕业生的就业率, 并使之能更好地适应社会对人才的需求, 高校的部分课程的教学模式与教学方法必须有所改变。嵌入式系统是一门理论性与实践都很强的学科, 它不仅需要前面一些课程理论知识的铺垫, 而且还要求同学们在课余时间加强动手练习, 所以仅凭教师在理论课讲理论, 学生在实验课完成指定实验是不够的。针对我院学生的特点, 课题组结合校园网和信息化技术开发了嵌入式系统课程辅助教学平台, 该平台通过提供与本门课程相关知识的资料、每节课需要预习的知识点, 每节实验课基本实验的演示视频, 并提供预习情况的监督功能来保证同学的预习质量。通过提供嵌入式课程设计管理功能来保证同学课余时间的动手能力, 通过提供交流论坛来为同学提供一个经验交流环境。

2. 系统设计

2.1 系统功能

根据课程建设、学院和学生的要求, 本系统需要完成功能如下:

(1) 课程要求:系统应能显示本门课的课程大纲、教学日历、课程表和相关的上课规定等文件, 让同学在上课之前对本门课的相关要求有一定的了解, 并能在系统内发布相应的公告信息。

(2) 资料共享:可以上传教师上课课件、相关辅导材料和工具软件。上传的资源不要求多, 但必须精, 因为一门课在一个学期学习内学习时间有限, 繁多的教学资料会使得同学抓不住重点。

(3) 预习管理:任课教师在课程开课前按照教学大纲和教学日历, 将上课内容按章划分好知识点, 发布在网上供学生阅读, 实验课应将实验指导书, 相关工具介绍、实验的基本操作视频放在网上, 以便学生能提前预习。学生通过用户名登录后, 对于课前预习知识点来说, 学生每次浏览知识点后, 系统就会记录下来其是否浏览过。对于实验视频演示系统, 每次学生观看, 系统会记录下来其是否浏览过, 浏览了多长时间, 并可以将此作为评判平时成绩因素之一。

(4) 交流论坛:为学生提供一个相关交流学习的一个空间, 老师也可利用解答版块解决学生提出的问题, 交流论坛不但可以回答学生在学习过程当中遇到的问题, 也可以将被解答过答案留给以后学习本门课学生的作为参考。

2.2 系统框架

本系统共五个功能模块, 分别为:公告管理模块、资源管理模块、大作业管理模块、交流论坛模块和用户管理模块。系统框图如图1所示。

3. 系统实现

本系统是在Windows XP操作系统下, Adobe Dreamweaver CS6软件环境下, 以PHP为编程语言开发完成的, 数据库采用My Sql 5.0, 系统采用通用B/S结构。

3.1 公告管理模块

该系统包括发布公告、公告管理等子功能模块。该模块可以由任课教师和管理员进行操作。

(1) 公告管理子模块

主要发布上课相关公告, 交作业时间。为了保证是学生亲自动手完成的, 每次学生交作业后, 进行答辩, 答辩的时间、地点在公告里进行通知, 每次答辩成绩和实课成绩通过公告进行发布。

(2) 公告管理子模块

主要完成公告的删除与修改功能。

3.2 资源管理模块

该系统包括上传资料、管理资料、课前预习等子功能模块。

(1) 上传资料子模块

主要完成教师上传课件、课程相关资源、实验视频等相关资料, 此子模块的功能可以由任课教师和管理员进行操作, 本子模块对资料的大小没有限制。

(2) 管理资料子模块

主要完成对上传资料的管理, 包括修改资料名称、修改资料分类、删除上传资料等。本子模块可以由管理员和任课教师进行操作。

(3) 课前预习子模块

该子模块主要完成对学生预习情况记录的功能, 如果学生下载过理论课预习资料视其阅读过, 如果学生在上实验课前浏览过教学视频且浏览时间为视频最后时间, 视为浏览过。

3.3 大作业管理模块

该模块包括教师出题子模块、学生选题子模块、学生分组子模块和上传大作业资料子模块。

(1) 教师出题子模块

教师在此子模块里出大作业的题目, 学生根据自己的兴趣选择大作业题目。

(2) 学生选题子模块

学生通过在本模块里选择自己的大作业题目。

(3) 学生分组子模块

学生选择题目之后按照教师规定的功能模块进行分组, 学生分组之后将组信息填在本子模块里。

(4) 上传大作业资料子模块

学生完成大作业后, 将答辩用PPT、相关程序和课程论文传至本模块。

3.4 交流论坛模块

该模块采用Discuz X2.5论坛模版, 主要包括前沿技术、问题讨论、老师答疑和资源共享等版块。

在这个模块里, 学生们可以讨论问题, 也可以给任课教师留言, 由任课教师回答相关问题。

3.5 用户管理模块

本系统不能用户自己注册, 所有注册均由管理员进行添加, 该子模块包括学生用户管理子模块、教师用户管理管理子模块和管理员用户管理子模块。

4. 结束语

本系统在本学期开发完成, 目前正在使用, 系统操作比较稳定, 基本上能满足辅导要求, 但是还存在如上传的资料不够精简、预习知识点不够全面等问题。

参考文献

[1]孙宝军.课程建设与大学生毕业设计互溶性的思考[J].现代计算机, 2013, 13:38-40.

[2]林祥果.基于“项目导向, 任务驱动”的高职嵌入式系统课程开发实践[J].顺德职业技术学院学报, 2012, 3:50-53.

[3]郑广海, 曲英伟.“嵌入式Linux操作系统及实践”课程改革[J].计算机教育, 2012, 4:37-40.

[4]潘巧书.计算机教学辅助系统的应用研究[J].中国电子商情:科技创新, 2013, 17:26-26.

篇4:《嵌入式系统》课程教学初探

【关键词】嵌入式系统;嵌入式技术;ARM微处理器;开发板;软件

一、目前嵌入式系统教学概况

嵌入式系统概念的提出已经有相当长的时间,其历史几乎和计算机的历史一样长。但在以前,它主要用于军事和工业控制领域,所以很少被人们关注和了解。随着数字技术、大规模及超大规模集成电路的发展和功能更强的操作系统的出现,它才被广泛应用于航天、航空、工业控制、智能手机、消费类电子产品、信息家电、安防监控、医疗仪器、汽车电子等领域。目前,嵌入式系统产品正不断渗透各个行业,并以其应用领域广、人才需求大等优势,获得更大的关注,特别是将来3G和物联网的普及与推广,应用前景非常好。基于此,我国一些高校的信息类专业相继开设了有关《嵌入式系统》的课程,但大多数是以选修课的形式开设的,课时量少,学校、教师和学生也没有对该课程的教学和学习给于足够的重视,导致教学效果不理想。尽管社会对嵌入式人才需求大,但因为我们的不重视,使得学生在激烈的就业竞争中失去了很多机会。

二、嵌入式系统教学现状分析及对策

《嵌入式系统》课程一般作为选修课开设且一般在大四开设,学生接触嵌入式技术时间较晚,对其没有基本的认识,在有限的课时内也只能对其有一个大致的了解,相比大三、大四学生们学习JAVA、C++的热情,嵌入式的学习气氛就显得很冷清。加之嵌入式系统课程要求的知识面广,涉及基础课程多(与电子类专业相关的基础课程有数字电子技术、电子设计自动化(EDA)、单片机原理、可编程逻辑器件、DSP原理及应用等,与计算机类专业相关的课程有C语言程序设计、计算机组成原理、计算机系统结构、微机原理、数据结构、操作系统等,如果要进行嵌入式应用软件开发的还应掌握计算机网络、网络编程、数据库原理及软件工程等课程),所以,学生学习嵌入式系统课程就存在一定的难度,学习热情也不高。对此,我们应该给与足够的重视,积极帮助学生能在嵌入式领域占有自己一席之地。首先,在对学生进行入学教育专业介绍时,要强调嵌入式方面的就业前景,目前国内外这方面的人都很稀缺,与应用软件开发的行业不同,嵌入式领域人才的工作强度通常低一些,但收入却高一些,利用这样的好的就业前景刺激同学们好好学习。再者,要强调嵌入式系统课程涉及的先行课程多,一定要打好基础;还有,学生在学校学习期间,老师们可以多开展期嵌入式技术的讲座及嵌入式产品的展示,比如无线点餐系统、车载GPS定位、智能家居等;最后,在学生大一、大二学习期间,各科任课教师要督促学生扎扎实实的学好每一门课程,以便为后续课程打好基础。在竞争如意激烈的今天,学生们也该从进入大学就逐步规划自己的职业生涯。

三、《嵌入式系统》课程教学的内容、教学方法的改进

嵌入式系统融合了电子、计算机、微电子等多种学科和技术。对于什么是嵌入式系统,还没有一个明确的定义。嵌入式系统一般定义为以应用为中心,以计算机技术为基础,软硬件可裁减,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。

1.《嵌入式系统》课程教学的内容

《嵌入式系统》的教学通常以32位微处理器为平台,32位的微处理器主要有ARM、MIPS、POWER PC,目前国内的大多数高校都是以介绍ARM微处理器为主,教学的内容主要包括ARM微处理器内核的介绍、ARM的汇编指令和汇编程序设计、嵌入式系统的C语言设计和嵌入式操作系统、嵌入式Linux开发环境及其在ARM上的移植、设备驱动程序和用户图形界面GUI等内容。在试验内容的安排上,通常包括ARM汇编语言的程序设计、BootLoader的移植、嵌入式操作系统内核的移植、UCOS II、LINUX、WINCE等嵌入式操作系统下的C语言驱动程序设计和应用程序设计等。

2.教学方法的改进

对于嵌入式课程的学习,很多同学都认为很难,除了前面提及到的它涉及的基础学科较多以外,一个很重要的原因是以传统的教学模式讲述的内容学生完全不理解,比如宿主机、目标板、交叉开发环境、GCC交叉编译器arm-Linux-gcc、引导装载程序BOOTLOADER、Linux内核裁减等。这就需要教师在上课时将嵌入式Linux开发流程给学生作演示,包括建立开发环境,下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-μclibc-gcc),或者安装产品厂家提供的交叉编译器;配置开发主机;建立引导装载程序BOOTLOADER;下载针对所使用的CPU的Linux操作系统内核、再添加自己的特定硬件的驱动程序;建立根文件系統;开发应用程序;烧写内核、根文件系统、应用程序;发布产品。学校还可聘请企业讲师讲述部分课程以使学生们可以了解到嵌入式的最新的技术。关于嵌入式系统的实验部分,需要有相应的开发板,有的学校实验条件还不成熟或实验设备不足,那么可以在主机上安装模拟器来模拟开发板,使学生了解将嵌入式的开发流程即可。

四、教学保障

前面已提及,嵌入式的教学过程及实验环节都离不开计算机及开发板,这就需要学校投入一定的资金来改善教学和实验条件。因为嵌入式这方面的人才较少,高校教师中也有很多人从未接触过嵌入式相关技术,所以,对于高校要积极寻求与嵌入式相关的企业的合作,以进行师资的培训,从企业吸收最新的嵌入式的技术和成果用于教学过程中。

五、就业及培训

嵌入式系统是一个软件与硬件紧密结合的学科,从事嵌入式开发的人员主要有两类。一类是电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系密切的最底层软件,如BootLoader、Board Support Package,最初级的硬件驱动程序等。另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

从事嵌入式开发的好处是:(1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高;另一方面,是因为这一领域较新,目前发展太快,掌握这些新技术的人当然很难找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。(2)与应用软件开发领域不同,嵌入式领域人才的工作强度通常低一些,但收入却高于普通的应用软件开发人员。搞嵌入式系统的公司,所开发的产品通常是通用的,不会因客户的不同而修改。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围基本上固定,时间越长越有经验。

如果以后想从事嵌入式技术方面的工作,那就需要进行这方面的培训,因为教学计划中的很少的课时量只是让学生们对嵌入式系统有一个大致的认识,而自学的话又不知道该从哪里下手。现在很多培训机构都有脱产的嵌入式就业班,大概学习四五个月的时间就可推荐就业,对于想从事嵌入式开发的学生来说,无疑是一个比较好的途径。

六、总结

嵌入式是一个有很大发展潜力的学科,各个高校也相继开设了嵌入式系统的课程,笔者仅从自己多年的嵌入式教学的角度上提出自己的一些看法,希望能够抛砖引玉,听到同行们更精彩的见解。

参考文献:

[1]刘艺,许大琴,万福编著.嵌入式系统设计大学教程[M].人民邮电出版社,2008(11).

篇5:嵌入式系统课程设计

设计题目:用键盘控制LED显示不同图形

中央民族大学 二零零八年十月三十一日

一、设计目的

了解LED点阵和矩阵键盘的工作原理。

二、设计内容

编写程序控制用矩阵键盘控制LED点亮,产生不同的图形。

三、设计方案

功能概述:

本设计要实现的功能是通过键盘控制LED点阵图形显示,如果键盘输入0-9十个数字时显示相应的数字,如果输入其他的键,则显示“+”号。

1、程序设计思路

本设计要实现键盘控制LED点阵图形显示,就必须要编写键盘和LED点阵的程序。先通过扫描矩阵键盘,得到键盘值,然后再调用点阵显示子函数,根据扫描的键盘值,在LED点阵上显示不同的图形。

2、主程序设计

主程序要实现的功能是矩阵键盘扫描,得到键盘值,然后把值传给LED显示函数。

程序流程图如下:

3、LED点阵显示函数设计

本函数要实现的功能是根据键盘的值,在LED点阵上显示不同的图形。如果键盘的输入值为0-9则显示相应的数字,如果输入的是其他值,则显示“+”。本程序采用二维数组存放要显示的图形的字模,然后再通过逐行扫描LED点阵,把要显示的图形分8次显示,一次显示一行,利用人眼的视觉暂留效应,是人看到的是一个图形一次显示出来,通过一个循环控制图形显示的时间。程序流程图如下:

4、点阵图形设计

根据8*8 LED点阵的原理,8X8 点阵共需要64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1 电平,某一行置0 电平,则相应的二极管就亮;

先绘制出要显示的图形如下:

根据图形中点亮的LED灯的位置,得到相应图形的16进制数,存放在二维数组Buf1[11][8]中。

所以要显示的图形的字模如下:

buf1[11][8]={ {0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0

{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1

{0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2

{0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3

{0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4

{0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5

{0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6

{0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7

{0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8

{0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9

{0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00}

//+

};

四、程序源代码

//*************************************************************** #include #include #include #include // open()close()#include // read()write()#include

#define DEVICE_NAME “/dev/led_ary_ctl” #define DEVICE_NAME1 “/dev/keypad”

void Key(unsigned char b[]);

//------main----int main(void){

int fd;

int ret;

unsigned char buf[2];

double x;

char pre_scancode = 0xff;

printf(“n start keypad_driver test nn”);

fd = open(DEVICE_NAME1, O_RDWR);

printf(“fd = %dn”,fd);

if(fd ==-1){

printf(“open device %s errorn”,DEVICE_NAME1);}

else {

buf[0]=0x22;

while(1)

{

read(fd,buf,1);

if(buf[0]!= pre_scancode)

{

if(buf[0]!=0xff)

{

printf(“key =%xn”,buf[0]);

Key(buf);

}

}

pre_scancode = buf[0];

usleep(50000);

}

// close

ret = close(fd);

printf(“ret=%dn”,ret);

printf(“close keypad_driver testn”);}

return 0;}// end main //***************************************************************************** //---------------void Key(unsigned char b[]){ int fd;

int ret;

int i,j,k;

unsigned char buf[2];

unsigned char buf2[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char buf1[11][8]={{0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0

{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1

{0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2

{0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3

{0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4

{0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5

{0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6

{0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7

{0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8

{0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9

{0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00}

//+

};

// begin of led ary

buf[0]= 1;

buf[1]= 0;

if(b[0]<=9)i=b[0];else

i=10;

fd = open(DEVICE_NAME, O_RDWR);

printf(“fd = %dn”,fd);

if(fd ==-1)

printf(“open device %s errorn”,DEVICE_NAME);

else {

for(j=0;j<=5;j++)

{

for(k=0;k<8;k++)

{

buf[0]=buf1[i][k];buf[1]=buf2[k];

write(fd,buf,2);

}

usleep(1);

}

// close

ret = close(fd);

printf(“ret=%dn”,ret);

printf(“close led_driver testn”);} } //-

五、设计结果

实现键盘控制LED点阵显示,输入0-9十个数字时显示相应的数字,如果输入其他的键,则显示“+”号。

六、心得体会

通过本次实验,我们对linux下的实验更加熟悉了,对LED点阵显示和矩阵键盘的原理有了深入的了解,掌握了点阵图形的设计方法和键盘的输入的读取,并把二者结合起来,实现了键盘控制点阵图形现实。

篇6:嵌入式操作系统程课程设计报告

【课程编号】:11278131

【适用专业】:电子、电信

【学 分 数】:1

【总 学 时】:30

一、课程设计的目的1、通过“嵌入式系统”课程设计,学习、体会、熟悉嵌入式系统相关的项目研究开发的完整过程:课题的提出与论证、调研、文献阅读、方案比较与选择、嵌入式系统程序编写与调试,报告撰写、课题答辩。

2、掌握综合运用所学知识分析、解决实际问题的一般方法。

3、培养学生综合分析问题、解决问题和独立工作的能力。

4、通过课程设计及答辩全过程的训练,加强老师与学生之间学生与学生之间知识的相互交流,互相渗透,培养勤奋求实的良好学风。

二、课程设计要求

1、要求同学们以满腔的热情、科学的态度,严谨的作风、高度的责任感从事课程设计工作;不得敷衍了事、马马虎虎、得过且过;提倡周密思考、大胆创新,反对生搬硬套、墨守陈规;提倡共同研究,反对相互抄袭。

2、要求遵守作息时间,遵守学校的各项规章制度,确保设计顺利、高质量地完成。

三、课程设计安排

学生每人选择一个题目,每个题目为1个学分。

1.题目1:基于嵌入式系统下的室内温度/湿度调节系统设计

2.题目2:嵌入式智能家居系统:图像采集与存储

3.题目3:嵌入式系统下的MP3制作

4.题目4:嵌入式系统GPS定位系统

5.题目5:嵌入式GPRS短信收发

6.题目6:嵌入式IC卡读写系统设计

7.题目7:蓝牙无线通信系统设计

8.题目8:红外通信系统设计

9.题目9:基于CAN总线的现场总线网络设计

10.Web远程监控系统1:-web嵌入式服务器设计

11.Web远程监控系统2:-远程控制接口

四、选题原则:学生根据自己的实际情况在给定题目中选一个题目(1学分)进行设计,或者自行选择感兴趣的课题。若题目相同,内容不可雷同。

五、成绩评定:

指导教师依课程设计说明书撰写情况及整个课程设计中学生的表现,综合给出成绩。

六、相关参考资料

教材:

Rick Grehan等.32位嵌入系统编程,中国电力出版社,2001.参考书:

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:基于ARM嵌入式的远程监控系统设计 下一篇:基于嵌入式ARM平台的远程IO数据采集系统的研究和开发