09 2014 档案

摘要:在驱动程序编写过程中,很少会注意到IO Port和IO Mem的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。结合下图,我们彻底讲述IO端口和IO内存以及内存之间的关系。主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM作为缓冲区。1.CPU是i... 阅读全文
posted @ 2014-09-24 14:32 圣哥 阅读(258) 评论(0) 推荐(0)
摘要:在阅读协议栈代码(内核版本2.6.38),在很多地方都看到panic调用,只是知道大体功能,从未具体分析过,也一直想把协议栈的分析过程写下来,很懒,就一有写,算今天是个开始吧。分析panic太艰难啦,涉及的东西太多啦。/***panic - halt the system*@fmt: The te... 阅读全文
posted @ 2014-09-24 13:46 圣哥 阅读(2221) 评论(1) 推荐(0)
摘要:在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly。本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^)。 注... 阅读全文
posted @ 2014-09-24 10:43 圣哥 阅读(199) 评论(0) 推荐(0)
摘要:整天说内存,寄存器,端口,他们有什么联系,有什么不同之处,你了解他们么?第一、寄存器和内存的区别寄存器和内存都是可以用来读写的,但寄存器的操作时有副作用,称之为(side effect 边际效果)读取一个寄存器可能导致寄存器中的内容发生变化,比如在一些设备的中断状态寄存器中,读取了寄存器后会自动清零... 阅读全文
posted @ 2014-09-22 12:55 圣哥 阅读(489) 评论(0) 推荐(0)
摘要:内核3.1引入一套新的API regmap,目的是提取出关于I2C SPI irq等相关注册、使能以及读写的公共部分,以提高代码的可重用性,并且使得在使用如上内核基础组件时变得更为简单易用。0 基础结构structregmap_config{intreg_bits;//寄存器地址的位数,必须配置,例... 阅读全文
posted @ 2014-09-22 12:46 圣哥 阅读(956) 评论(0) 推荐(0)
摘要:gitclonegit://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 阅读全文
posted @ 2014-09-19 10:40 圣哥 阅读(1344) 评论(0) 推荐(0)
摘要:1. 开放端口命令: #iptables -I INPUT -p tcp --dport 6666 -j ACCEPT #iptables -I INPUT -p udp --dport 6666 -j ACCEPT #iptables -I OUTPUT -p tcp --dport 6666 -... 阅读全文
posted @ 2014-09-15 11:33 圣哥 阅读(936) 评论(0) 推荐(0)