[发明专利]一种实现ARMCPU用户态收发报文的方法有效
申请号: | 201410232336.0 | 申请日: | 2014-05-29 |
公开(公告)号: | CN104050101B | 公开(公告)日: | 2018-02-13 |
发明(设计)人: | 高福亮 | 申请(专利权)人: | 汉柏科技有限公司 |
主分类号: | G06F12/1036 | 分类号: | G06F12/1036;G06F9/50 |
代理公司: | 北京中政联科专利代理事务所(普通合伙)11489 | 代理人: | 陈超 |
地址: | 300384 天津市西青*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种实现ARM CPU用户态收发报文的方法,所述方法包括对ARM网口的内核驱动进行整改,除去Linux内核中ARM网口初始化函数中挂载的关于中断及收发包的函数;将所述除去的ARM网口初始化函数中关于收发包的函数移植到用户态;用户态在初始化时从内核获取大块连续内存,并对这块物理连续内存进行单独管理,使得用户态空间可以访问到DMA的内存;用户态在初始化时进行与ARM网口收发相关的硬件寄存器的配置,使得收发包过程中用户态可以读写与ARM网口收发相关的硬件控制寄存器;用户态收发报文。本发明消除了内核态收发包触发大量中断及数据包到用户态拷贝致使消耗大量CPU性能的缺陷,提高了设备的转发性能。 | ||
搜索关键词: | 一种 实现 arm cpu 用户 收发 报文 方法 | ||
【主权项】:
一种实现ARM CPU用户态收发报文的方法,其特征在于,包括以下步骤:步骤S1,对ARM网口的内核驱动进行整改,除去Linux内核中ARM网口初始化函数中挂载的关于中断及收发包的函数;步骤S2,将所述除去的ARM网口初始化函数中关于收发包的函数移植到用户态;步骤S3,用户态在初始化时从内核获取大块连续内存,并对这块物理连续内存进行单独管理,使得用户态空间可以访问到DMA的内存;其中,所述步骤S3进一步包括:步骤S31,在Linux内核初始化时,申请大块连续内存,以备用户态收发包申请skb使用;步骤S32,用户态初始化时,通过ioctl方式从内核获取已申请的所述大块连续内存的地址和大小;其中,用户态初始化时,对申请的内存进行检测,检测出该内存的地址和大小,如果检测到地址和大小相符,则进行获取;步骤S33,采用mmap函数将所述大块连续内存的地址映射为用户态可操作的虚拟地址,使得收发包使用的skb申请和释放可以在映射后的这块内存中进行;步骤S4,用户态在初始化时进行与ARM网口收发相关的硬件寄存器的配置,使得收发包过程中用户态可以读写与ARM网口收发相关的硬件控制寄存器;步骤S5,用户态收发报文。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉柏科技有限公司,未经汉柏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410232336.0/,转载请声明来源钻瓜专利网。