
s3c2416
起点
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2416开发记录二:最简单的helloworld驱动
编写helloworld驱动程序驱动程序源码如下:#include<linux/init.h>#include<linux/module.h>static int hello_init(void){ printk(KERN_INFO "BBBlackHelloModule enter!\n"); return 0;}static void hello_exit(void){原创 2016-01-15 11:36:58 · 397 阅读 · 0 评论 -
2416开发记录十二:ioremap
对于一个系统来讲,会有很多的外设,那么这些外设的管理都是通过CPU完成。那么CPU在这个过程中是如何找到外设的呢?尽管在一个系统中会有诸多的外设,在每个外设的接口电路中会有多个端口。但是如果系统能够每个端口都被赋予一个具体的地址值,那么在系统中就能轻易的找到任何一个外设。系统在管理的时候,不管是内存还是外设都需要分配一个内存地址。对于一个32bit的系统来讲,可寻址的范围为2^32=4G的地址空间。转载 2016-02-03 08:09:44 · 367 阅读 · 0 评论 -
2416开发记录十一:按键驱动(platform/中断)
在前面几章的基础上编写了一个按键中断的驱动,并验证成功。 这里用到了字符设备驱动,platform驱动,并有资源的获取,算是比较全面的platform驱动了。首先是设备模块代码//my2416PlatformKeyDev.c#include <linux/miscdevice.h>#include <linux/delay.h>#include <asm/irq.h>#include <m原创 2016-01-27 10:37:38 · 692 阅读 · 0 评论 -
2416开发记录十:platform的相关函数详解
转自:http://blog.chinaunix.net/uid-27717694-id-3501755.html PlatForm设备驱动:一、platform总线、设备与驱动1.一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空转载 2016-01-21 15:18:12 · 449 阅读 · 0 评论 -
2416开发记录九:在驱动模块初始化函数中实现设备节点的自动创建(转)
转自:http://blog.youkuaiyun.com/zhenwenxian/article/details/5424434 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。内核中定义了stru转载 2016-01-21 14:41:12 · 305 阅读 · 0 评论 -
2416开发记录八: platform驱动之LED(字符设备)
上一篇介绍了platform misc驱动的写法。因为misc设备是字符设备的一种,也不需要很多的函数来注册,因此作为练手。这一篇写一个led的字符设备驱动。你会发现platform驱动只是在字符设备驱动上又封装了一下而已(个人理解)。led设备和上一篇的led misc驱动设备差不多,但是多了一些自己的注释。方便以后学习。makefile文件基本一致,这里就不发了。//my2416Platform原创 2016-01-21 14:35:12 · 573 阅读 · 0 评论 -
2416开发记录七: platform驱动之LED(misc)
platform驱动的简单介绍前几篇介绍了最简单的LED驱动写法,在linux2.6中提出了platform驱动,具体为什么要这么做后面博客再解释吧。这里的platform驱动只是一个框架,并没有体现platform驱动的意义,因为在driver中没有使用device定义的资源。后面会再写一个真正的platfom。本篇算是入门练手,体会下吧。pltform机制本身使用并不复杂,由两部分组成:pl原创 2016-01-19 08:53:35 · 513 阅读 · 0 评论 -
2416开发记录六: s3c2410_gpio_setpin()系列函数
依然解释LED驱动的知识点 转自:(http://blog.sina.com.cn/s/blog_7bd0d88201011ulq.html)系列函数的定义在arch/arm/mach-s3c2410/gpio.c,相关的宏定义在include/asm-arm/arch-s3c2410/regs-gpio.h(1)void s3c2410_gpio_setpin(unsigned int pin,转载 2016-01-15 14:24:41 · 805 阅读 · 0 评论 -
2416开发记录四: ioctl与unlocked_ioctl区别
解释一下上一篇博客的相关知识点驱动中的unlockioctl函数 http://blog.youkuaiyun.com/zydlyq/article/details/50522773ioctl与unlocked_ioctl区别ioctl函数的实现首先说明在2.6.36以后ioctl函数已经不再存在了,而是用unlocked_ioctl和compat_ioctl两个函数实现以前版本的ioctl函数。同时在参原创 2016-01-15 13:02:12 · 1271 阅读 · 0 评论 -
2416开发记录五: misc设备驱动
转自:(http://www.cnblogs.com/snake-hand/p/3212483.html) (本文使用的平台为友善tiny210SDKv2)对于linux的驱动程序来说,主要分为三种:miscdevice、platform_device、platform_driver 。这三个结构体关系: (基类) kobject ——————– / \转载 2016-01-15 14:06:13 · 292 阅读 · 0 评论 -
2416开发记录三:简单LED驱动及应用程序
写过了helloworld驱动,来点真格的驱动吧,最简单的就是led驱动了。 参考mini2440的led驱动写法。写一个混合驱动(对于第一个简单的驱动来说好处多多)驱动源码驱动的源码如下:#include <linux/miscdevice.h> #include <linux/delay.h> #include <asm/irq.h> #include <mach/regs-gpio.h原创 2016-01-15 11:48:23 · 583 阅读 · 0 评论