再问一下各位大哥,如果编网卡驱动的话是不是需要懂得不少汇编?
时间:2011-08-23
来源:互联网
再问一下各位大哥,如果编网卡驱动的话是不是需要懂得不少汇编?
每次看到汇编都抱头鼠窜啊。。。。
每次看到汇编都抱头鼠窜啊。。。。
作者: wyhhxx17 发布时间: 2011-08-23
不需要,Linux驱动几乎都是纯C
作者: jackyjkchen 发布时间: 2011-08-23
这个你可以看一下kernel/driver/net/下面的一些代码.
kernel中有专门的写寄存器代码. 汇编都已经被封闭起来了.
C/C++ code
上面的iowrite32 其实是一个宏定义,不同板子,定义不一样.
如arm是
#define iowrite32(v,p) ({ __iowmb(); (void)__raw_writel((__force __u32)cpu_to_le32(v), p); })
后面的就不展开了, 楼主可以自行参看源码.
kernel中有专门的写寄存器代码. 汇编都已经被封闭起来了.
C/C++ code
static void sc92031_enable_interrupts(struct net_device *dev) { struct sc92031_priv *priv = netdev_priv(dev); void __iomem *port_base = priv->port_base; tasklet_enable(&priv->tasklet); atomic_set(&priv->intr_mask, IntrBits); wmb(); iowrite32(IntrBits, port_base + IntrMask); mmiowb(); }
上面的iowrite32 其实是一个宏定义,不同板子,定义不一样.
如arm是
#define iowrite32(v,p) ({ __iowmb(); (void)__raw_writel((__force __u32)cpu_to_le32(v), p); })
后面的就不展开了, 楼主可以自行参看源码.
作者: zmlovelx 发布时间: 2011-08-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28