| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 关于SylixOS下虚拟网卡添加移植的理解 -> 正文阅读 |
|
[系统运维]关于SylixOS下虚拟网卡添加移植的理解 |
一、应用目标板卡 TI66ak2h14目标板卡 二、虚拟网卡内容的添加 虚拟网卡包含 libamp_virnetdrv与 libamp_virnetdrv_config 两个部分。因为是在TI66ak2h14的 ARM侧添加,因此首先拷贝 libamp_virnetdrv\src\demo\arm_aarch64 下的四个文件到 BSP 目录 SylixOS\driver\virnet 下,并添加.a库文件到相应目录,同时修改makefile等相关链接文件等,如下图所示。 ? virnet.c的主要修改点 1、修改系统映射表定义 _G_virNetCoreOsMap,该结构体分别对应如下 操作系统类型:目前能够支持的选项为: OS_TYPE_LINUX、 OS_TYPE_SYLIXOS; 操作系统编号:需要从 0 开始, 依次递增; 操作系统的中断号:为当前核能够响应的核间中断编号; ? 2、配置地址空间 相关的地址包括如下几个: 配置空间: 用于存储配置信息的空间, 多个系统之间共享, 多个系统的地址需统一。 通信空间: 用于存储通信报文的空间, 会把划分为多个通道, 用于系统两两通信存储报文。 3、核间中断相关函数 核间中断触发函数,在该接口中根据传入的 中断号 或 系统号 触发对应的核间中断 ?该函数可以用于一些需要对核间中断进行自定义的初始化操作 ?4、修改好virnet.c后,即可在bspinit.c的halNetifAttch中调用如下接口 ?API_VirNetConfig()和API_VirNetNdCreate()就是定义在libamp_virnetdrv与 libamp_virnetdrv_config两个库文件中的接口 三、关于libamp_virnetdrv与 libamp_virnetdrv_config代码的简单梳理 以下代码可根据库源代码对照着来梳理 1、认为的主要结构体:共享内存网络自定义结构体(实际对应的就是pNetdev->priv) 2、文件:libamp_virnetdrv_config.c 该文件中主要就定义了API_VirNetConfig接口 整理后的调用关系: 3、文件:libamp_virnetdrv.c 该文件中主要就定义了API_VirNetNdCreate接口 整理后的调用关系: ?4、虚拟网卡驱动的初始化设备功能函数 ?__virNetNdTransmit:上层协议发送数据时,最后调用的这个函数,因此,它是要实现网卡驱动的发送功能 __virNetNdRecv:当网卡收到数据时,会调用这个函数进行接收,同时,它里面还需要实现将收到的信息传到上层协议栈中去的功能 __virNetNdUp:共享内存设备连接 __virNetNdDown:共享内存设备断开 __virNetNdTransmit函数就是共享内存网络设备发送函数,该发送函数中会进行 pVirNetDev->Notify(pVirNetDev, iOsIndex)的调用,Notify是通知目标系统接收消息的中断函数,Notify的函数指针赋值是在上面__virNetNdInit中进行的 ?而__virNetNdTxNotify通知函数中就会调用我们bsp中事先实现好的multiVirNetIsrOccur中断函数 ?虚拟网卡相关的移植添加及部分代码框架流程的整理如上所述,具体流程可以跟着代码看一下,其他更深入部分也还在继续摸索中,后续有其他理解也会补充进来。。。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 11:51:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |