自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (7)
  • 收藏
  • 关注

转载 linux设备驱动之工作队列学习(workqueue)

首先要注意本文的两个概念:(1)使用内核提供的工作队列, (2)自己创建工作队列http://blog.csdn.net/fontlose/article/details/8286445  工作队列是一种将工作推后执行的形式,交由一个内核线程去执行在进程上下文执行,其不能访问用户空间。最重要特点的就是工作队列允许重新调度甚至是睡眠。工作队列子系统提供了一个默认的工作者线程来处理这些工作。默

2016-05-26 14:33:30 1975 1

转载 C语言实现修改文本文件中特定行的实现代码(百度一天没找到,bing搜索十分钟就找到了)

好的,首先我先叙述下功能要求:其实很简单,就是Shell中sed命令的C语言实现,实现定位到所需要的字段的那一行,之后修改成需要的内容。但是由于C语言是面向过程的语言,需要顺序执行的特点,所以,实现中遇到了很多麻烦,在这里博主将实现的过程描述如下,以便大家参考。问题描述:文本内容:复制代码 代码如下:wireless.1.authmode=1wireless.1.c

2016-05-03 20:07:10 914 2

转载 《深入理解Linux内核》软中断/tasklet/工作队列

《深入理解Linux内核》软中断/tasklet/工作队列软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。本文重点在于介绍这三者之间的关系。(函数细节将不会在本文中出现,可以参考文献,点这里

2016-05-30 13:35:17 665

转载 platform驱动模型编程总结(基于mini2440平台的LED驱动)

sysfs与platform的相关基础介绍可以参考博文【 sysfs   platform总线 】。platform模型驱动编程,需要实现platform_device(设备)与platform_driver(驱动)在platform(虚拟总线)上的注册、匹配,相互绑定,然后再做为一个普通的字符设备进行相应的应用,总之如果编写的是基于字符设备的platform驱动,在遵循并实现pl

2016-05-30 09:34:50 302

转载 关于platform中的id_table

转载 http://blog.csdn.net/mcgrady_tracy/article/details/38980991内核版本:Linux-3.4.67platform的match函数如下:[cpp] view plain copyprint?/**  * platform_match - bind platform device to p

2016-05-28 13:49:07 1443

转载 linux下jiffies定时器和hrtimer高精度定时器

一、jiffies定时器,HZ=100,精度只能达到10ms。注:采用jiffies+msecs_to_jiffies(xx ms);可做到ms级,不过精度不够 #include //DO-->jiffies调用头文件#include   //DO-->timer_list结构体static struct timer_list ms_timer;//DO-->定义timer_l

2016-05-28 13:47:19 1080

原创 irda-objs和irda-obj的差别,烧写一个字母的悲剧

irda-objs:=ircon.o xxx.o XXX1.oobj-m += irda.o上面irda-objs写成irda-obj 少了一个字母s ,就造成了半天悲剧,一直以为是什么问题,各种EXPORT_SYMBL 和extern ,还是提示函数没定义,后来发现是前面的根本没编译,因为提示irda.c 找不到,这里irda 是依赖ircon.o xxx.o XXX1.o,

2016-05-27 17:52:02 845

转载 Linux内核驱动将多个C文件编译成一个ko文件的方法——每个C文件里都有module_init与module_exit,moduleinit

Linux内核驱动将多个C文件编译成一个ko文件的方法——每个C文件里都有module_init与module_exit,moduleinit以两个C文件为例:将本该被分别编译成adc_device.ko和adc_driver.ko的adc_device.c、adc_driver.c编译成一个ko文件!采用方法: 第一步、修改C文件1、去掉adc_device.c文件里

2016-05-27 16:32:29 3116

原创 cp: 无法通过符号链接"文件名" 进行操作 问题

拷贝文件有问题?

2016-05-27 09:54:45 9626 1

转载 linux 内核定时器 timer_list / mod_timer/init_timer

linux内核使用timer_list 结构体当作定时器。点击(此处)折叠或打开#include linux/timer.h>#include linux/module.h>MODULE_LICENSE("GPL");                     //不加这句话,虽然不影响功能,但“有时候”程序执行时会打印错误,类似 Di

2016-05-26 16:16:04 6661

原创 arm 红外驱动

参考案例1、单片机NEC协议的红外遥控器驱动程序http://wenku.baidu.com/link?url=csCdS9J-J5XadP1DHXzPE7kR_7hqo8zoF3X8TXpf5_N4oqRk0tUwrewBh7Nq-FoR6Pg4kXlXxCxMZexq-6KMowAndefRmJr6-l1c-rhmaFm2、NEC 红外编码规则http://wenku.

2016-05-26 16:01:10 1025

转载 浅谈时间函数gettimeofday的成本 ——gettimeofday是由底层do_gettimeofday返回的?!

转自       我们在程序中会频繁地取当前时间,例如处理一个http请求时,两次调用gettimeofday取差值计算出处理该请求消耗了多少秒。这样的调用无处不在,所以我们有必要详细了解下,gettimeofday这个函数做了些什么?内核1ms一次的时钟中断处理真的可以支持tv_usec字段达到微秒精度吗?它的调用成本在i386/x86_64体系架构上代价一样吗?如果在系统繁忙时,频繁的调用

2016-05-24 09:28:46 4344 1

转载 Linux输入子系统(Input Subsystem)

Linux输入子系统(Input Subsystem)linux设备驱动那点事儿之输入子系统理论篇 (2011-08-01 23:41)分类: linux设备驱动程序分析 Linux输入子系统(Input Subsystem)1.1.input子系统概述输入设备(如按键,键盘,触摸屏,鼠标等)是典型的字符设备,其一般的工作机制

2016-05-23 14:39:36 328

转载 以微秒为单位的精确计时gettimeofday函数

以微秒为单位的精确计时long long L1,L2,L3;timeval tv1;//取一个时间gettimeofday(&tv,NULL);L1 = tv.tv_sec*1000*1000 + tv.tv_usec; //执行一些代码,如算法1... //第二次取时间gettimeofday(&tv,NULL);L2 = tv.tv_sec*1000

2016-05-23 10:48:05 3187

转载 C语言中常用计时方法总结

转自 http://blog.csdn.net/junnes/article/details/7612674 不过,我想问这些函数都能在驱动下调用吗? C语言中常用计时方法总结1. time()头文件:time.h 函数原型:time_t time(time_t * timer) 功能:返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到现在的此时

2016-05-23 10:44:07 666

转载 hrtimer的简单使用 + 原理和实现

1.hrtimers - 为高分辨率kernel定时器,可作为超时或周期性定时器使用1). hrtimer_init初始化定时器工作模式。hrtimer_init(&vibe_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);vibe_timer.function = timer_func;/* 设置定时器的回调函数,定时器到时该函数将被调用 */

