


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生实验报告系别计算机学院课程名称Linux嵌入式应用开发专业计算科学与技术13级实验名称嵌入式Linux底层驱动综合开发实验姓名余博文评阅老师学号20成绩报告内容1.综合实验目的通过一个综合的底层驱动实验掌握嵌入式驱动程序开发的基本步骤,能够独立的将自己的代码嵌入内核中,基本掌握字符型设备的一般开发步骤与原理,初步理解数据包在内核中的游历过程2.实验内容本实验分四个小项目进行,分别是:a)内核模块编程基本实验b)字符型设备驱动程序开发实验c)LED灯驱动开发实验d)网络内核流量统计实验3.实验总结及思考试用自己的语言回答以下问题a)内核中是使用net_device结构体来描述所有的网络设备,它们在内核是如何组织的?每一个设备对应一个structnet_device结构体,在内核中,使用一个单向链表把所有的结构体串起来,单向链表的首地址是structnet_device*dev_base。通过这个首地址可以遍历这个单向链表,以访问、查询、获取网卡的统计信息。b)Linux里面有一个概念叫做文件就是一切,请问你对这句话是如何理解的?0)请看看下面的语句,回答问题假设函数原型如下:structnet_device_stats*(*get_stats)(structnet_device*dev);该函数返回值里包含了什么数据,请一一列出(可以百度一下)?structnet_device_statsunsignedlongrx_packets;/*totalpacketsreceived*/unsignedlongtx_packets;/*totalpacketstransmitted♦/unsignedlongrx_bytes;/*totalbytesreceived ♦/unsignedlongtx_bytes;/*totalbytestransmitted*/unsignedlongrx_errors;/*badpacketsreceived */unsignedlongtx_errors;/♦packettransmitproblems♦/unsignedlongrx_dropped;/♦nospaceinlinuxbuffers♦/unsignedlongtx_dropped;/♦nospaceavailableinlinux♦/unsignedunsignedlonglongmulticast;collisions;/*multicastpacketsreceived♦//♦detailedrxerrors:♦/unsignedlongunsignedlongunsignedlongunsignedlongunsignedlongrx_length_errors;rxovererrors:rxcrcerrors;rxframeerrors:rxfifoerrors:rxmissederrors:/♦receiverringbuffoverflow/*reevedpktwithcrcerror/♦reev'dframealignmenterror/♦reev*rfifooverrun ♦/*/*/*/unsignedlong/♦receivermissedpacket♦//♦detailedtx_unsignedlongunsignedlongunsignedlongunsignedlongunsignedlongerrors♦/txabortederrors:txcarriererrors:txfifoerrors:tx_heartbeat_errorstxwindowerrors;■9/♦forcslipetc♦/unsignedlongrx_unsignedlongtx_rcompressed;compressed;};d)Linux系统中对于中断的处理总是分为两部分:顶半操作与底半操作,请问为什么要分成两部分?在顶半与底半操作中,通常会完成什么功能?e)请简单叙述一下Linux内核是如何接收一个网络数据包的?(请从网卡中断开始叙述)?欲查询网络数据包,需通过网卡发送一个软中断给CPU,然后CPU到中断向量表中查询所需执行的中断函数的地址,并执行中断函数。该函数具体操作为:staticssize_tnet_stats_read(structfile*filpzchar user*bufferzsize_tcount,loff_t*ppos){structnet_device*p; //定义个net/eyice结构体指针;structnet_device_stats*s;//定义个结构体指针;p=dev_base; //使结构体指针指向全局变量一 //该变量为单向链表的首地址 ~while(p){//是否为链表的结束printk(KERN_INFO"devname:%s\nn,p->name);//net_device_stats//结构体指针指向(dev)函数的返回值,以获取统计信息;s=p->get_stats(p); //将结构体指针指向的内容一 //打印出来,例如发送与收到的字节数printk(KERN_INFOf,rx_bytes:%81u\nn,s->rx_bytes);printk(KERN_INFOMtx_bytes:%81u\nn,s->tx_bytes);if(!strcmp(p->name,uloM)){//匕匕袅dev->name是否为''I。",//如果是,则进入循环if(count<sizeof(structnet_device_stats)){//女口果count〈net_deYice_stats结构体的大小copy
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 居民生活污水收集管网建设工程施工方案
- 3C零部件生产项目建筑工程方案
- 市政管道工程技术交底方案
- 片区污水处理厂项目建设工程方案
- 新能源汽车零部件生产项目技术方案
- 化工园区污水处理厂工程建设工程方案
- 桥梁结构优化设计方案
- 绿色建筑与可持续发展方案
- 初中物理竞赛功和功率试题及答案
- 事业单位职测数量关系模拟试题及答案
- DL∕T 593-2016 高压开关设备和控制设备标准的共用技术要求
- GA/T 2133.1-2024便携式微型计算机移动警务终端第1部分:技术要求
- 软件项目培训方案
- DL∕T 5850-2021 电气装置安装工程 高压电器施工及验收规范(双页版)
- DG∕TJ 08-2220-2016 桥梁水平转体法施工技术规程
- 浦南运河建设方案
- TB10001-2016 铁路路基设计规范
- 2024年4月自考00634广告策划试题
- 窗口人员服务规范培训课件
- 电务室外设备安装及基础面硬化标准动车论坛样本
- 爱尔眼科职工管理制度
评论
0/150
提交评论