嵌入式Linux网络驱动程序开发设计|ag体育平台

By admin in 科技 on 2020年10月24日

官方平台

ag体育:第二章随着人们对开源软件的热情日益高涨,Linux作为一个强大而稳定的开源操作系统,吸引了成千上万的计算机专家和爱好者的关注。在嵌入式领域,将Linux小型化后,需要烧结在容量只有几十兆的内存芯片或单片机中,成为应用于特定场合的嵌入式Linux系统。

Linux强大的网络对抗功能构建了对包括TCP/IP在内的多种协议的对抗,满足了21世纪嵌入式系统对组网的市场需求。因此,在嵌入式系统的开发和调试中,网络接口已经完全成为不可缺少的模块。1嵌入式Linux网络驱动解释Linux网络驱动作为Linux网络子系统的一部分,位于TCP/IP网络架构的网络接口层,主要构建上层协议栈与网络设备之间的数据交换。Linux的网络系统主要是基于BSDUnix的socket机制。

ag体育平台

网络设备不同于字符设备和块设备,也不同于文件系统中的设备节点。一般来说,Linux驱动的读取方式有两种:一种是编译器静态加载到内核中,在内核启动时自动读取;另一个写为内核模块,用于通过insmod命令动态读取模块到操作内核,不需要时通过rmmod命令修复模块。Linux2.6内核引入了kbuild机制,将外部内核模块的编译器和内核源码树根的编译器统一起来,大大简化了具体参数和宏的设置。

这样,写好的驱动程序模块会再次添加到内核源码树根中,只需在适当的目录下更改Kconfig文件,将新的驱动程序添加到内核配置菜单中,然后在适当的子目录下更改与模块编译器相关的KbuildMakefile,就可以在内核源码树中编译新的驱动程序。在嵌入式系统驱动程序的研发中,驱动程序往往被写成内核模块,以方便开发和调试。

ag体育

经过调试,驱动模块可以编译到内核中,新的编译器有一个针对特定物理设备的Linux内核。2嵌入式Linux网络设备驱动的架构和构建原理2.1 Linux网络设备驱动的架构如图1右图所示。Linux网络驱动的架构可以分为四个层次。

Linux内核源代码获取了网络设备模块及以上的代码。因此,再现特定网络硬件驱动程序的主要任务是完成设备驱动程序功能层的适当代码,根据底层的特定硬件特性定义网络设备模块structnet_Device类型的结构变量,构造适当的运算符函数和中断处理程序。Linux中的所有网络设备都抽象成一个统一的模块,即网络设备模块,它通过structnet_device类型的结构变量来响应内核中网络设备的操作,既包括环回设备,也包括硬件网络设备模块。内核通过以dev_base为头指针的设备链表管理所有网络设备。

2.2net_device数据结构structnet_device结构是整个网络驱动结构的核心,它定义了网络协议模块层调用设备的许多标准方法。结构在2.6内核源代码树的根文件中定义,下面只列出主要成员。2.2。|ag体育。

本文来源:官方平台-www.masbsdy.com

Comments are closed.

网站地图xml地图
Copyright @ 2010-2020 ag体育|官方平台 版权所有