linux
BruceEditCode
这个作者很懒,什么都没留下…
展开
-
GPIO驱动相关笔记
打算跟着友善之臂的《mini2440 linux移植开发指南》来做个LED驱动,虽然LED的原理简单得不能再简单了,但是要把kernel中针对于s3c24**的GPIO的一些数据结构,还有函数搞清楚也不是那么轻松的事,所以本文主要简单地说明下LED驱动中的相关数据结构以及函数/宏的定义,并对驱动加以验证 ***************************************转载 2014-06-10 21:05:40 · 468 阅读 · 0 评论 -
写Makefile
其实,很多人都想搞嵌入式的驱动开发,也会去买各种各样的书籍来研究;书上的驱动程序讲的有理有据、仅仅有条,说的你心悦诚服然后你就会跟别人说“没错一个led驱动就是这么写的,对不会有错的!“,哎,显然我也是这种人(呵呵....);所以,当我第一次尝试把我原来写好(写好的代码指并未编译;也就是说连Makefile都没写的那种)的认为一定不会有问题的驱动程序搞到我够买的GT2440开发上去运行,之后才让我转载 2014-06-10 21:08:32 · 553 阅读 · 0 评论 -
写驱动时交叉编译之makefile编写模板(tiny6410)
ifneq ($(KERNELRELEASE),) obj-m := mini6410_leds.oelse KERNELDIR := /opt/FriendlyARM/mini6410/linux/linux-2.6.38PWD:=$(shell pwd) all: make -C $(KERNELDIR)转载 2014-06-10 21:15:32 · 905 阅读 · 0 评论 -
驱动模块Makefile解析
作者:王老师,华清远见嵌入式学院讲师。先看一下代码ifeq ($(KERNELRELEASE),) KERNELDIR ?= /home/linux/linux-2.6.22.6 PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(P转载 2014-06-10 20:24:46 · 361 阅读 · 0 评论 -
Linux内核空间和用户空间详解
linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而转载 2014-06-12 15:57:43 · 407 阅读 · 0 评论 -
Linux用户空间与内核空间详解
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存转载 2014-06-17 12:48:25 · 478 阅读 · 0 评论 -
Linux内核中ioremap映射的透彻理解
原文来自http://blog.csdn.net/hustyangju/article/details/20467007几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典转载 2014-08-19 10:43:31 · 430 阅读 · 0 评论