实验四实验报告

北京电子科技学院(BESTI


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

姓名:池彬宁 贺邦

学号:20135212 20135208

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

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

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

实验名称:基于 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 连接。

④测试程序来进行测试。

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

本次实验是在实验一的基础上进行的拓展,难度并不大,但是我们在做时候,总是提示insnod,mknod命令not found,老师说是armv4l工具包安装出错,但是,我们重装了很多次,换了很多台机器,都没有成功。后来,在redhat虚拟机登录root账户后,成功做出。(之前一直登陆的bc账户)后来分析可能是因为权限不够等原因。

时间: 2024-08-25 17:48:13

实验四实验报告的相关文章

2017-2018-1 20162306 实验四 实验报告

2017-2018-1 20162306 实验四 实验报告 实验三:查找与排序-1 实验要求: 完成教材P302 Searching.Java ,P305 Sorting.java中方法的测试 不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位 提交运行结果图(可多张) 实验过程: 1.对之前的测试代码进行修改,增加测试用例个数 2.修改排序方法,实现逆序 代码如下: public static void nSort(Comparable

20135333苏正生实验四实验报告

课程: Java程序设计 班级: 1353 姓名: 苏正生 学号: 2015333 成绩: 指导教师: 娄家鹏 实验日期: 2015.6.9 实验密级: 预习程度: 实验时间: 3:20~5:00 仪器组次: 必修/选修: 必修 实验序号: 实验四 实验名称: Java网络编程及安全 实验内容: 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验仪器:   名称 型号 数量 笔记本电脑 Msi GS70     1                   实验准

20145321 实验四实验报告

20145321 实验三实验报告 实验内容 使用android studio实现helloworld以及加入自己的名字. 实验步骤 Android Studio的安装包并进行安装. 设置SDK: 新建项目 编辑文字 PSP 步骤 耗时 百分比 需求分析 20 18% 设计 30 28% 代码实现 20 18% 测试 20 18% 分析总结 20 18%

实验四实验报 告

实验四 北京电子科技学院(BESTI) 实     验    报     告 课程:深入理解计算机系统        班级:1353 姓名:魏静静 文艺 刘虹辰 学号:20135302 20135331 20135325 成绩:             指导教师:娄嘉鹏  实验日期:2015-11-17 实验密级:         预习程度:          实验时间:15:30-18:00 仪器组次:桌号44    必修/选修:必修  实验序号:4 实验名称:简单嵌入式WEB服务器实验 实验

2017-2018-2 20165228 实验四《Android程序设计》实验报告

一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:苏祚堃 学号:20165228 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 3:25 实验序号:实验四 实验名称:Android程序设计 实验要求: 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决

2017-2018-2 20165336 实验四《Android开发基础》实验报告

20165336 实验四 Android程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:康志强 学号:20165336 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:实验四 实验名称:Android程序设计 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到

20165302实验四报告

20165302实验四实验报告 提交点1 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分 学习Android Stuidio调试应用程序 截图 提交点2 构建项目,运行教材相关代码 创建 ThirdActivit

实验四 《Android开发基础》 20175301李锦然实验报告

实验四 <Android开发基础>实验报告 课程:Java程序设计 班级:1753班 姓名:李锦然 学号:20175301 指导教师:娄嘉鹏 实验日期:2019年5月14日 实验时间:--- 实验序号:实验四 实验名称:Android开发基础 实验目的与要求: 参考Android开发简易教程 完成云班课中的检查点,也可以先完成实验报告,直接提交.注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明.实验报告中一个检查点要有多张截图. 发表实验报告博客,标题"学期(如2018

2018-2019-2 20175126谢文航 实验四《Android开发基础》实验报告

一.实验封面 课程:Java程序设计 班级:1751 班 姓名:谢文航 学号:20175126 指导教师:娄嘉鹏 实验日期:2019年5月15日 实验时间:--- 实验序号:实验四 实验名称:Android开发基础 实验内容: 参考Android开发简易教程 完成云班课中的检查点,也可以先完成实验报告,直接提交.注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明.实验报告中一个检查点要有多张截图. 发表实验报告博客,标题“学期(如2018-2019-2) 学号(如20175300)