2016-05-21 17:01:38 3034

转载 linux下的irda (remote control)驱动分析

http://lxr.free-electrons.com/source/drivers/media/rc/gpio-ir-recv.c简单分析了一下1. 通过设备树来选择接上rc的gpio2. 设置上升与下降沿中断,前提是这个接上RC的GPIO必须支持中断功能3. 中断来了以后判断高低电平,标识是IR_SPACE还是IR_PULSE通过以下函数传递rc = ir_raw_ev

2016-05-21 16:57:18 2909

转载 工作队列-schedule_delayed_work()用法

原文地址:schedule_delayed_work()用法作者:Valley  第一篇 工作队列      在Linux内核中,对下半部(或者说推后执行的工作)的处理方式有好几种,包括BH(bottom      half),软中断,Tasklets和工作队列等等。在2.6内核中,大名鼎鼎的BH处理被废除,新增了更方便的工作队列。工作队列的方便之处在于它把 工作推后,交由一个内核线程

2016-05-20 22:14:34 11471

转载 Linux gpio 按键中断学习

转自 http://blog.chinaunix.net/uid-14753126-id-2983036.html先说明一下按键与S3C2440芯片的连接方式:KEY1 EINT8 GPG0KEY2 EINT11 GPG3KEY3 EINT13 GPG5KEY4 EINT14 GPG6KEY5 EINT15 GPG7KEY6 EINT19

2016-05-20 17:11:01 6094

转载 内核驱动中常见的miscdevice、platform_device、platform_driver

最近在看驱动模型,是越看越糊涂,以前接触比较多的都是一些字符驱动,对字符驱动的框架有一定的了解。后来因为想在驱动中实现设备文件的创建,又了解了一下,sysfs文件系统和udev设备文件系统,必然就涉及到了驱动模型。可是发现驱动模型和以前接触的字符驱动没什么联系。比如,以前写字符驱动,主要的内容就是实现file_operations结构体里的函数,然后就是申请设备号,注册字符设备,根本就没有涉及

