linux课程设计论文

2021-04-09 论文

  linux课程设计的相关论文同学们是怎么样写的呢?大家可以看看下面的论文,欢迎各位阅读哦!

  linux课程设计论文

  摘要:随着嵌入式技术、物联网技术的高速发展以及以嵌入式Linux为操作系统的应用领域的增多,嵌入式Linux设计课程的教学也在各大院校开展起来。介绍了嵌入式Linux设计概念、系统架构、设计内容及发展方向,设置了嵌入式Linux设计课程内容,包括嵌入式Linux系统体系结构、引导程序、内核、设备驱动程序、文件系统及图形界面三部分内容,对培养适应社会需求的嵌入式技术人才具有重要意义。

  关键词:嵌入式Linux;体系结构;课程研究

  近年来嵌入式Linux系统发展较快,在中国,以Linux为基础的嵌入式操作系统也很活跃,其中中软Linux、红旗Linux、东方Linux是业界的代表。嵌入式Linux系统的应用范围很广,尤其随着智能手机及物联网系统的发展,基于嵌入式Linux系统的电子产品已进入人们的生活,如基于Linux的Android系统,基于Linux的智能家居系统、物联网系统,3G行业应用如移动视频监控-车辆应急指挥调度、远程的区域监测、安防领域、移动电子商务等。嵌入式Linux是把Linux内核移植到一个专用嵌入式设备的CPU和主板上。嵌入式Linux和桌面Linux提供的API函数与内核源代码都是相同的,嵌入式Linux开发主要通过在桌面Linux利用源码编辑器如vi编写源代码,通过交叉编译器编译出能在嵌入式开发平台如手机、机顶盒或智能家居等产品上运行的可执行文件。嵌入式Linux开发的工具还包括调试器、CVS等项目管理软件等。

  一、嵌入式Linux设计课程概述

  嵌入式Linux设计是电子信息专业及相近专业的一门专业课,其目的是使学生了解主流嵌入式系统开发软件嵌入式Linux驱动程序的设计和开发过程。学生熟悉掌握嵌入式系统常用的硬件接口时序、电气特性;掌握针对硬件的Linux驱动程序实现方法,包括I/O口、CAN总线、触摸屏、IIC、异步串口、音频、显示、USB、以太网及Flash的使用及驱动程序的编写。[1]熟悉嵌入式Linux的中断处理、Boot Loader和内核电启动过程。

  二、嵌入式Linux设计课程研究

  1.嵌入式Linux系统体系结构

  (1)嵌入式Linux系统硬件组成。核心板:采用高性能嵌入式处理器、Mobile DDR、NAND Flash、NOR Flash;外围电路:带触摸屏真彩色宽屏LCD、USB HOST、UART,RS232端口、立体声语音输出、耳机、自适应10/100M网卡、板载GSM/GPRS模块、步进电机电路模块,搭载射频模块;扩展模块:主/从蓝牙模块、Zigbee模块、传感器部分。

  (2)软件组成。操作系统:Linux2.6.21,Linux2.6.38。引导程序:U-boot.1.1.6。图形界面:QT 4.6。嵌入式Linux系统的开发流程。元器件选型:根据要实现的系统功能及目前市场上可选用的元器件来设计电路。原理图编制:用Protel等相关电子CAD工具将设计好的电路图在电脑中绘制出来。印制板设计:在Protel等工具中画好芯片及电阻、电容等封装,将原理图转换成PCB板图,并完成布线。样板试制:把PCB板图进行制板,并焊接好相应元器件。硬件功能测试:在焊接元器件时要按功能模块顺序焊接,焊接好一个模块后接着测试其功能,发现问题及时解决。如通过USB供电模块对应的USB接口及降压芯片、电阻、电容等焊接完后,将USB接口插到电脑USB接口处,并通过万用表测量USB接口引脚电压,如果显示5V即为正确电压,说明电路设计及焊接都成功。如果以后其他部分出现问题时可以排除这部分芯片的嫌疑。编写引导程序:分汇编语言部分和C语言部分,实现硬件初始化和引导操作系统的功能。操作系统移植:在官网下载最新Linux版本,根据本设备硬件配置裁剪Linux源代码并修改。文件系统:没有文件系统,内核不完整,最后内核启动后要找文件系统,如果没有文件系统会提示失败。通过文件系统管理硬盘,下载应用程序。驱动程序编写:用户程序无法直接操作用户态,要用中间层软件―设备驱动程序。用户程序必须通过系统调用,间接调用驱动程序访问硬件。API设计与开发:API设计是为了让应用程序员在开发时更方便,提供了绘图接口函数、文件接口函数及控件函数等。应用程序设计:根据功能需求设计如手机游戏、PDA基本管理功能、机顶盒信号处理等。[2]系统联调:产品所有功能设计好后,整体加载到硬件设备中,调试其功能稳定性。样机支付:加工外壳,封装好设备,可以投入市场。

  该部分要在课程讲解的基础上带领学生通过实践课或课程设计完成一项电子产品的整体设计,让学生真正体会到嵌入式产品是什么,怎么移植嵌入式Linux系统。

  2.引导程序

  引导程序Bootloader是系统加电后运行的第一段代码,也就是在内核启动前运行的第一段程序。引导程序的功能:初始化硬件设备、建立内存空间的映射图。将操作系统内核映像从Flash内拷贝到RAM中,然后跳转到内核的入口点去运行,即启动操作系统。常见的Bootloader有Vivi、Blob、Redboot和U-Boot。下面介绍U-Boot的启动流程:

  (1)第一阶段。依赖于CPU体系结构的代码,用汇编来实现:系统上电后进入svc模式;关闭看门狗禁止所有中断;进行初级硬件初始化后将自身代码拷贝到SDRAM中;设置堆栈、清空bss段,最后跳转到C语言实现的第二阶段中。

  (2)第二阶段。设置参数引导内核,并跳转到内核入口处。通常用C语言来实现,可以实现复杂的功能,并具有很好的可读性和可移植性。

  该部分的源代码量比较少,涉及到ARM汇编和C语言编程,是整个系统中的第一段代码,很重要,需要带着学生从第一行代码开始逐行剖析。   3.嵌入式Linux内核

  分析内核源码:包括初始化Cache、Mum等设置;内核解压函数;非压缩内核启动汇编段。内核移植:修改与具体的硬件构架和开发板类型相关的文件代码,如.config文件。选择相近的demo板,可以最大实现代码重用,在此基础上进行必要的修改。对不同类型的NAND Flash、网卡、YAFFS FLASH进行移植修改。Linux代码量很大,该部分的学习重点是如何移植Linux到嵌入式平台上,如何裁剪代码。

  4.设备驱动程序

  上层应用程序是通过驱动程序使用底层硬件。应用程序使用标准库调用,用户程序必须通过系统调用,间接调用驱动程序访问硬件。每个硬件接口不一样,由内核提供黑匣子接口屏蔽用户。设备驱动程序分为字符设备驱动程序(包括各种串行接口、并行接口等)、块设备驱动程序(包括磁盘设备等)、网络设备驱动程序(包括网卡等)及杂项设备驱动程序(如SCSI、时钟等)。[3]驱动程序代码也是以移植修改为主,根据新增加接口及设备型号修改厂商支持的原有程序代码。

  5.文件系统

  Linux中一切皆文件,所有的设备、内存都模拟成文件。Linux的文件系统包括四种:命名空间、API(用来便利和操作对象的.一套系统调用)、安全模型(用来保护、隐藏和共享事物的方案)和实现(把逻辑模型同实际硬件联系到一起的软件)。建立在Flash上的文件系统包括EXT2、Jffs2、yaffs、CRAMFS、proc等文件类型。Linux下的文件分成五种文件类型:字符设备、块设备、连接、普通文件和目录。

  构建嵌入式文件系统先构建根文件目录,文件系统通过busybox工具集来制作目录和根文件系统,通过mk命令做成crmafs只读根文件系统镜像,最后烧写根文件系统。

  6.图形界面

  QT是现在流行的跨平台的C++图形用户界面(GUI)工具包。通过QT能设计2D、3D等多种界面图形。在QT程序中,利用信号和插槽机制进行对象间的通信。QT有Windows版本,可以在Windows操作系统中开发后通过交叉编译后移植到嵌入式Linux环境中。[4]在设计嵌入式Linux界面时使用Windows QT4.0在Windows环境下开发,属于可视化界面,不用通过代码创建控件,通过工具可以直接拖拉控件到窗口中,简单方便。

  三、嵌入式Linux的发展方向

  嵌入式Linux发展的前景非常好,但是人才的缺乏已经成为当前制约嵌入式Linux发展的瓶颈。一方面,因为嵌入式人才领域门槛较高,从事嵌入式软件开发的工作人员不仅要熟练掌握C/C++、汇编语言等基础,而且对Linux内核和底层驱动程序及硬件都要熟悉。另一方面,因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长,如ARM11/A8处理器、嵌入式Linux操作系统、无线通信协议、移动USB3.0高速传输等,目前国内乃至国际上能够掌握这些新技术的人才相当匮乏。所以近几年包括未来几年,市场对嵌入式Linux人才的需求都非常旺盛。

  四、总结

  嵌入式Linux设计课程涉及嵌入式Linux系统构建、驱动开发、内核移植、根文件构建、应用及图形开发。嵌入式Linux设计还可以增加系统管理部分内容,如服务器管理、数据库管理、网络配置、防火墙配置与管理、日志管理及维护等。随着Linux操作系统的完善和发展,以嵌入式Linux为内核的嵌入f系统也已无处不在。数字化、智能化使传统设备电子化,具有这些功能的嵌入式Linux操作系统的应用前景会越来越广,学好该课程对发展嵌入式系统、物联网技术具有重要意义。

  参考文献:

  [1]王小妮.基于嵌入式系列课程的教学改革与探索[J].教育理论与教学研究,2013,(5).

  [2]冼进.嵌入式Linux应用开发详解[M].北京:电子工业出版社,2007.

  [3]刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006.

  [4]韩少云.基于嵌入式Linux的Qt图形程序实战开发[M].北京:北京航空航天大学出版社,2012.

【linux课程设计论文】相关文章:

课程设计论文致谢(通用5篇)04-20

《离骚》课程设计11-13

课程设计开题报告04-26

《归园田居》教学课程设计12-15

课程设计心得体会【精】04-29

【热】课程设计心得体会04-29

【热门】课程设计心得体会04-28

课程设计心得体会【荐】04-24

课程设计心得体会【热】04-21

《少年王勃》的课程设计11-14