摘要: 一. 什么是协处理器? 1.1. SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。 1.2. ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(cp:coprocessor) 1.3. 协处理器和MMU、cache、TLB等处理有关,功能上和操作 阅读全文
posted @ 2019-01-03 23:08 三七鸽 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 一. 数据处理汇编指令 1.1. 数据传输指令 1.1.1. mov(Move) 指令 示例:mov r0, r0, LSL#3 ; r0 = r0* 8 mov pc, r14 ; 退出到调用者 movs PC, r14 ; 退出到调用者并恢复标志位 1.1.2. mvn(move negativ 阅读全文
posted @ 2019-01-03 22:45 三七鸽 阅读(600) 评论(0) 推荐(0) 编辑
摘要: #include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/ua 阅读全文
posted @ 2019-01-03 16:57 三七鸽 阅读(254) 评论(0) 推荐(0) 编辑
摘要: #include <linux/init.h>// __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/uac 阅读全文
posted @ 2019-01-03 16:52 三七鸽 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 一. machine_desc结构体 1.1. 内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化 2.1. 静态映射表与machine_desc关系。 2.1.1. 阅读全文
posted @ 2019-01-03 16:50 三七鸽 阅读(463) 评论(0) 推荐(0) 编辑
摘要: #include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <mach/regs-gpio.h> #include <mach/gpio-bank.h> 阅读全文
posted @ 2019-01-03 16:48 三七鸽 阅读(4342) 评论(0) 推荐(0) 编辑
摘要: #include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <mach/regs-gpio.h> #include <mach/gpio-bank.h> 阅读全文
posted @ 2019-01-03 16:46 三七鸽 阅读(3785) 评论(0) 推荐(0) 编辑
摘要: 一.驱动模型包含什么? 1.1. 类class 1.1.2. 它能够自动创建/dev下的设备节点,不需要mknod /dev/xxx c x x创建。当然class还有其另外的作用,且自动创建设备节点的还有udev系统,udev是处于用户空间的,其自动创建设备节点也是依赖于sysfs文件系统中提供的 阅读全文
posted @ 2019-01-03 14:32 三七鸽 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 一. platform 组织架构 1.1. platform工作体系都定义在drivers/base/platform.c中 1.2. platform相关函数声明在include/linux/platform_device.h 1.3. platform.c中两个重要结构体 1.3.1. plat 阅读全文
posted @ 2019-01-03 09:57 三七鸽 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 一. misc类设备简介 1.1. 什么是misc设备 1.1.1. misc中文名就是杂项设备\杂散设备,因为现在的硬件设备多种多样,有好些设备不好对他们进行一个单独的分类,所以就将这些设备全部归属于杂散设备,也就是misc设备,例如像adc、buzzer等这些设备一般都归属于misc中 1.1. 阅读全文
posted @ 2019-01-03 09:54 三七鸽 阅读(2260) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/mman.h> #include <linux/fb.h> #define FB_DEV "/dev/fb 阅读全文
posted @ 2019-01-03 09:53 三七鸽 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 一.设备驱动相关文件 1.1. 驱动框架相关文件 1.1.1. drivers/video/fbmem.c a. 创建graphics类、注册FB的字符设备驱动 fbmem_init(void) { proc_create("fb", 0, NULL, &fb_proc_fops); if (reg 阅读全文
posted @ 2019-01-03 09:43 三七鸽 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 一、什么是input输入子系统? 1.1. Linux系统支持的输入设备繁多,例如键盘、鼠标、触摸屏、手柄或者是一些输入设备像体感输入等等,Linux系统是如何管理如此之多的不同类型、不同原理、不同的输入信息的输入设备的呢?其实就是通过input输入子系统这套软件体系来完成的。从整体上来说,inpu 阅读全文
posted @ 2019-01-03 09:19 三七鸽 阅读(3030) 评论(0) 推荐(0) 编辑
摘要: 一. 指令和伪指令 1.1. 指令 a. (汇编)指令是CPU机器指令的助记符,经过编译后会得到一串10组成的机器码,可以由CPU读取执行。 1.2. 伪指令 b. (汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机 阅读全文
posted @ 2019-01-03 00:36 三七鸽 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 一. ARM的基本设定 1.1. ARM 采用的是32位架构 1.2. ARM约定: a. Byte : 8 bits b. Halfword :16 bits (2 byte) c. Word : 32 bits (4 byte) 1.3. 大部分ARM core 提供: a. ARM 指令集(3 阅读全文
posted @ 2019-01-03 00:25 三七鸽 阅读(256) 评论(0) 推荐(0) 编辑