自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (26)
  • 收藏
  • 关注

原创 LINUX内核调试相关--oops信息的定位

Ø  实验目的与意义 1 、掌握printk 的使用、设置及实现原理,理解分级别进行打印log 信息的实现方法 2 、掌握如何分析oops 的方法 3 、掌握strace 工具的移植和使用方法   Ø  基本原理和方法 1 、请回顾栈的工作原理,尤其是栈帧的作用 2 、请对照pr

2011-07-12 23:27:37 1809

原创 定位可动态加载的内核模块的OOPS代码行

定位可动态加载的内核模块的OOPS代码行 1. 从vmlinux获取具体的代码行 文章中albcamus版主也提到了,需要有自己编译的vmlinux,而且编译时打开compile with debug info. 这个选项打开之后会使vmlinux文件比不加调试-定位可动态加载的

2011-07-12 23:14:39 1353

原创 Linux 调试技术

本文讨论了四种调试 Linux 程序的情况。在第 1 种情况中,我们使用了两个有内存分配问题的样本程序,使用 MEMWATCH 和 Yet Another Malloc Debugger(YAMD)工具来调试它们。在第 2 种情况中,我们使用了 Linux 中的 strace 实

2011-07-12 22:50:24 1057

原创 gpio模拟I2C总线c代码实现

<br />#include <reg52.h><br />#define uchar unsigned char<br />#define uint unsigned  int<br />sbit I2C_SCL = P2^6;                //模拟I2C总线的引脚定义<br />sbit I2C_SDA = P2^7;<br />#define I2C_DELAY_VALUE    12       //定义I2C总线时钟的延时值,要根据实际情况修改,取值1~255<br />    

2011-03-07 23:46:00 2130

原创 linux等待队列使用步骤

<br /> <br />编写Linux驱动程序的一个问题是"到底如何使用等待队列呢"<br />  等待队列很容易使用, 尽管它的设计很是微妙, 但你不需要知道它的内部细节, 处理等待队列的最佳方式就是依照如下操作:<br />  1. 声明一个struct wait_queue * 变量. 你需要为每一个可以让进程睡眠的事件预备这样一个变量. 这就是我建议你放在描述硬件特性数据结构中的数据项.<br />  2. 将该变量的指针作为参数传递给不同的sleep_on和wake_up函数.<br />  这

2010-12-26 23:43:00 1042

转载 在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分: procfs、seq_file、debugfs和relayfs

一、procfsprocfs是比较老的一种用户态与内核态的数据交换方式,内核的很多数据都是通过这种方式出口给用户的,内核的很多参数也是通过这种方式来让用户方便设置的。除了sysctl出口到/proc下的参数,procfs提供的大部分内核参数是只读的。实际上,很多应用严重地依赖于procfs,因此它几乎是必不可少的组件。前面部分的几个例子实际上已经使用它来出口内核数据,但是并没有讲解如何使用,本节将讲解如何使用procfs。Procfs提供了如下API:struct proc_dir_entr

2010-12-26 23:07:00 767

原创 proc源码解析-proc文件系统的内容--proc数据结构--proc初始化

<br />在linux系统中,伪文件系统是系统中重要的组成部分,它与普通文件的最大差别在于它的易失性。普通文件都有固定的存储介质,而伪文件系统则存储在内存中,这也使得伪文件系统在系统掉电后,它保存的内容就会挥发掉。<br />Linux系统中存在以下几类伪文件系统:<br />1.procfs:proc提供内核和用户交互的平台,由于其文件格式是ASCII,所以用户可以使用cat,vim,echo等命令查看或修改文件,当然必须在root用户下才有相应权限。<br />2.sysfs:与procfs类似,由于

2010-12-26 22:41:00 1485

原创 Linux内核中的seq操作

