摘要: 开发平台:pc(xp),虚拟机vwmare6.5、Linux操作系统Fedora9转自研发客:http://www.yanfake.com需要知道的知识:1、printk打印输出的优先级#define KERN_EMERG "<0>"/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/#define KERN_ALERT "<1>"/*报告消息,表示必须立即采取措施*/#define KERN_CRIT "<2>"/*临界条件,通常涉及严重的硬件或软件操作失败*/#define KERN_ERR 阅读全文
posted @ 2012-01-06 10:46 yanfake 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章里面我们编译了在X86体系的最简单的Linux下的入门驱动Hello,现在我们开始开发在ARM板上的最简单的Hello的驱动:转自研发客:http://www.yanfake.com开发环境:虚拟机上的Linux(Fedora)+ARM(11)+友善之臂的光盘带的linux内核linux-2.6.36开发步骤:1.先安装手册重新编译下内核和裁剪下文件系统,具体的就参考手册,上面写的很清楚,但是需要注意的是:在编译内核的时候不要选择linux_module_sample已经led和iic驱动,也就是不要包括hello驱动、led驱动、以及iic驱动。这个是为了方便在你的编译的驱动时好 阅读全文
posted @ 2012-01-06 10:44 yanfake 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 转自研发客:http://www.yanfake.com在网络环境下,当服务一个客户请求可能花费较长时间时,我们并不希望整个服务器被单个客户长期占用,而是希望同时服务多个客户。一般我们的处理方法是通过在while循环accept客户的链接,然后通过线程处理已经连接过来的客户。还有一种比较好的方法,就是通过unix的fork函数建立一个子进程来处理。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。注意内核对象的引用计数会增加两次,父进程一次,子进程一次。下面是伪 阅读全文
posted @ 2012-01-06 10:36 yanfake 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 转自研发客:http://www.yanfake.comgcc提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmain (only for C/ObjC and unless -ffreestanding) -Wmissing-braces -Wnonnull -Wp 阅读全文
posted @ 2012-01-06 10:24 yanfake 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异: 1、 单进程,单线程模式 在accept之后,就开始在这一个连接连接上的数据收接收,收到之后处理,发送,不再接收新的连接,除非这个连接的处理结束。 优点: 简单。 缺点: 因为只为一个客户端服务,所以不存在并发的可能。 应用: 用在只为一个客户端服务的时候。2、 多进程模式 accept返回成功时候,就为这一个连接fork一个进程,专门处理这个连接上的数据收发,等这个连接处理结束之后就结束这个进程。 优点: 编程相对简单,不用考虑线程 阅读全文
posted @ 2012-01-06 10:20 yanfake 阅读(200) 评论(0) 推荐(0) 编辑