当前位置
主页 > 产品中心 > 产品四类 >
嵌入式Linux网络驱动程序的体系结构和实现原理
2023-02-23 04:20
本文摘要:随着人们对对外开放源代码软件热情的日益升高,Linux作为一个功能强大而平稳的开源操作系统,更加受到成千上万的计算机专家和爱好者的注目。在嵌入式领域,通过对Linux展开小型化剪裁后,使其需要烧结在容量只有几十兆字节的存储器芯片或单片机中,沦为应用于特定场合的嵌入式Linux系统。Linux强劲的网络反对功能构建了对还包括TCP/IP在内的多种协议的反对,符合了面向21世纪的嵌入式系统应用于联网的市场需求。因此,在嵌入式系统研发调试时,网络接口完全沦为不可或缺的模块。

金年会

随着人们对对外开放源代码软件热情的日益升高,Linux作为一个功能强大而平稳的开源操作系统,更加受到成千上万的计算机专家和爱好者的注目。在嵌入式领域,通过对Linux展开小型化剪裁后,使其需要烧结在容量只有几十兆字节的存储器芯片或单片机中,沦为应用于特定场合的嵌入式Linux系统。Linux强劲的网络反对功能构建了对还包括TCP/IP在内的多种协议的反对,符合了面向21世纪的嵌入式系统应用于联网的市场需求。因此,在嵌入式系统研发调试时,网络接口完全沦为不可或缺的模块。

  1嵌入式Linux网络驱动程序讲解  Linux网络驱动程序作为Linux网络子系统的一部分,坐落于TCP/IP网络体系结构的网络接口层,主要构建上层协议栈与网络设备的数据交换。Linux的网络系统主要是基于BSDUnix的套接字(socket)机制,网络设备与字符设备和块设备有所不同,没对应地同构到文件系统中的设备节点。  一般来说,Linux驱动程序有两种读取方式:一种是静态地编译器入内核,内核启动时自动读取;另一种是撰写为内核模块,用于insmod命令将模块动态读取到正在运营的内核,不必须时能用rmmod命令将模块修理。Linux2.6内核引进了kbuild机制,将外部内核模块的编译器同内核源码树根的编译器统一一起,大大简化了特定的参数和宏的设置。

金年会

这样将撰写好的驱动模块重新加入内核源码树根,只必须改动适当目录的Kconfig文件,把新的驱动重新加入内核的配备菜单,然后必须改动适当子目录中与模块编译器涉及的KbuildMakefile,才可使新的驱动在内核源码树中被编译器。在嵌入式系统驱动研发时,经常将驱动程序撰写为内核模块,便利研发调试。

调试完后,就可以将驱动模块编译器入内核,并新的编译器出有反对特定物理设备的Linux内核。  2嵌入式Linux网络驱动程序的体系结构和构建原理  2.1Linux网络设备驱动的体系结构  如图1右图,Linux网络驱动程序的体系结构可区分为4个层次。

Linux内核源代码中获取了网络设备模块及以上层次的代码,因此重制特定网络硬件的驱动程序的主要工作就是已完成设备驱动功能层的适当代码,根据底层明确的硬件特性,定义网络设备模块structnet_device类型的结构体变量,并构建其中适当的操作者函数及中断处理程序。    Linux中所有的网络设备都抽象化为一个统一的模块,即网络设备模块,通过structnet_device类型的结构体变量回应网络设备在内核中的运营情况,这里既还包括回环(loopback)设备,也还包括硬件网络设备模块。内核通过以dev_base为头指针的设备链表来管理所有的网络设备。

  2.2net_device数据结构  structnet_device结构体是整个网络驱动结构的核心,其中定义了很多可供网络协议模块层调用设备的标准方法,该结构在2.6内核源码树根文件中定义,下面只所列其中主要的成员。  2.2.。


本文关键词:嵌入式,Linux,网络,驱动程序,的,体系结构,和,金年会

本文来源:金年会-www.gzbofen.com

联系方式

电话:0879-83007302

传真:0737-65733274

邮箱:admin@gzbofen.com

地址:浙江省台州市广阳区电中大楼78号