摘要: 恢复内容开始 1: 首先回顾一下之前的学习内容: 1:register_chrdev来注册字符设备驱动,用这种方法的好处是简单,只需要一个函数就可以注册字符设备驱动了,缺点是无法设置次设备号; 2:register_chrdev_region/allco_chrdev_region、cdev_XXX 阅读全文
posted @ 2017-03-27 19:37 biaohc 阅读(12957) 评论(0) 推荐(1) 编辑
摘要: 1:我们在linux内核中都是开启mmu的所以都是用的虚拟地址,需要建立VA到PA的映射表; 我们内核中映射表在arch/arm/mach-s5pv210/mach-smdkc110.c文件中 建立映射的函数是,smdkc110_map_io建立映射表 smdkc110_map_io 这个函数调用s 阅读全文
posted @ 2017-03-27 14:28 biaohc 阅读(2766) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 1:我们之前的设备文件都是使用mknod命令来手动添加的,下面我们要解决一下设备文件的自动添加问题: 设备文件的自动添加需要udev,busybox中的mdev是简化版的udev; https://yq.aliyun.com/articles/10546 http://blog.chi 阅读全文
posted @ 2017-03-26 22:47 biaohc 阅读(7193) 评论(0) 推荐(0) 编辑
摘要: 1:上一章我们使用了register_chrdev这个函数来向内核注册字符设备 static inline int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops) 这个 阅读全文
posted @ 2017-03-26 21:02 biaohc 阅读(1824) 评论(0) 推荐(0) 编辑
摘要: 1:驱动开发环境 要进行linux驱动开发我们首先要有linux内核的源码树,并且这个linux内核的源码树要和开发板中的内核源码树要一直; 比如说我们开发板中用的是linux kernel内核版本为2.6.35.7,在我们ubuntu虚拟机上必须要有同样版本的源码树, 我们再编译好驱动的的时候,使 阅读全文
posted @ 2017-03-20 23:17 biaohc 阅读(22361) 评论(0) 推荐(2) 编辑
摘要: 恢复内容开始-- http://blog.csdn.net/zn2857/article/details/52832778- 1:busybox就是linuxrc文件,首先下载busybox源码 各个版本busybox的下载地址,下载版本为busybox-1.22.1.tar.bz2 http:// 阅读全文
posted @ 2017-03-16 23:11 biaohc 阅读(1556) 评论(0) 推荐(0) 编辑
摘要: 1:以s5pv210为例: irom-->uboot-->linux内核-->根文件系统 irom是为了启动uboot而uboot是为了启动linux内核;只有linux内核开发板时不能工作的,需要配合根文件系统来工作; 首先根文件系统为flash设备提供了一个挂载点/,在根文件下统下/目录下需要一 阅读全文
posted @ 2017-03-13 14:14 biaohc 阅读(1181) 评论(0) 推荐(0) 编辑
摘要: 1:I2C通信原理: I2C通信接线只有两根,SDA、SCL。 SDA用来传输地址、命令、数据。SCL用来提供时钟。 在I2C通信线上可以接多个slave device(从设备)。 I2C通信特点 (1) 每次通信都是由主设备发起,每个slave device都有固定一个通信地址,开始通信以后,主设 阅读全文
posted @ 2017-02-28 15:14 biaohc 阅读(1223) 评论(0) 推荐(0) 编辑
摘要: 1:获取内核 解压内核压缩包 2:内核源码树 阅读全文
posted @ 2017-02-28 15:13 biaohc 阅读(605) 评论(0) 推荐(0) 编辑
摘要: uboot 环境变量实现原理: 首先我们先要搞清楚uboot中环境变量的作用,uboot中环境变量的作用就是在不改变源码、不用重新编译的情况下,可以使我们通过 设置环境变量的值来改变uboot的一些设置,如bootdelay时间、机器码的值等等。 下面我们来具体看一下uboot中环境变量如何实现 首 阅读全文
posted @ 2017-02-28 15:13 biaohc 阅读(6836) 评论(0) 推荐(0) 编辑