北京电子科技学院(BESTI)

实验报告

 

课程:信息安全系统设计基础             班级:201352           

姓名:  何佳  林涵锦

学号:20135231 20135213

成绩:             指导教师:娄嘉鹏       实验日期:2015.12.1

实验密级:         预习程度:           实验时间:15:30-17:30

仪器组次:         必修/选修:必修          实验序号:4

实验名称:基于 S3C2410 的 linux 开发环境的配置和使用的基础上进行交叉编译

实验目的与要求:

1 在掌握基于 S3C2410 的 linux 开发环境的配置和使用的基础上进行交叉编译。

2 理解驱动程序的一般设计方法。

3 正确使用连接线等实验仪器,并注意保护实验箱。实验结束之后将实验箱送回。 

实验仪器:

名称

型号

数量

ARM

S3C2410

1

PC

WindowsXP

1

一、实验内容:

  本次实验建立在掌握嵌入式开发平台使用方法和配置方法的基础上,要求使用windows xp,linux(red hat),arm三个系统(即NFS方式);在linux系统中安装arm系统,然后对01_demo文件夹中的.c文件进行交叉编译。

二、实验原理

1.什么是驱动程序?

目的:驱动程序是应用程序和硬件之间的一个软件层,为(许多个)应用程序提供硬件的所有功能。为了处理并发的情况,还需要考虑互斥量和锁等机制。

特点:应用程序一般有一个 main 函数,从头到尾执行一个任务;驱动程序却不同,它没有main函数,通过使用宏module_init(初始化函数名)。

用法:将初始化函数加入内核全局初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止等待被应用软件调用。驱动程序中有一个宏moudule_exit(退出处理函数名)注册退出处理函数。它在驱动退出时被调用。

2.接口实现方法

Open方法

Open 方法提供给驱动程序初始化设备的能力,从而为以后的设备操作做好准备,此外open

操作一般还会递增使用计数,用以防止文件关闭前模块被卸载出内核。在大多数驱动程序

中Open 方法应完成如下工作:

1. 递增使用计数

2. 检查特定设备错误。

3. 如果设备是首次打开,则对其进行初始化。

4. 识别次设备号,如有必要修改 f_op 指针。

5. 分配并填写 filp->private_data 中的数据。

Release方法

与 open 方法相反,release 方法应完成如下功能:

1. 释放由 open 分配的filp->private_data 中的所有内容

2. 在最后一次关闭操作时关闭设备

3. 使用计数减一

Read和Write方法

ssize_t demo_write(struct file *filp,const char * buffer, size_t count,loff_t *ppos)

ssize_t demo_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)

read 方法完成将数据从内核拷贝到应用程序空间,write 方法相反,将数据从应用程序空间拷贝到内核。对于者两个方法,参数filp 是文件指针,count 是请求传输数据的长度,buffer 是用户空间的数据缓冲区,ppos 是文件中进行操作的偏移量,类型为64 位数。由于用户空间和内核空间的内存映射方式完全不同,所以不能使用象memcpy 之类的函数,必须使用如下函数:

unsigned long copy_to_user (void *to,const void *from,unsigned long count);

unsigned long copy_from_user(void *to,const void *from,unsigned long count);

三、实验步骤

①改写makefile文件,打开makefile 文件将其文件源部分替换为下列代码。

KERNELDIR = /usr/src/linux

#KERNELDIR = /arm2410cl/ kernel/linux-2.4.18-2410cl/

②进入make 所在文件夹,执行命令make ,进行编译。

③在/usr/src下建立一个linux连接

④测试程序来进行测试。

四、实验遇到的感想和遇到的问题

  运行makefile时报错,于是对代码根据指导书上所列程序进行修改。

posted on 2015-12-13 12:24  20135231  阅读(201)  评论(0编辑  收藏  举报