《嵌入式linux程序开发》课程设计报告 fcntl()编程实现

发布时间 : 星期一 文章《嵌入式linux程序开发》课程设计报告 fcntl()编程实现更新完毕开始阅读

《嵌入式linux程序开发》课程设计报告 fcntl()编程实现Ⅰ 陈丽丹 07323202

摘 要

随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。

硬件方面,各大电子厂商相继推出了自己的专用嵌入式芯片,漫天而至的是mp3,PDA,无线上网装置,让人们充分感受到了这股强劲之势;软件方面,在Vxworks、pSOS、Neculeus和Windows CE等嵌入式操作系统引领下,也出现了空前繁荣的局面,但这些专用操作系统都是商业化产品,其高昂的价格使许多面向低端产品的小公司望而却步,并且其源代码的封闭性也大大限制了开发者的积极性。

近两年在我国登陆并蓬勃发展的Linux,也已广泛应用于各类计算应用,不仅包括IBM的微型Linux腕表、手持设备(PDA和蜂窝电话)、因特网装置、客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。Linux在高端服务器的优越表现及其天生具有的突出特点,就注定它必将在低端嵌入式系统中再次给人们以惊喜,而基于嵌入式Linux操作系统的应用,必定给我们未来的工作和生活带来翻天覆地的变化。

本课程设计是以Red Hat Linux---VMware Workstation ACE版为基础平台,利用Fcntl函数实现多用户共享下给文件加文件锁,其中文件锁包括建议性锁和强制性锁。

Page 1 of 15

《嵌入式linux程序开发》课程设计报告 fcntl()编程实现Ⅰ 陈丽丹 07323202

目 录

一.嵌入式Linux简介 ................................................................... 3 二.嵌入式Linux开发平台简介 ....................................................... 3 三.嵌入式linux开发流程 ............................................................ 3

ⅰ建立开发环境 ....................................................................... 3 ⅱ 配置开发主机...................................................................... 4 ⅲ 建立引导装载程序BOOTLOADER ....................................... 4 ⅳ 下载别人已经移植好的LINUX操作系统 ........................... 4 ⅴ 建立根文件系统 .................................................................. 4 ⅵ 建立应用程序的flash磁盘分区 ........................................ 4 ⅶ 开发应用程序...................................................................... 5 ⅷ 烧写内核、根文件系统、应用程序 .................................. 5 四.课程设计目的和要求 .............................................................. 5

fcntl函数格式 ........................................................................... 5 程序流程图: ........................................................................... 6 五.VI简介与源程序 ...................................................................... 7 六.Gcc编译器的安装过程 ......................................................... 11 七.程序运行 ................................................................................ 13 八.心得体会 ................................................................................ 14 九.参考文献 ................................................................................ 15 八.评分表 .................................................................................... 15

Page 2 of 15

《嵌入式linux程序开发》课程设计报告 fcntl()编程实现Ⅰ 陈丽丹 07323202

一.嵌入式Linux简介

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

Linux 正在嵌入式开发领域稳步发展。Linux 使用 GPL,所有对特定开发板、PDA、掌上机、可携带设备等使用嵌入式Linux感兴趣的人都可以从因特网上免费下载其内核和应用程序,并开始移植和开发。许多 Linux 改良品种迎合了嵌入式市场,它们包括 RTLinux(实时 Linux)、uclinux(用于非 MMU 设备的 Linux)、Montavista Linux(用于 ARM、MIPS、PPC 的 Linux 分发版)、ARM-Linux(ARM 上的 Linux)和其它 Linux 系统。

嵌入式Linux的发展比较迅速。NEC、索尼已经在销售个人视频录像机等基于Linux的消费类电子产品,摩托罗拉则计划在其未来的大多数手机上使用Linux,IBM也制定了在手持机上运行Linux的计划。

数年来,“Linux标准库”组织一直在从事对在服务器上运行的Linux进行标准化的工作,现在,嵌入式计算领域也开始了这一工作。嵌入式Linux标准吸引了“Linux标准库”以及Unix组织中有益的元素。

二.嵌入式Linux开发平台简介

Linux价格低廉、功能强大,可以运X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM等硬件平台上,而且开放源代码,可以定制。我们所介绍的硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-Star认证考试实践板,该认证板采用Samsung S3c2410嵌入式微处理器,可运行Linux 2.4.x和Linux 2.6.x内核,支持QT/E、miniGUI等嵌入式图形界面。既适合作为计算机、软件等专业,又适合广大从事PMP、PDA、智能手机的厂商和科研单位作为参考设计。

三.嵌入式linux开发流程

嵌入式linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过以下过程:

ⅰ建立开发环境

(在WINDOWS下安装虚拟机后,再在虚拟机中安装LINXUX操作系统)

操作系统:red hat linux9.0版本

GCC交叉编译器的安装:arm-linux-gcc

Page 3 of 15

《嵌入式linux程序开发》课程设计报告 fcntl()编程实现Ⅰ 陈丽丹 07323202

ⅱ 配置开发主机

MINICOM和WINDOWS下的超级终端的配置:一般参数为波特率115200;数据位8位;停止位1;无奇偶校验;软硬件控制流设为无

ⅲ 建立引导装载程序BOOTLOADER

从网络上下载一些公开源代码的BOOTLOADER: U-BOOT

ARM9系列芯片没有内置引导装载程序,需要编写烧写开发板上flash的烧写程序,网络上有免费下载的WINDOWS下通过JTAG并口简易仿真器烧写ARM外围flash芯片的程序。

这是让系统可以正常运行的第一步。

ⅳ 下载别人已经移植好的LINUX操作系统

如UCLINUX、ARM-LINUX、PPC-LINUX等

ⅴ 建立根文件系统

从www.busybox.net下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。

默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、

/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。

根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs 、genromfs等工具产生烧写映象文件。

ⅵ 建立应用程序的flash磁盘分区

一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性flash(NOR型)512K-32M,有的系统使用非线性flash(NAND型)8-512M,有的两个同时使用,需要根据应用规划flash的分区方案。

Page 4 of 15

联系合同范文客服:xxxxx#qq.com(#替换为@)