- 博客(46)
- 资源 (9)
- 收藏
- 关注
原创 深入linux设备驱动程序内核机制(第十章) 读书笔记
第十章 内存映射与DMA 本文欢迎转载, 请标明出处 本文出处http://blog.csdn.net/dyron 本章讨论驱动如何实现内存映射和进行DMA操作, 内存映射的任务是将设备的地址空间映射到用户空间或直接 使用用户空间的地址, 这样做的目的显然是从提升系统性能的角度出发. 10.1 设备缓存与设备内存 设
2013-06-20 09:22:14 5985 4
原创 深入linux设备驱动程序内核机制(第九章) 读书笔记
第9章 linux设备驱动模型 本文欢迎转载, 请标明出处 本文出处: http://blog.csdn.net/dyron9.1 sysfs文件系统 sysfs文件系统可以取代ioctl的功能. sysfs文件系统的初始化发生在linux系统的启动阶段: int __init sysfs_init(voi
2013-06-19 09:48:35 2152 1
原创 深入linux设备驱动程序内核机制(第八章) 读书笔记
第八章 时间管理 驱动对时间进行操作, 典型的可以分为两大类:延时与定时. 前者是两个连续的动作A与B之间插入一段时间空 白, 即在A执行后需要等待若干时间才能执行B, 这段时间空白内, 处理哭也许是进入忙等待, 也许是切换到一 个新进程上. 后者是在一个指定的时间点到后执行某此动作, 轮询是最典型的应用. 欢迎转载本文, 请标明出处 本文
2013-06-18 09:07:08 1895
原创 深入linux设备驱动程序内核机制(第七章) 读书笔记
第七章 设备文件的高级操作 本文欢迎转载, 请标明出处. 本文出处:http://blog.csdn.net/dyron7.1 ioctl文件操作 7.1.1 ioctl的系统调用 用户空间ioctl的原型为: int ioctl(int fd, int request, ...); 驱动空间ioctl的原
2013-06-17 09:10:46 3734
原创 深入linux设备驱动程序内核机制(第六章) 读书笔记
第六章 延迟操作 tasklet需要在中断上下文中执行, 所以有些延尽操作无法用它来完成, 为此内核又提供了一个期于进程的延 迟操作实现机制, 工作队列workqueue.本文欢迎转载本文出处:http://blog.csdn.net/dyron6.1 tasklet tasklet是内核定义的几种softirq之一, 中断处理例程
2013-06-14 09:31:27 2264
原创 深入linux设备驱动程序内核机制(第五章) 读书笔记
第5章 中断处理 外设与处理器交互的手段分为两种:轮询和中断. 对于轮询, 处理器不停的查询外设状态. 而中断, 在外设满 足处处理器要求时, 主动发送信号给处理器.本文欢迎转载出处:http://blog.csdn.net/dyron5.1 中断的硬件框架 处理器一般只有两根左右的中断pin, 而外设很多, 为解决这个问题, 设备的中
2013-06-13 09:36:48 2465 1
原创 深入linux设备驱动程序内核机制(第四章) 读书笔记
第四章 互斥与同步 本文欢迎大家转载 原文出自: http://blog.csdn.net/dyron4.1 并发的来源 并发, 是指可能导致对共享资源的访问出现竞争状态的若干执行路径, 不一定是指严格的时间意义上的并发执行 linux系统下并发的来源主要有: . 中断处理路径 当系统正在执行当前进程时, 发生中断,
2013-06-09 08:56:04 2853
原创 深入linux设备驱动程序内核机制(第三章) 读书笔记
第三章 分配内存 内存的管理总体上可以分为两大类:一是对物理内存的管理, 二是对虚拟内存的管理. 前者是用于特定的平台 构架上实际物理内存空间管理, 后者用于特定处理器体系架构上虚拟地址空间的管理.本文欢迎转载本文出处:blog.csdn.net/dyron3.1 物理内存的管理 物理内存定义方面, 内存节点, 内存区域和内存页. 对物
2013-06-07 09:32:16 2351
原创 深入linux设备驱动程序内核机制(第二章) 读书笔记
第二章 字符设备驱动程序本文 欢迎转载, 原文地址: blog.csdn.net/dyron 内核为了简化设备驱动程序员的工作, 从各异的设备中提取出了共性的特征, 将其化分为三大类: 字符设备 ,块设备,网络设备。内核针对每一类设备都提供了驱动模型框架。2.1 应用程序与设备驱动程序互动实例 书上实现了一个调用设备驱动程序的实例, 包括
2013-06-06 09:33:43 2736
原创 深入linux设备驱动程序内核机制(第一章) 读书笔记
第一章 内核模块1.1 内核模块的文件模式 本文 欢迎转载, 原文地址: blog.csdn.net/dyron . 内核模块都是ko形式存在的, 类似于动态库的so, 数据组织形式上是elf(Executable and Linkable Format)格式, 是一种普通的可重定位的目标文件。 . elf模式中,我们关心头部的elf
2013-06-04 15:24:04 4090 2
原创 C程序员转JAVA要点
1. char c 可以存一个中文字符2. 如果你已经增加了一个有参的构造函数, 编译器将不会再增加无参的构造函数。需要注意此时new 时要加参数。3. this 代表调用函数的这个对象。 一般情况可以被省略,如果方法的参数与成员变量同名,则this不可以被省略。4. this 可以在一个构造函数中调用另外一个构造函数, this等于调用本类当中的另一个构造函数。 this(addr,
2013-03-17 21:49:42 1128
转载 嵌入式程序员应知道的0x10个基本问题
嵌入式程序员应知道的0x10个基本问题1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是
2013-03-01 17:40:43 637
转载 C指针声明解读之左右法则
C指针声明解读之左右法则 C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的: Th
2013-03-01 17:39:16 606
原创 搭建distcc 分布式编译脚本
sudo apt-get install distccapt-get install distccmon-gnomevi ~/.profile => add "/usr/local/arm-linux-androideabi-4.4.x/bin" to PATHsudo vi /etc/default/distcc => STARTDISTCC="tru
2012-12-24 17:31:57 1302
转载 杂音 & pop 音的解决方法
杂音 & pop 音的解决方法1. 喇叭有严重的“吱吱”破音,绝大多数的原因有可能在于V(out)电压不稳定,所以最好测一下无负载时的输出电压。同时也可以测量 VCC –即boost 的输出/输入电压。正常的VCC 可以通过客户的 反馈电阻和 VCC负载电阻求得。2、客户有杂音:估计是信号的干扰,一般是电源的干扰因素占最大的比重,建议测量静态电流 IQ 。3、POP
2012-11-08 13:53:53 14898
原创 linux 3.0.8 alsa数据流程分析
ALSA打开数据流程 soc_pcm_open => cpu_dai->driver->ops->startup => platform->driver->ops->open => codec_dai->driver->ops->startup \ => rtd->dai_link->ops->startup ALSA的HW_param流程 s
2012-11-06 19:44:38 2456
原创 linux 3.0.8 camera 驱动分析
留用: 注册v4l2_device, 初始化isp, 注册i2c, 注册video_device, 初始化video_subdevices.镜头=>传感器=>AMP放大=>ADC=>ISP=> MIPI||DVP =>DDR =>MMAP =>user space
2012-10-25 16:32:41 1126
原创 手动从动态库中加载函数接口
#include #include #include int main(int argc, char *argv[]){ int ret = 0; void *function; char *pzerror; char name[20] = {0}; char soname[20] = {0}; void (*test)(int, int); while ((ret
2012-06-28 16:00:18 1104 1
转载 [转]手工释放linux内存——/proc/sys/vm/drop_caches
总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没
2012-02-14 10:24:00 606
原创 ubuntu下自动配置android环境脚本
#!/bin/bash#auto isntall android development envsudo add-apt-repository "deb http://mirrors.163.com/ubuntu hardy main multiverse"sudo add-apt-repository "deb http://mirrors.163.com/ubuntu hardy-upd
2011-12-16 11:13:18 959
原创 LinuxI2C总线驱动深入分析
LinuxI2C总线驱动深入分析Kernel版本:2.6.32平台: mips 本文目的: 在工作闲暇之余,写点东西,留个念想,也证明一下自己曾经年轻过,主要的内容以I2C总线注册,设备注册,驱动注册为主线,介绍了详细的注册过程及I2C传输数据的过程。欢迎大家来探讨这些技术细节,mall:http://blog.csdn.net/dyron I2C 总线及device
2011-12-12 16:35:13 3485
原创 驱动程序中的时间消耗计算
驱动程序中的时间消耗计算 我们在驱动程序调试中,经常需要测试两个点的运行时间,来判断驱动中哪里占用了过多的时间,特别是在一些特殊的keyboard驱动中。 作者: http://blog.csdn.net/dyron欢迎大家在此讨论相关内容。 在计算消耗时间的时候,一般需要注意以下几点:1. 计算时间时,最好不要在打印时间点,因为串口打印会占用大量
2011-12-09 13:10:49 1150
转载 EXT3与EXT4的主要区别
鉴于大家可能对为什么要在Data2SD的时候费半天劲选择EXT4,而不是选择较容易实现的EXT3,我找了一下资料,对技术感兴趣的TX可以参考,对于不是技术狂热分子的人士们,可以绕道。哈哈哈哈~~~~Ext4,Ext3的特点和区别 今天,有个后辈问我Ext4的优点,一下子不知道该怎么说,以前只知道Ext4启动快点,对文件恢复和碎片整理好一点。但具体怎样,怎没研究过。就顺
2011-12-07 14:00:10 688
原创 电流的产生和电能的转换
电能的产生与电能的转换 首先理解发电机的原理,举例火力发电, 通过煤在发电锅炉中燃烧,加热补给水,在过热器中加热成高温高压的过热蒸汽,过热蒸汽进入带动汽轮机高速旋转,汽轮机带动发电机一起旋转,发电机通过高速旋转不停的切割磁感线, 产生电力,这样就消耗了机械能转换出了电能。 切割磁感线原理, 当一根导体棒做切割磁感线运动时,那根导体棒上的电子会向某一端运动,这端的电动势就会减小,相反
2011-11-17 14:21:19 1215
原创 关于无名结构体的见解
struct T1 { char a; char b; struct { char a; };};struct T1 { char a; char b; struct T2 { char a; };};struct T3 { char a; char b; stru
2011-11-09 13:08:34 2757 2
原创 wifi批量安装及自动化测试脚本
wifi的连接测试脚本#!/bin/bashcnt=0echo $cntbusybox cp /system/etc/wifi/wpa_supplicant.conf /data/misc/wifi/insmod /system/lib/wifi/modules/8192cu.kobusybox ifconfig wlan0 up/system/bin/
2011-11-08 14:23:43 3833
原创 Linux audio(OSS)子系统分析
Linux audio(OSS)子系统分析简介 在linux声卡的驱动中存在两种架构,一种是OSS(开放声音系统),一种是ALSA(先进Linux声音架构)。OSS是一个商业声卡驱动程序,需要花钱购买。一般我们现在使用的是ALSA的声音架构。 但是有些厂商提供了OSS架构的代码,一时让我无从下手,我就遇到了这样的问题,故在此留下自己分析的过程,难免有疏漏,欢迎大
2011-10-14 17:50:09 5317
原创 bootloader(xboot)起动流程分析
1. 引言 本文先引用一段《Boot Loader 技术内幕》中的一段话来简介bootloader基本概念,再通过xboot的实例分析来分析xboot接口。作者: http://blog.csdn.net/dyron欢迎大家来讨论相关内容。2. BootLoader 的概念 简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。
2011-10-14 11:10:23 8900 7
原创 linux+audio(OSS)驱动的读写buff分析(jz4760B)
ADUIO OSS 的buff 分析接上文的OSS驱动分析,现在分析OSS中的播放与录音缓冲, 作者: http://blog.csdn.net/dyron,欢迎大家来讨论统一术语1. JZ 君正4760b mips2. Audio buff
2011-10-13 15:35:55 2850
原创 选择排序的c实现代码
#includestdio.h>int sort(int arr[],int n){ int i, j,min, t; for (i = 0; i n-1; i++) { min = i; for (j = i + 1; j n; j
2011-10-12 15:43:07 740 2
原创 GNU工具链简介(全)
Mips GNU工具链简介 1 . 总括 本文分三部分来介绍mips的工具链,首先工具链的总括,其次是每个工具链的简介,最后是各工具链的实际应用举例。我们的项目使用的工具链就如图1所示,声明,本文所述的内容实乃GNU工具链的九牛之一毛, 日后会陆续更新。 http://blog.csdn.net/dyron
2011-10-12 14:51:04 6653 2
原创 在使用svn的时候禁用svn保存密码功能
-N [--non-recursive] : 只在单个目录操作 -q [--quiet] : 打印尽可能少 --diff3-cmd 参数
2011-10-12 14:50:24 1271
原创 君正4760B的linux audio(OSS)驱动分析
君正4760B的audio(OSS) 驱动分析 君正的audio驱动使用了传统的OSS模式, 真是BT,大家都在用ALSA,他还用OSS, 在网上详细资料甚少,在这里记录一下自己的过程,希望有人能够用到。 文章作者: http://blog.csdn.net/dyron, 文章不断完善中....系统环境: CPUJz4760bDai
2011-10-12 14:49:54 5356
原创 linux audio(alsa) 驱动注册的简明流程.
本文以max98088为参照设备进行。我自己也在学习audio, 本着多多交流,相互进步的原则写下流程,欢迎大家来拍砖, 学习中有不正确的地方还请指出来。大体结构: cpu_dai-------指的是I2C通路.codec_dai-----codec的
2011-10-12 14:48:21 4680
原创 wireless流程简明分析
一, 注册流程 1. 首先注册SDIO卡,进行一些初始化。 2. 进入sdio的probe, 里边调用wlan_add_card()接口。 3. 在这里创建了两个主要的线程 1. wlan_service_main_thread 主要的IO处理 2
2011-10-12 14:47:47 2036
原创 优化的冒泡排序C代码
#includestdio.h>void bsort(char*arr, int len){ int i, j, k, t, cnt= 0;; for(i = len - 1; i> 0; i = k) {
2011-10-12 14:45:46 681
原创 framebuff操作程序
/* * Usage: * */#include unistd.h>#include sys/mman.h>#include stdio.h>#include stdlib.h>#include string.h>#incl
2011-10-12 14:44:23 2321
原创 linux内核层与应用层通讯方法
最近因工作需要,计划完成一个内核检测程序。 查找内核与用户态的通讯方法,主要方法有socket,信号,brk等。 由于信号与brk只可以与本机通讯,不适合做远程调试程序,故选择socket方法实现。 在内核态实现socket通讯的方法有三种,n
2011-10-12 14:43:24 10953
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人