2016-05-20 11:15:32 542

转载 ds18b20 Linux驱动

DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。工作电压 3.0~5.5V/DC 超低功耗静态功耗测量结果以9~12位数字量方式串行传送。 面对着扁平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该传感器总是显示85℃的原因。DS18B20实物图 DS18B20电路如图如下 驱动代码如下DS18B2

2016-05-20 09:55:41 3139

原创 ko驱动模块rmmod 后insmod 异常问题解决

insmod xxx.koldo6: Failed to create debugfs directory-->set voltage ret 0 min_uV=3300000, max_uV=3300000-->***set xxx cvbs voltage to 3.0vxxx_init()nr 2i2c i2c-2: Failed to register i2c cl

2016-05-13 15:27:02 3307

原创 insmod: can't insert 'xxx.ko': File exists 问题解决

已经rmmod xxx ,没提示什么,重新insmod xxx.ko提示insmod: can't insert 'xxx.ko': File exists怎么解决?

2016-05-13 15:20:58 13471 3

原创 IIC 读写时候提示 timeout waiting for bus ready

昨晚还是可以读写的,早上再测试发现就会打印timeout waiting for bus ready,测试SDA和SCL引脚发现引脚电平被拉低了,后来换了一个板子,又可以了,不懂为啥就会坏了,坑爹货!

2016-05-13 11:09:33 3823 2

原创 ko驱动加载时候提示init suspiciously returned 20, it should follow 0/-E convention

ko驱动加载时候提示init suspiciously returned 20, it should follow 0/-E conventiondo_init_module: loading module anyway...      rm ko驱动时候没 提示啥,但是在此insmod ko 驱动提示文件已经存在,看来还是有一些东西没卸载完毕。

2016-05-13 11:07:49 1811

原创 编译Linux/Android 输出很多信息很难找到错误/警告信息怎么办?

记住,Linux无所不能,有办法的!1.只保留错误信息: make 2>log.txt               #(注意2和>之间不要空格)2.保留错误信息和警告信息:   make  > log.txt 2>&1         试了一下,一下子就找到错误的地方了!good !

2016-05-12 20:43:12 1635

转载 Android/linux 平台下使用 i2c-tools调试IIC方法

在busybox包含i2c-tools工具,使用时只需busybox+指令只可。i2cdetecti2cdumpi2cgeti2cseti2cdetect列举 I2C bus[cpp] view plain copyprint?# i2cdetect -l  i2c-0   i2c             imx-i2c   

2016-05-10 22:30:43 5545

原创 ./i2cdetect -y 2 Error: Can't use SMBus Quick Write command on this bus

./i2cdetect -y 2 运行后,提示无效怎么回事?Error: Can't use SMBus Quick Write command on this bus  别的总线到时没有这个问题。难道?是我已经insmod i2c-2 的缘故?

2016-05-10 20:12:55 6241 7

原创 ./i2cdetect: line 1: syntax error: unexpected word (expecting ")")

运行 ./i2cdetect: line 1: syntax error: unexpected word (expecting ")") 怎么回事?奇葩啊,再看看

2016-05-10 19:56:00 1998

转载 i2c tool 的使用

i2c tool 的使用  1,下载源码:  http://packages.debian.org/search?keywords=i2c-tools2,解压源码包:     tar -xvf i2c-tools-3.1.0.tar.bz22、解压后,可手工编译:    arm-none-linux-gnueabi-gcc  -O2  

2016-05-10 18:19:18 3042 1

原创 make: 没有什么可以做的为 `all'。

改了一下makefile,编译了一下,通过了,但是,当我再次修改一些东西再编译的时候,日日日!提示 make: 没有什么可以做的为 `all'。      吓我一跳,以为有问题了,O(∩_∩)O~,原来是没更新程序和makefile 就是什么都不干,make clean 一次,编译过程又有了,汗!菜鸟在匍匐前进ing

2016-05-10 18:18:00 12790 1

原创 下面是什么错误?咋回事呢,系统都没更新就不启动了。

===================================================================[MIR3DA] at mir3da_core_init[MIR3DA] read ok[MIR3DA] Probe gsensor module: NSA_NTOat mir3da_chip_resumeat mir3da_pa

