摘要: 在Linux系统中,终端是一种字符型设备,它有多种类型,通常使用 tty 来简称各种类型的终端设备。tty 是 Teletype 的缩写,Teletype 是最早出现的一种终端设备,很像电传打字机,是由 Teletype 公司生产的。Linux 中包含如下几类终端设备。 1. 串行端口终端(/dev 阅读全文
posted @ 2020-08-13 00:47 闹闹爸爸 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 一、DM9000 网卡硬件描述 DM9000是开发板采用的网络芯片,是一个高度集成且功耗很低的告诉网络控制器,可以和 CPU 直连,支持 10/100MB 以太网连接,芯片内部自带 4KB 双字节的 SRAM (3KB用来发送, 13KB用来接收)。针对不同的处理器,接口支持 8 位、16 位和 3 阅读全文
posted @ 2020-07-27 16:12 闹闹爸爸 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 网络设备的驱动程序提供一些供系统对设备的参数进行设置 或 读取设备相关信息的方法。 当用户调用 ioctl() 函数,并指定 SIOCSIFHWADDR 命令时,意味着要设置这个设备的 MAC 地址。设置网络设备的 MAC 地址可用如下代码所示的模板: 1 /* 2 * 设置网络设备的 MAC 地址 阅读全文
posted @ 2020-07-27 14:26 闹闹爸爸 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: 网络适配器硬件电路可以检测出链路上是否有载波,载波反映了网络的连接是否正常。网络设备驱动可以通过 netif_carrier_on() 和 netif_carrier_off() 函数改变设备的连接状态,如果驱动检测到连接状态发生变化,也应该以 netif_carrier_on() 和 netif_ 阅读全文
posted @ 2020-07-27 00:23 闹闹爸爸 阅读(2707) 评论(0) 推荐(0) 编辑
摘要: 网络设备接收数据的主要方法是由中断引发设备的中断处理函数,中断处理函数判断中断类型,如果为接收中断,则读取接收到的数据,分配 sk_buffer 数据结构和数据缓冲区,将接收到的数据复制到数据缓冲区,并调用 netif_rx() 函数将 sk_buffer 传递给上层协议。下面是完成这个过程的函数模 阅读全文
posted @ 2020-07-26 23:36 闹闹爸爸 阅读(753) 评论(0) 推荐(1) 编辑
摘要: 从网络设备驱动的结构分析可知,Linux 网络子系统在发送数据包时,会调用驱动程序提供的 hard_start_transmit( ) 函数,该函数用于启动数据包的发送。在设备初始化的时候,这个函数指针需被初始化以指向设备的 xxx_tx( )函数。 网络设备驱动完成数据包发送的流程如下。 网络设备 阅读全文
posted @ 2020-07-26 01:30 闹闹爸爸 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 网络设备的打开函数需要完成如下工作: 使能设备使用的硬件资源,申请 I/O 区域、中断和 DMA 通道等。 调用 Linux 内核提供的 netif_start_queue( )函数,激活设备发送队列。 网络设备的关闭函数需要完成如下工作: 调用 Linux 内核提供的 netif_stop_que 阅读全文
posted @ 2020-07-26 00:43 闹闹爸爸 阅读(983) 评论(0) 推荐(0) 编辑
摘要: 网络设备的初始化主要完成如下几个方面的工作。 进行硬件上的准备工作,检查网络设备是否存在,如果存在,则检测设备所使用的硬件资源。 进行软件接口上的准备工作,分配 net_device 结构体并对其数据结构和函数指针成员赋值。 获得设备的私有信息指针并初始化各成员的值。如果私有信息中包括自旋锁或信号量 阅读全文
posted @ 2020-07-26 00:19 闹闹爸爸 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 网络设备驱动的注册与注销由 register_netdev( ) 和 unregister_netdev( ) 函数完成,这两个函数的原型为: /** * register_netdev - register a network device * @dev: device to register * 阅读全文
posted @ 2020-07-25 01:54 闹闹爸爸 阅读(2523) 评论(0) 推荐(0) 编辑
摘要: 网络设备是完成用户数据包在网络媒介上发送和接收的设备,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送,并将接收到的数据包传递给上层协议。 Linux系统对网络设备驱动定义了4个层次,这4个层次分别为: 1)网络协议接口层; 2)网络设备接口层; 3)提供实际功能的设备驱动功能层; 4) 阅读全文
posted @ 2020-07-25 00:52 闹闹爸爸 阅读(2021) 评论(0) 推荐(0) 编辑