Linux
文章平均质量分 75
又是好风景
这个作者很懒,什么都没留下…
展开
-
【linux驱动分析】之dm9000驱动分析(二):定义在板文件中的资源和设备以及几个宏
【linux驱动分析】之dm9000驱动分析(一):dm9000原理及硬件分析【linux驱动分析】之dm9000驱动分析(二):定义在板文件中的资源和设备以及几个宏【linux驱动分析】之dm9000驱动分析(三):sk_buff结构分析【linux驱动分析】之dm9000驱动分析(四):net_device结构体【linux驱动分析】之dm9000驱动分析(五):另外几个重要的结构体【linux驱动分析】之dm9000驱动分析(六):dm9000_init和dm9000_probe的实现【l原创 2014-04-21 16:18:06 · 1516 阅读 · 0 评论 -
【linux驱动分析】之dm9000驱动分析(一):dm9000原理及硬件分析
【linux驱动分析】之dm9000驱动分析(一):dm9000原理及硬件分析 【linux驱动分析】之dm9000驱动分析(二):定义在板文件中的资源和设备以及几个宏 【linux驱动分析】之dm9000驱动分析(三):sk_buff结构分析 【linux驱动分析】之dm9000驱动分析(四):net_device结构体 【linux驱动分析】之dm9000驱动分原创 2014-04-21 16:27:11 · 1705 阅读 · 0 评论 -
【linux驱动分析】之dm9000驱动分析(三):sk_buff结构分析
【linux驱动分析】之dm9000驱动分析(一):dm9000原理及硬件分析 【linux驱动分析】之dm9000驱动分析(二):定义在板文件中的资源和设备以及几个宏 【linux驱动分析】之dm9000驱动分析(三):sk_buff结构分析 【linux驱动分析】之dm9000驱动分析(四):net_device结构体 【linux驱动分析】之dm9000驱动分原创 2014-04-21 16:30:58 · 1655 阅读 · 0 评论 -
【linux驱动分析】ioctl函数的使用
一、用户空间的ioctl int ioctl(int fd, unsigned long cmd, void *data);第一个参数是文件描述符,第二个参数代表传递的命令,它会原样传递给驱动,第三个参数是可选类型的,主要根据第二个参数选择,第三个参数无论是整数还是指针,都会以unsigned long的形式传递给驱动程序。二、内核空间的ioctl原创 2014-04-23 13:17:43 · 4694 阅读 · 0 评论 -
linux使用进阶(一)
本文根据《应该知道的Linux技巧》coolshell上的一篇文章提到的Linux技巧,结合自己掌握的情况进行扩展和总结得来。主要包括以下内容: 一、日常操作 二、数据处理 三、系统调试 四、网络管理一、日常操作日常操作是在使用Linux进行编程开发中常用的命令,工具的总结。1、ssh原创 2014-04-21 13:30:01 · 1576 阅读 · 3 评论 -
shell字符串处理
(1)、${value:-word}:如果变量value没有定义或者是空字符串,则返回word,否则返回value;(2)、${value:=word}:如果变量value没有定义或者是空字符串,则返回word,并且把word复制给value,否则返回value;(3)、${value:%message}:如果value不是一个空字符串,那就什么也不做。否则,message会被发送到标准错原创 2014-04-10 23:38:53 · 1277 阅读 · 0 评论 -
linux内核定时器
一、几个概念1、节拍率:HZ 系统定时器频率(节拍率)是通过静态预处理定义的,也就是HZ(赫兹),在系统启动时按照HZ值对硬件进行设置。体系结构或机器不同,HZ值都有可能不同。 内核在文件中定义了这个值。假设一个进程的时间片只剩下2ms了,此时调度程序又要求抢占该进程,然后去运行一个新进程,然而该抢占不会在下一个时钟中断到来前发生。对于频率为100HZ的时钟来说原创 2014-04-10 23:55:39 · 1084 阅读 · 0 评论 -
find和grep的使用
1、find语法格式:find [path] [options] [tests] [actions][path]是路径,可以是绝对路径、相对路径,或者多个路径。[options]下面列出一些主要选项:[tests]还可以使用操作符来组合这些测试项。可以使用括号来强制测试和操作符的优先级,但是要注意使用使用反斜杠"\"来引用括号,以确保括号没有被she原创 2013-11-22 17:31:54 · 1119 阅读 · 0 评论 -
【linux驱动分析】misc设备驱动
misc设备驱动,又称混杂设备驱动。misc设备驱动共享一个设备驱动号MISC_MAJOR,它在include\linux\major.h中定义: #define MISC_MAJOR 10miscdevice的结构体如下,它在include\linux\miscdevice.h中定义:struct miscdevice { int minor;原创 2014-04-22 13:49:04 · 1257 阅读 · 0 评论 -
【linux设备模型】之platform设备驱动
一、platform总线、设备和驱动 platform是一种虚拟总线,相应的设备称为platform_device,相应的驱动称为platform_driver。platform_device定义在中: 1 struct platform_device { 2 const char * name; 3 int id; 4原创 2014-04-22 13:46:33 · 1585 阅读 · 0 评论 -
内核中的链表list_head
在linux内核中,链表的实现是通过把链表结点嵌入到数据结构中。如:struct cx18_buffer { struct list_head list; dma_addr_t dma_handle; char *buf; u32 bytesused; u32 readpos;};链表结构体的定义在include\linux\types.h中:struc原创 2013-11-27 11:06:30 · 1063 阅读 · 0 评论 -
fedora9安装中文输入法
yum install im-chooseryum install scimyum install scim-pinyin这三个我的都是最新的了打开system->preference->personal->input method时,会提示错误,有bug,这个可能与自己安装fedora9时的配置有关。借鉴了网上一些资料,最终找到一个可用的方法:1、把安装盘安上(我原创 2013-11-04 14:58:33 · 1094 阅读 · 0 评论 -
Fedora9.0上网配置
原文来自:embeddedman的专栏 Fedora9.0上网配置经过两个小时的奋斗。终于在fedora9.0下面实现了上网,高兴之余将心得分享给大家吧!!!本文的上网软件环境如下:虚拟机——VMware7.0,虚拟系统连网方式为:host-only(虚拟机的三种上网方式参看我的上一遍博客),系统版本:Fedora9.0(内核版本:2.6.25),由于本人使用的是host-only连网转载 2013-11-27 16:42:59 · 1154 阅读 · 0 评论 -
linux块设备驱动
和字符驱动相比 ,在对磁盘,flash等设备进行读写时,块设备驱动可以进行优化合并等操作,提高了操作效率。 以下代码来自linux-2.6.38。LDD3电子书网页版的地址:http://oss.org.cn/kernel-book/ldd3/一、注册这个任务的函数是 register_blkdev(在 中定义):int register_blkdev(unsigned in原创 2014-04-21 16:01:28 · 928 阅读 · 0 评论 -
【linux驱动分析】之dm9000驱动分析(四):net_device结构体
net_device结构体,定义在include/linux/netdevice.h中,这是一个很复杂的结构体,先把代码清单列出来,再用到的过程中,逐步分析,最后来这里做个总结。下面的代码是linux-2.6.38中的。 1 /* 2 * The DEVICE structure. 3 * Actually, this whole structure is原创 2014-04-22 13:31:31 · 1645 阅读 · 0 评论 -
【linux驱动分析】之dm9000驱动分析(五):另外几个重要的结构体
除了sk_buff和net_device,dm9000驱动中用到的另外几个重要的结构体一、platform_driver定义在include/linux/platform_device.h中,代码如下:1 struct platform_driver {2 int (*probe)(struct platform_device *);3 int (*re原创 2014-04-22 13:33:59 · 1227 阅读 · 0 评论 -
【linux驱动分析】之dm9000驱动分析(六):dm9000_init和dm9000_probe的实现
一、dm9000_init打印出驱动的版本号,注册dm9000_driver驱动,将驱动添加到总线上,执行match,如果匹配,将会执行probe函数。1 static int __init2 dm9000_init(void)3 {4 printk(KERN_INFO "%s Ethernet Driver, V%s\n", CARDNAME, DRV_VERSION);原创 2014-04-22 13:35:16 · 1882 阅读 · 0 评论 -
【linux驱动分析】之dm9000驱动分析(七):dm9000的卸载挂起和恢复以及打开和停止
分析dm9000的卸载,挂起和恢复,以及dm9000的打开和停止。涉及到的函数为: 1 static int __devexit 2 dm9000_drv_remove(struct platform_device *pdev) 3 static int 4 dm9000_drv_suspend(struct device *dev) 5 static int 6 dm9原创 2014-04-22 13:36:28 · 1290 阅读 · 2 评论 -
linux下itimer定时器的应用
一、定时器操作Linux 为每一个进程提供了 3 个 setitimer 间隔计时器:1. ITIMER_REAL:减少实际时间,到期的时候发出 SIGALRM 信号。2. ITIMER_VIRTUAL:减少有效时间 (进程执行的时间),产生 SIGVTALRM 信号。3. ITIMER_PROF:减少进程的有效时间和系统时间 (为进程调度用的时间)。这个经常和上面原创 2014-04-10 23:57:32 · 1927 阅读 · 0 评论