2016-05-09 22:48:01 2398

原创 再次体验 sscanf函数的强大

本来好复杂的一个文件读写程序,只要经过sscanf 函数出马,立即减少了几百行处理文件字符#photo 21 photo.capturemode=Single #Single (2S Timer) (5S Timer) (10S Timer) 22 photo.resolution=2MHD #2MHD VGA 1.3M //12M 10M 8M 5M 3M  23 photo

2016-05-04 11:24:48 1042

原创 Linux c语言实现修改文本字符串

要在Linux c 程序里面实现文本的字符串读写,百度一下,都是比较简单的字符串处理,并没有类似的说明,后来换成bing 找到一些蛛丝马迹http://bbs.csdn.net/topics/390016741这个CSDN的 topic 不错虽然没有直接达到我的要求,至少我能找到重要的线索了用seek 去定位FILE *fp;char line[256],*pStr;c

2016-05-03 15:18:25 2266

IIC上拉电阻选择远离

电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响 I2C上拉电阻确定有一个计算公式:

2013-11-21

S5PV210 最新排版最合理的三星英文datasheet

S5PV210 最新排版最合理 datasheet 三星英文数据手册 S5PV210_UM_REV1.20_1123.pdf 市面上大部分是1.00 或者1.10 目录排版这个都做了改进不错,适合长期使用S5pv210 同志们用。资源丰富,来自于购买原厂三星S5pv210 开发板的光盘,拥有的人不多。

2013-11-08

win7 64 bit 系统ActiveSync 连接软件

ActiveSync6_win7_64.zip ,win7 64 bit 系统ActiveSync 连接软件安装 ,试过的确OK,win8 试过貌似没用,希望后人出win8的吧。现在笔记本很多是win8 的

2013-07-31

《GPS应用程序设计》书籍源代码

《GPS应用程序设计》书籍源代码 《GPS应用程序设计》源代码。本软件是专为《GPS应用程序设计》一书配套发行的。包括: 1、 data_log.c 数据采集程序 2、 rinexout.c RINEX数据格式写入子程序 3、 to_rinex.c 数据格式转换 4、 sav_pos.c 卫星位置计算程序 5、 sky_sav.c 卫星天空显示程序 6、 dop_calc.c 卫星星座DOP计算程序 7、 view_sav.c 历书预报卫星出现程序 8、 absl_pos.c 单点绝对定位程序 9、 ssgsoft.c -- 相对静态定位主程序 10、 controlf.c ? 读取输入文件子程序 11、 orbit.c -- 选择参考卫星子程序 12、 broad.c -- 读广播星历计算子程序 13、 igs.c -- 读 IGS 精密星历子程序 14、 singlep.c -- 近似位置计算子程序 15、 rinex.c -- 读 Rinex 数据、探测跳周、组成单差子程序 16、 eqdd_s.c -- 组成双差方程子程序 17、 normdd_s.c ? 组成法方差子程序 18、 ad_core.c -- 平差子程序19、 ambifix.c -- 模糊度固定子程序 20、 tranf.c -- 坐标变换子程序 21、 dgps_ppr. 相位平滑伪距改正数计算程序 22、 dgps_phr 准载波相位改正数计算程序 23 rtcmencd.c RTCM 电文编码程序 24 rtcmencd.c RTCM 电文译码程序 25、 net_dgn.c 测量格网设计程序 26 sur_ctr.c 动态测量控制程序 27、 replay.c 动态测量数据回放程序 28、 kin_tran.c 动态定位坐标转换程序 29、 rms.c 定位精度估计程序 30、 tide.c 潮位改正程序 31、 xybl_54.c 54坐标变换程序 32、 xyxy_loc.c 任意坐标系转换程序 33、 gga+gsv.c GGA和GSV数据模拟程序 34、 depth.c 水深数据模拟程序 35、 gg_pos.c GPS+GLONASS导航程序 36、 menu1.c DOS环境换页式菜单程序 37、 menu2.c DOS环境下拉式菜单程序 38、 menu3.c windows95环境下拉式多层界面菜单程序 39、 makedata.c 利用RINEX格式文件data.98n和data.98o形成的data.out文件,供计算单点定位用

2013-02-01

空空如也

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

TA关注的人

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