[ linux驱动 ]
过去不再从来
反应有点慢
展开
-
封装后的一个简单字符设备
//将数据封装后 #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("you"); struct mycdev{ struct cdev cdev; dev_t devno; unsigned char data[1024]; }原创 2013-10-08 21:41:55 · 569 阅读 · 0 评论 -
ioremap
//在内核中,要访问寄存器;先将物理地址,转换成虚拟地址 #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("bunter"); unsigned long virt; unsigned long *gpmcon, *gpmdat;原创 2013-10-14 23:59:31 · 590 阅读 · 0 评论 -
字符驱动框架hellop
文件放在/linux-3.0/drivers/char/hellop *********************************************************** hellop.c #include #include #include static char *whom = "world"; static int howmany = 1; modul原创 2014-02-21 19:34:03 · 689 阅读 · 0 评论 -
UART和RS232/RS485的关系,RS232与RS485编程
UART和RS232/RS485的关系是什么? 2013-09-04 12:31:56| 分类: 计算机 | 标签:rs232 uart rs485 |举报|字号 订阅 串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之转载 2014-08-06 11:24:50 · 1222 阅读 · 0 评论 -
在回首——arm-linux内核编译
2013年09月10日 再搭建环境: os==》linux环境:redhat 6.3 1.bootloader设置 2.首先得到zImage 3.制作根文件系统 4.各种服务:tftp,nfs,arm-gcc ********************************** 1.设置bootloader ==>ipaddr serverip bootargs bootcmd让我原创 2013-09-10 21:40:01 · 653 阅读 · 0 评论 -
linux内核中的那些链表
内核中的链表操作: 单链表,单向循环链表, 双链表,双向循环链表, struct list_head { struct list_head *next, *prev; }; 链表的操作: 1.初始化链表=》循环链表 static inline void INIT_LIST_HEAD(struct list_head *list) { list->next = list;原创 2013-09-26 01:45:36 · 520 阅读 · 0 评论 -
第一个简单的cdev
2013-09-09 第一个cdev简单的函数:wangcai 与cat Mknod wangcai c 9 1 Mknod cat c 9 2 #include #include #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("you");原创 2013-09-10 00:08:32 · 790 阅读 · 0 评论 -
ioremap相关的人函数
2013年09月09日 uplooking 106 天 1.打印这个所有当前动行的进程的名字 #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("you"); int test_init() { int i;原创 2013-09-09 23:58:30 · 1382 阅读 · 0 评论 -
tasklet-内核机制
注册中断后,调用小任务机制来处理中断: #include #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("bunter"); irqreturn_t do_irq(int irq, void *data); void function(u原创 2013-10-10 23:34:29 · 494 阅读 · 0 评论 -
linux内核机制中的中断
2013年10月08日 国庆回来第二天: 学习流程: 基础: 1.linux 2.开发板 ,arm汇编, c, 数据结构 3.C++,工具 应用: 1.posix(open,fork) 2.内核机制 3.网络* 驱动: 1.arm体系结构。 2.(设备)LCD驱动,网络驱动,触屏驱动,声卡驱动 项目: 1.bootloader(vivi三星公司中的两个boot原创 2013-10-08 20:23:18 · 693 阅读 · 0 评论 -
串口通信原理
http://cs.nju.edu.cn/yangxc/dcc2003.files/jszc-sub/comif-09.htm转载 2014-09-23 12:50:28 · 441 阅读 · 0 评论 -
(触摸屏)内核模块的定时器--来做中断源2
//在触摸屏上可以划动的打印,x,y坐标 #include #include #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("bunter"); void function(unsigned long data); irqreturn_t原创 2013-10-14 23:26:03 · 558 阅读 · 0 评论 -
142day:LCD驱动1
2013年10月14日 LCD 1.LCD==>/dev/fb0 2.LCD是一种折射光的液体 ==>最好的LCD公司夏普 3.LCD:长宽比例: 4:3 16:9 16:10 s3c6410:480:272 30:17 4. app ------------------------- os ------------------------- hw原创 2013-10-14 23:05:00 · 700 阅读 · 0 评论 -
一个简单的字符设备驱动
//一个简单字符设备驱动 内核中:test.c ;Makefile; 应用层:read.c ;write.c #include #include #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("bunter"); int my_原创 2013-10-08 21:30:11 · 531 阅读 · 0 评论 -
设备驱动模型
2013年10月09日 /proc中是系统中的信息 /sys/class按功能化分,内核中的 /dev/是用户可用的 /sys/misc放杂货的类 题: 1.1==>灯亮;0==>灯灭; app /dev/led 1 0 atoi:字符串转换为整数 2题: 自已写一个:从总线,设备,驱动三个文件。 注意: 两个文件(A,B)中的两个变量(a,b),如果A文件中要原创 2013-10-09 21:40:35 · 528 阅读 · 0 评论 -
/sys/bus一个总线设备驱动
2013年10月10日 1. udev不会将/sys/bus下面的设备放到/dev下面; udev会将/sys/class下面的设备放到/dev下面,给应用层提供接口。 2.*** 当设备移出的时候,调用release函数;当驱动作用于设备的时候,调用probe函数; 当驱动不在作用设备的时候,调用remove函数。 insmod bus/bus.ko insmod device原创 2013-10-10 23:05:02 · 2082 阅读 · 0 评论 -
四大驱动之-触摸屏
四大驱动之触摸屏: 我们按一下,来模拟实现触摸屏的中断处理。按下去打印:down 松开就打印:up; Arm中断处理过程: 1.Cpsr 2.中断控制器 3.中断源 #include "up.h" int (*printf)(char *,...) = 0x57e11d4c; void do_irq(); int main() { *(unsigned l原创 2013-10-10 23:24:18 · 593 阅读 · 0 评论 -
四大驱动之-触摸屏(小例子-裸版2)
将一封装成函数;并实现按一下,打印按下点的x,y坐标。 up.h: #define VIC0IRQSTATUS (*(volatile unsigned long *)0x71200000) #define VIC0RAWINTR (*(volatile unsigned long *)0x71200008) #define VIC0INTSELECT (*(volatile原创 2013-10-12 00:09:41 · 637 阅读 · 0 评论 -
内核模块的定时器--来做中断源
//内核模块的定时器 #include #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("bunter"); void function(unsigned long data); struct timer_list t; in原创 2013-10-12 00:17:13 · 771 阅读 · 0 评论 -
四大驱动之-触摸屏(小例子-裸版)
//62和63好中断,触摸屏和模数转换 当我们在触摸屏上按下一个键的时候:打印down,x,y坐标,放手后打印: test.c,up.h,Makefile,vector.S #include "up.h" int (*printf)(char *,...) = 0x57e11d4c; void do_irq(); int main() { *(unsigned lo原创 2013-10-11 23:00:31 · 596 阅读 · 0 评论 -
四大驱动—触模屏(内核模块小例子)
//首先得重新编译内核,将内核原有的触摸屏驱动移除: make menuconfig: device_driver==>Input device support ==>touchscreen make==>编译生成zImag内核文件 cp arch/arm/boot/zImage /tftpboot==> 启动时自动从这个文件中引导 启动内核后插入:insmod test.ko原创 2013-10-11 23:48:11 · 685 阅读 · 0 评论 -
四大驱动—触模屏(内核模块小例子2)
#include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("you"); irqreturn_t do_irq(int irq,void *data); unsigned long ts_virt; unsigned long *adctsc原创 2013-10-12 00:01:37 · 625 阅读 · 0 评论 -
四大驱动—触模屏(内核模块小例子3封装成函数)
#include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("you"); irqreturn_t do_irq(int irq,void *data); void wait_for_up(); void wait_for_down(); v原创 2013-10-12 00:02:51 · 660 阅读 · 0 评论 -
linux内核编译开始第一天
2013年09月06日 uplooking 103 天 今天跟着老刘进入内核编译: /**********************************************************************************************************************************************************原创 2013-09-06 23:50:35 · 614 阅读 · 0 评论