基于嵌入式Linux文件I/O编程的实践教学研究
摘 要:本文研究基于Linux操作系统的嵌入式文件I/O编程的实践教学,首先介绍了嵌入式Linux文件I/O编程的两种方式区别及其教学特点,之后详细介绍了嵌入式Linux文件I/O编程教学难点与对策。此实践教学的研究成果已经在教学环境应用,并得到良好的授课效果,能够达到预期的实践教学目的。
关键词:Linux;I/O编程;实践教学
中图分类号:TP316.81-4 文献标识码:A 文章编号:1674-7712 (2013) 24-0000-01
在Linux系统中大部分机制都会抽象成一个文件,因此Linux文件I/O编程就非常重要。而在嵌入式应用开发中,文件I/O编程是最常用也是最基本的内容,在涉及嵌入式设备驱动程序编写时一定会用到此部分的知识。而嵌入式Linux文件I/O编程又分为两种方式:系统调用方式和C库函数方式,本文就主要针对这两种方式的在实际应用中的区别,来研究在教学中应采用的教学方法及手段。
一、嵌入式Linux文件I/O编程的两种方式区别及其教学特点
(一)系统调用方式
为了很好地保护内核,Linux操作系统将程序的运行空间划分为内核态和用户态。系统调用方式则是Linux操作系统内核提供给用户程序调用的一系列特殊的接口。用户程序就可以通过调用这组特殊的接口获得内核提供给我们的相应服务。进行系统调用时,程序需要从用户态切换到内核态,处理完成后再返回到用户态进行其他操作。系统调用方式访问Linux文件主要用到5个函数:open()、read()、write()、ioctl()和close()。
但由于系统调用方式访问文件时需要经历用户态切换到内核态,之后再返回到用户态的过程,所以相比于C库函数方式要耗费时间。因此,应当让每次的系统调用完成尽可能多的工作。
(二)C库函数方式
C库函数方式是C语言所特有的,因此在任何支持C语言的开发环境下,我们都可以调用其来访问文件,当然就具有很好的可移植性。又由于其程序运行及调用函数都是在用户态进行的,因此就要比系统调用方式节省访问处理时间。
C库函数方式访问Linux文件主要用到fopen()、fread()、fwrite()、fclose()等函数。
二、嵌入式Linux文件I/O编程教学难点与对策
实践教学中应当做到重点突出、难点化解,而每一个教学任务都有其重点和难点,我们的教学就要围绕着重点和难点逐步展开,逐一解决。
在教学设计中本部分的教学内容被分为4个教学任务:嵌入式Linux文件打开及关闭、系统调用方式读写文件、C库函数方式读写文件、字符设备CT1025的读写。首先使学生能够区分特点之后掌握Linux文件打开及关闭的方式,接下来学习如何从文件读数据和向文件写数据,最后通过外部设备实验使学生掌握嵌入式文件读写底层驱动的技能。下面以任务1为例展示教学方法。
(一)明确任务
教师通过演示讲解等手段使学生明确本次任务。目的是利用直观的方式刺激学生的头脑,使对知识产生学习兴趣,提高学习能力。
(二)基础知识
基础语法的学习对于Linux编程的初学者来说是困难的,因此需要化繁为简,化难为易。在实际教学中,采用以下思路来进行授课的:两种Linux访问文件的方式可以归结为两类函数的使用区别,为了让学生更好地理解和掌握,在实际的教学中避开了繁杂难懂的函数语法格式,取而代之的是简单易懂的文字描述语言,通过这样的描述使学生先掌握基本的用法,之后再深究具体的参数语法知识,具体分析如下:
1.系统调用方式
期间可以通过分组教学的方式,首先让学生以小组为单位分析任务,画出流程图,接下来每人各自实现任务代码,之后小组内部相互评定,选出优秀的参加组间互评,通过竞争的方式调用学生的学习热情和积极动脑思考的能力。
三、结束语
Linux操作系统由于其优良的性能,被广泛应用与嵌入式应用开发领域,而嵌入式Linux中又把一切(包括各种文件和外部设备等等)都看作是文件来处理。因此,只有熟练地掌握Linux中访问文件的两种方式,才能更好地进行嵌入式Linux的领域的学习和研发工作。
参考文献:
[1]荆学磊.国内外教学目标的对比研究[J].教育与职业,2012(24):176-177.
[作者简介]王莹(1982-),吉林长春人,硕士,助教,研究方向:电子/计算机。
下一篇:变压器电子防盗预警技术研究