- 博客(12)
- 资源 (21)
- 收藏
- 关注
转载 [ARM]ldr和 adr/adrl 伪指令的区别
一.首先熟悉几个arm地址相关的概念:首先arm地址有三个地址概念:编译地址、期望运行物理地址、实际运行物理地址、相对地址、绝对地址、位置无关编译地址 :编译阶段的生成地址,其是相对地址 ,有些地址还没确定,如调用其他.O文件中的函数或库函数期望运行物理地址:链接阶段生成的地址(期望绝对地址),会确定编译阶段没有确定的地址,并会根据链接器假设期望的程序烧录运行物理启始地址
2014-04-28 21:50:29 1207
转载 input_event
设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键模拟,具体方法就是操作/dev/input/event1文件,向它写入个input_event结构体就可以模拟按键的输入了。linux/input.h中有定义,这个文件还定义了标准按键的编码等struct input_event {struct
2014-04-21 16:15:46 1692
原创 mod_timer函数及其它定时器函数
当一个定时器已经被插入到内核动态定时器链表中后,我们还可以修改该定时器的expires值。函数mod_timer()实现这一点修改注册入计时器列表的handler的起动时间int mod_timer(struct timer_list *timer, unsigned long expires) { int ret; unsigned long flags; spin_
2014-04-20 21:41:19 13851 1
转载 输入子系统---按键
一、linux输入子系统——基础知识 1、首先我们要知道什么时候我们可以用到input输入子系统,以及为什么我们要用input输入子系统?像按键、触摸屏、鼠标等输入设备我们都可以采用input接口函数来实现设备驱动。那么采用input输入子系统有什么优点呢?其实一句话,采用input输入子系统可以使驱动程序变得异常简单。2、input输入子系统体系结构 我们看到输入
2014-04-20 20:51:02 956
转载 学习linux驱动经典书籍
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver 3rd Edition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们自己摸索了。但万事总有一个开头,没有对Linux驱动整体框架的把握是很难做一个优秀的驱动开发者的。除了这本Jonathan Corbet,
2014-04-18 13:26:20 1541
原创 outb,inb等I/O端口操作函数
功能:如 i386 ,在区别 I/O 空间和内存空间的进程的 I/O 空间写入数据。outb() I/O 上写入 8 位数据 ( 1 字节 );outw() I/O 上写入 16 位数据 ( 2 字节 );outl () I/O 上写入 32 位数据 ( 4 字节)。原型:引用 #include void outb (unsigned char
2014-04-18 11:42:10 15000
转载 IO端口和IO内存的区别及分别使用的函数接口
目录(?)[+]IO端口和IO内存的区别及分别使用的函数接口 每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令
2014-04-18 11:41:29 5015
原创 s3c2410 cs8900a 网卡驱动
/* CS8900a.h */ #define CONFIG_CERF_CS8900A 1 /* * cs8900a.c: A Crystal Semiconductor (Now Cirrus Logic) CS8900A driver for SMDK-s3c2410 (based on cs89x0.c) * * Author: Yong-iL Joh t
2014-04-17 22:04:12 1209
原创 关于request_region()
void request_region(unsigned long from, unsigned long num, const char *name) 这个函数用来申请一块输入输出区域。 如果这段I/O端口没有被占用,在我们的驱动程序中就可以使用它。在使用之前,必须向系统登记,以防止被其他程序占用。登记后,在/proc/ioports文件中可以看到你登记的io口。
2014-04-17 21:43:19 2305
转载 linux内核及驱动开发中有关__init,__exit和__initdata的用法
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性或定义的函数或数,__attribute__主要用于改变所声明据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代
2014-04-15 17:26:45 1207
转载 misc设备驱动模型及实例解析
1、misc设备驱动模型 本节我们来看一下misc设备驱动模型的有关内容,首先是看看它的设备结构体,定义在include/linux/miscdevice.h中:[cpp] view plaincopystruct miscdevice { int minor; //次设备号,若为 MISC_DYNAMIC
2014-04-11 15:49:10 785
转载 linux驱动头文件位置的说明
在不同版本的内核源码上,头文件所在的位置是不同的,比如说在#include#include同样是regs-gpio.h,是在比较低的版本(比如2.6.25)上位于arch/arm/include/asm中,而mach/regs-gpio.h则是位于arch/arm/mach-s3c2410/include/mach中,2.6.30版本的内核是这种结构,所以,要根据所采用的不
2014-04-07 20:58:48 1550
编写程序,使用两个线程,一个队列,其中一个线程从键盘读取数据,放入到队列中,直到读取的数据是字符串quit则结束
2014-07-03
jQuery 移动网络应用开发 核心技术
2014-04-03
DELPHI XE5 UP2 破解
2014-04-03
Google官方下拉刷新组件SwipeRefreshLay
2014-04-03
W3School离线手册
2014-04-03
控制台游戏之推箱子及地图编辑器.zip
2014-04-03
控制台游戏之推箱子及地图编辑器
2014-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人