<br />1. 前言 在fs/seq_file.c中定义了关于seq操作的一系列顺序读取的函数,这些函数最早是在2001年就引入了,但以前内核中一直用得不多,而到了2.6内核后,许多/proc的只读文件中大量使用了seq函数处理。以下内核源码版本为2.6.17.11。<br />2. seq相关数据结构<br />2.1 seq文件结构struct seq_file {<br /> char *buf;<br /> size_t size;<br /> size_t from;<br /> size_t

2010-12-26 22:36:00 991

原创 kernel module编程(八):读取proc文件之seq_file

<br /><br />在上次我们使用了read_proc的方式通过/proc文件读取kernel module的信息。作者给的例子他自己说是ugly。而我们在读取大量数据时发现,受到用户buffer大小的限制(page的大小),可能需要读取多次,不仅需要记录上次读取的位置,而且由于每次读取我们申请了信号量,读取完释放,那么如果多次读取的间隔中,如果信号量被写所获取就好出现混乱。linux kernel提供seq_file更好的方式来解决这个问题,除非我们确定读取的信息量非常少,能够在page中返回,我们应

2010-12-26 22:33:00 928 1

原创 Linux内核proc文件系统的冰山一角--源自对/proc/net/dev文件中各网卡参数的疑问

最近在调试网卡驱动时一直对/proc/net/dev 文件中各网卡参数是如何得来的有很大的疑问。insmod 以太网卡驱动后,cat /proc/net/dev 可以看到多了eth0的信息。开始,一直以为是驱动的代码调用某个写/proc文件的函数,从而把eth0的信息写到/proc/net/dev文件里。 可是反复看代码也没有发现相关的函数。今天突然想先拿/proc/interrupt 来分析一下,看了看linux-2.6.28的代码,就有了这篇《Linux内核proc文件系统的冰山一角--源自/pro

2010-12-26 22:29:00 1542 1

原创 inux procfs详解

<br /><br />目录<br />-----------------<br />0 序言<br />0.1 简介<br />0.2 责任<br />1 收集系统信息<br />1.0 proc文件系统概览<br />1.1 进程相关信息子目录<br />1.2 内核数据<br />1.3 IDE接口信息 /proc/ide<br />1.4 网络统计信息 /proc/net<br />1.5 SCSI接口信息 /proc/scsi<br />1.6 并行端口信息 /proc/parport<br />

2010-12-26 22:19:00 774

原创 platform_device和platform_driver

<br /><br /> <br />platform_device和platform_driver(一)<br />首先介绍一下注册一个驱动的步骤:<br />1、定义一个platform_driver结构<br />2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量<br />3、实现其probe、remove等函数<br />看platform_driver结构,定义于include/linux/platform_device.h文件中:<br /><br />s

2010-12-26 14:44:00 1071

原创 智能卡数据传输协议

<br /><br />智能卡数据传输协议<br /><br />  当智能卡送出ATR和可能发生的PTS后,它等待着从终端来的第1条命令,后继的处理永远相应于主从原则,终端为主而卡为从。具体而言,终端发送命令给卡,而后者执行它随后并回送——应答,这种命令和响应来来往往的相互作用永不改变。<br />  可以构造出与智能卡通信的不同方法。如果发生了一次干扰,这里也有大量的不同方法使之再同步通信。出现差错时命令的准确实现,相应的应答和采取的处理都规定在传输协议中。<br />  总共有15种可以使用的通信协议

2010-12-19 23:33:00 2082

原创 智能卡接口控制器(SIM)ATR应答

<br /><br />智能卡接口控制器(SIM)ATR应答 <br /><br />ISO7816 标准是个标准的半双工接口,本模块作为主设备,控制SIM 卡的操作,SIM 卡<br />作为从设备只有在两种情况下产生应答信号:<br />收到RST 信号后发送ATR、接到命令后应答。<br />因此,SIM 卡驱动模块作为主设备,主要完成两个操作:发送RST 等待ATR,发送命令并等<br />待SIM 卡的应答。<br />TX, XMT, 发送transmit<br />RX, RCV, 接收Rec

2010-12-19 23:09:00 6094 3

原创 回调函数

<br /> <br />如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这称为回调函数(Callback Function)。<br /><br />回调机制包括两部分:服务执行者和服务方式制定者。<br />             1. 服务执行者先制定服务规范;<br />             2.服务方式制定者然后按照规范制定服务方式;<br />             3.然后执行者按照这个方式提供服务。<br />回调函数的方式是把函数指针的作为参数传递进

2010-12-19 20:05:00 782

原创 request_irq() | 注册中断服务

<br /> <br />在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include <linux/sched.h> ,2.6 内核中需要包含的头文件则是<br />#include <linux/interrupt.h> 。函数原型如下:<br />· 2.4 内核 <br />int request_irq (unsigned int irq, void (*handler)(int, void *, struct

2010-12-19 19:58:00 3936

原创 mknod详解Linux学习

<br />mknod - make block or character special files<br />mknod [OPTION]... NAME TYPE [MAJOR MINOR]<br /> option 有用的就是 -m 了<br /> name 自定义<br /> type 有 b 和 c 还有 p<br /> 主设备号<br /> 次设备号 <br />主设备号是由/usr/src/linux/include/linux/major.h定义的,如

2010-12-19 19:55:00 1302

原创 assert() 函数用法

<br />综合 资源 电子书 社区 <br />assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: <br />#include <assert.h> <br />void assert( int expression ); <br />assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。 使用断言,常用于调试的时候。<br />请

2010-12-19 19:53:00 650

原创 内核驱动的一些技术处理函数

<br />//***********************************************************<br />1./* 工作队列: */<br />step 1)/* 定义和初始化: */<br />static struct workqueue_struct *wq = NULL;<br />static struct work_struct work_delayed;<br />wq = create_workqueue("skeleton_dev_wq")<br /

2010-12-19 19:51:00 525

原创 字符界面编程利器——vim + ctag + Taglist

<br />习惯了在windows下用sourceInsight编程的人,当然也希望在linux的字符终端下也能有一样酷的软件,这里要介绍给大家的是如题所示的三款软件:vim , ctag 和Taglist 。<br />很多时候我们需要在多个源程序之间实现函数、宏定义、外部变量等的跳转查询,甚至有时候需要到内核或库源代码里窥视他们真面目,我们也需要有列出程序内部所使用的各个函数、变量、宏等等信息的工具,这些功能仅仅靠vim完成是比较困难的,但也不必失望,因为我们还有两件利器:ctag负责建立标签,为实现文

2010-12-19 19:39:00 699

原创 ISO7816-1-2-3.doc

第一部分 卡片基本规范 目 次1 主要内容 32 参考资料 33 定义 34 缩略语和符号表示 5 物理特性、卡上信息记录方法和物理接口要求6 电特性7 卡的操作过程8 复位应答 1 主要内容 本规范的这一部分规定了ID-1型带触点集成电路卡的基本

2010-12-19 19:22:00 3726

转载 数字机顶盒原理

其实说白了,数字机顶盒就是一种把数字信号转换成模拟信号的变换设备。我们大部分时候会产生这样的疑问,既然从电视台发出的是模拟信号,接收到电视机的也必须是模拟信号,那为什么还要用到数字机顶盒呢?现在生活中,我们总是希望自己的电视机能播放清晰度高的电视节目,从模拟电视向高清晰度数字电视过渡,是一个跨越式的过渡,可以说无法直接兼容,也就是说目前的所有的模拟电视是不能使用的,所以一步到位是不现实的。通常现在的做法是:电视台将模拟信号先转换成数字信号,传送到家中的数字机顶盒后,将数字信号转变成模拟信号输入给现在的模

2010-12-16 00:16:00 951

多款yuv图片预览软件

有3款YUV图片预览和播放工具,YUVPlayer_播放器,YUVTools_3.0,seqplay 支持多种YUV格式,支持分辨率可设置,

2013-04-23

vc调试方法

vc 的多种调试方法 调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。

2012-02-28

AT24C08_datasheet

AT24C08,datasheet,datasheet

2011-03-14

I2C总线时序分析及其模拟

I2C总线时序分析及其模拟,已论述的方式讲述了i2c模拟时序,和i2c特点

2011-03-07

gpio模拟i2c总线c代码

gpio模拟i2c总线c代码,仅供参考学习,实际应用需要做些调整

2011-03-07

gpio模拟i2c技术总结

gpio模拟i2c相关步骤和名词解释,以及设计时候需要注意的重要的信号的处理

2011-03-07

I2C协议 标准英文协议

I2C协议 标准英文协议,喜欢读原著的人请下

2011-02-25

I2C协议 标准中文协议

I2C协议 标准中文协议 符合标准规范 。。。。。。。。。。

2011-02-25

第3章+printf格式输入输出语句1.ppt

关于 printf格式输出 打印各个格式规范 scanf输入语句规范

2010-12-26

procfs-guide.pdf

procfs-guide.pdf procfs 文件系统函数定义使用英文手册

2010-12-26

Linux设备驱动程序(英文翻译版第三版).pdf

Linux设备驱动程序(英文翻译版第三版) linux驱动开发的实用手册

2010-12-20

常用linux命令.doc

非常齐全linux 命令 所以的命令都有详细的解释用法

2010-12-19

Linux_C_函数参考.pdf

Linux_C_函数参考.pdf 标准linux 的C库函数查询手册

2010-12-19

C&amp;C++库函数.chm

c c++ 标准库函数查询 ++++++++++++++++

2010-12-19

iso7816_123_en.pdf

iso7816_123英文协议 前1、2、3章节

2010-12-19

智能卡数据传输T=1传输协议

智能卡数据传输T=1传输协议 T=1协议是面向字组的协议,这就是说一个字组是卡和终端之间可以传输的最小数据单元。

2010-12-19

智能卡数据传输协议T0

当智能卡送出ATR和可能发生的PTS后,它等待着从终端来的第1条命令,后继的处理永远相应于主从原则,终端为主而卡为从 总共有15种可以使用的通信协议,它们的基本功能都做了规定。这些协议均以“T=”(来源于“传输协议”一词的头一个字母)加上一个序列号来命名

2010-12-19

ISO+IEC 7816-3-2006.pdf

ISO 7816-3英文协议 有关IC卡传输协议的详细说明

2010-12-19

PuTTY-v0.60.rar

PuTTY-v0.60工具软件 串口支持 ,SSH远程登录支持

2010-12-19

gvim72_windous版

windows下的vim软件,实现 linux相关文件的读取

2010-12-19

vimrc设置命令1

有关 vimrc设置命令 设置 缩进 颜色 自动对齐 编辑返回上一次的位置等

2010-12-19

配置exports文件实现网络硬盘映射

通过 配置exports文件 启动linux网络挂载 实现网络硬盘映射到windows

2010-12-19

如何给ubuntu Vmware虚拟机添加硬盘

ubuntu Vmware虚拟机添加硬盘 很实用的方法 当当前虚拟机的硬盘空间不足时 只要windows下的空间够就可以任意扩展

2010-12-19

putty.exe使用方法,简单中文教程

最简单的使用,登录 SSH 主机 中文乱码的处理 PuTTY 常用配置的说明 复制、粘贴 保存会话 注销 自动登录用户名 自动设置环境变量 设置代理服务器 自动执行命令 备份、删除 PuTTY 的设置

2010-12-19

ISO7816-1-2-3

ISO7816的中文协议 主要关于 智能卡的传输协议 复位应答字分析

2010-12-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除