技术文档
smilingjames
思想上的懒人,转型中......
展开
-
Linux基础系列-定时器与时间管理
一段经典摘抄,OS的心跳,很重要,但很少引起人的注意,除非碰到相关问题。 1、节拍率——HZ:在alpha体系结构上是1024,而在其它平台上,都为10数量级倍。在嵌入式ARM上为100(2.6内核)。这个值的意义是什么呢,也就是在arm平台上时钟中断100次,为一秒。一般的情况下编程者不要改变这个值,因为内核编很多代码都是有时间要求的,而且内核编写都在很多地方都做了相应的优化与折衷处理,改变HZ的值会对系统的性能有很大的影响。 2、jiffies:这个值是用来记录系统自系统启动以来产生的节拍的总数转载 2010-10-18 17:13:00 · 1024 阅读 · 0 评论 -
Linux基础系列-DEBUG-2
gdb能为我们做些什么:之前有篇文章稍微介绍了点debug工具-gdb的工作原理。我们可能对gdb如何发挥作用有了一些了解,可问起gdb能为我们做些什么时,可能大多数人除了调试程序外,难以有一个具体点的回答,这篇文章也就权当做一个小总结,让我们除了知道搅拌机是如何工作的,还知原创 2011-08-22 16:23:59 · 638 阅读 · 0 评论 -
Linux子系统系列-网络
该网卡了,之前一直不敢接触的一块。先简单化在复杂化吧,可以提纲挈领,一览全局。0,简介1,框架2,实现 0,简介网卡设备在Linux的地位比较特殊,不同于其他设备,网卡设备没有特定的文件对应,Linux对他做了专门的处理。Linux的网络设备子系统主要原创 2011-09-07 16:12:29 · 746 阅读 · 0 评论 -
Linux子系统系列-TTY
处理过几个串口的问题,这几天才稍微有了些时间来整理一下这一块的东西。 目录暂时大致分为以下几部分吧: 0,背景 1,串口驱动的结构 2,串口驱动的实现 3,关于TTY core --------------------------------------------------------------------------------------------------- 0,背景原创 2011-06-08 17:42:00 · 3236 阅读 · 0 评论 -
Linux子系统系列-PCI
趁这几天有空,将PCI这块的东西也简单整理一下。关于PCI,fudan_abc大侠的“PCI那些事儿”是最佳的,这里简单根据一些工作笔记做些整理,点一下大致框架,以作备忘。 0,背景 1,PCI driver结构 2,PCI driver实现 3,关于PCI core ------------------------------------------------------------原创 2011-06-09 16:17:00 · 2102 阅读 · 0 评论 -
Linux基础系列-信号及信号处理
<br />基础系列比子系统系列好些,这个系列大部分都是摘抄,很多兄弟在前面做了很好的总结,在此感谢他们。<br />最近处理一个调试的问题,涉及到linux的信号,在此总结一下,以作备忘<br />+++++++++++++++++++++++++++++++++++++++++++++++++++++<br />目录:<br />1,linux的信号<br />2,信号处理<br />3,debug中如何处理信号<br />4,如何在多线程应用中编写安全的信号处理函数<br /> <br />一,lin转载 2011-02-23 13:26:00 · 620 阅读 · 0 评论 -
Linux子系统系列-时钟子系统
年前处理了一个涉及linux时钟子系统比较麻烦的问题,问题虽然解决了,但在过程中遇到很多不太清晰地的地方,今天一起整理一下 由于本人涉猎不广,不思进取,所总结东西大部分来源于网络,希望能早日迈过这个层次,多有些自己的东西,一些自己在技术方面的积极思考。 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 目录: 1,时间在Linux的地位 2,Linux如何管理时间 3,时钟子系统的实现 4,在Linux中如何计时 5,Linux出了一原创 2011-02-24 16:35:00 · 4977 阅读 · 0 评论 -
Linux子系统系列-I2C
<br />该篇不属于原创,主要是最近解决了一个I2C的问题,期间看了很多大侠的博文,现在将这个子系统整理一下。<br />整个I2C framework, eric.xiao大侠做了很详尽的叙述,给了我很大帮助,在此表示感谢,好像也是成都的,有缘....<br />++++++++++++++++++++++++++++++++++++<br /> <br />这里用稍微“粗俗”一点的语言稍微记录一下,方便记忆即可,<br /> <br />i2c 驱动框架包含三层:<br />1,i2c core:提供原创 2010-11-19 16:46:00 · 1240 阅读 · 0 评论 -
Linux基础系列-DEBUG
linux的调试包括了用户层的调试和内核的调试,主要使用的工具就包括gdb和kgdb。 该篇着重介绍linux编程环境中,调试器的工作原理,关键技术,平台依赖部分的区别,较少着墨用法。如果时间充分,会touch一下multi—thread的调试 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 一,debugger 工作基础 看似神秘的debugger其实工作在一些简单的技术上,虽然不同的平台会有一些差异,但其基本原理还是类似的,下原创 2011-01-09 11:48:00 · 1268 阅读 · 0 评论 -
Linux子系统系列-SPI
在这个系列中,尽量catch point,将一些关键突破点列出,该系列来源于宋宝华老师的文章,fudan_adb大侠的一些文章和我的一些工作笔记。主要内容可能涵盖:SPI,PCI,USB,MM,PM,FS,Interrupt,可能几个难的子系统还不能尽快补上,像MM,PM,但会尽量将这个弄的简略而又不失丰富。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 像fudan_abc大侠所说的,当你理解了linux driver fr原创 2010-10-21 11:58:00 · 4571 阅读 · 2 评论 -
Linux基础系列-内存与I/O操作
<br />该文大部转自宋宝华老师的文章,自是将它纳入自己整理的一个小体系中,这个系列中如果没有很合适的文章,会用原创补上。<br /> <br /> <br />+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br /> <br />对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的转载 2010-10-18 16:26:00 · 942 阅读 · 0 评论 -
Linux基础系列-Kernel 初始化宏
在看linux代码时,很多驱动的init函数里面都有类似core_initcall,subsys_initcall的宏,一开始可能不明白这些宏是做什么用的,后来可能猜得出是内核初始化时调用的,再后来可能对内核如何调用这些初始化的宏感兴趣,这里就总结一下,权当备忘。 前言 宏定义__define_initcall(level,fn)对于内核的初始化很重要,它指示 编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序 放在一个section中。在内核初始化阶段,do_i转载 2010-10-19 02:57:00 · 1281 阅读 · 0 评论 -
Linux基础系列-可执行程序的产生过程
Linux通常使用gcc,利用gcc编译器如何产生可执行程序在这里将有一个清楚介绍,以备参考: 一、GCC快速入门 Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件] 其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件.out 我们来看一下经典入门程序"Hello World!" # vi hello.c #include #include void main(void) { printf("hello world!/r转载 2010-10-18 09:17:00 · 1361 阅读 · 0 评论 -
Linux子系统系列-USB
最近调查了MUSB的一个问题,将USB这块的框架简单梳理了一下,趁热这次做下记录,能提纲挈领即可/*****************************************************************/目录0,背景1,USB 子系统结构2,USB 子系统实现0,背景以前刚接触到USB设备-u盘时,我们每次都原创 2012-02-27 10:51:01 · 2018 阅读 · 0 评论