随笔分类 -  Linux

ARM linux系统、驱动、应用相关
摘要:include\linux\kobject.h struct kobject { const char *name; //name struct list_head entry; //链接到kset建立层次结构 struct kobject *parent; //指向父节点,面对对象的层次结构 st 阅读全文
posted @ 2017-03-14 10:12 扑克face 阅读(510) 评论(0) 推荐(0) 编辑
摘要:一、源码分析: mknod->系统调用-> /fs/namei.c SYSCALL_DEFINE3(mknod, const char __user *, filename, int, mode, unsigned, dev){ return sys_mknodat(AT_FDCWD, filena 阅读全文
posted @ 2017-03-13 13:30 扑克face 阅读(1857) 评论(0) 推荐(0) 编辑
摘要:一、背景: 1.系统可见设备、应用可访问设备,需要具备设备文件节点,设备驱动 2.所有设备驱动程序静态链接到内核会导致内核过大, 不易运行 二、特点: 1.可安装模块(module)是编译不链接 2.运行后,动态加载到内核中 3.加载操作由内核或者特权用户使用sbin执行 4.机制支持选择CONFI 阅读全文
posted @ 2017-03-13 10:54 扑克face 阅读(331) 评论(0) 推荐(0) 编辑
摘要:soc camera 子系统为分为soc camera device 和 soc camera host,并且定义了标准的接口或者回调函数. 流程: 1.获取传来信息,填充soc_camera_link 2.初始化soc_camera_device(iface、device、设备号、总线类型)、加入 阅读全文
posted @ 2017-03-08 10:27 扑克face 阅读(412) 评论(0) 推荐(0) 编辑
摘要:未完待续.... 阅读全文
posted @ 2017-03-08 08:46 扑克face 阅读(105) 评论(0) 推荐(0) 编辑
摘要:前提知识点: 内核最初启动的时候,没有启动MMU,这样导致CPU只认物理地址(又称运行地址),不认虚拟地址(又称链接地址)。 所以,地址操作在内核汇编中普遍存在,基于内核编译时,是用链接脚本进行定位的。基于无MMU的CPU运行时,是依据PC地址进行定位的。所以,运行内核时,需要将虚拟地址转为物理地址 阅读全文
posted @ 2017-03-03 17:36 扑克face 阅读(391) 评论(0) 推荐(1) 编辑
摘要:以module_init(Demo_init);为例 定义文件: include\linux\init.h #define module_init(x) __initcall(x); #define __initcall(fn) device_initcall(fn) #define device_ 阅读全文
posted @ 2017-02-08 21:00 扑克face 阅读(246) 评论(0) 推荐(0) 编辑
摘要:背景知识: 一、Ramdisk文件系统: 1.掉电丢失 2.读写速度高 3.数据存储到内存 二、jffs文件系统 1.掉电不丢失 2.可存储于NOR NAND,但是适用于NOR 3.数据存储于flash 三、ramdisk+jffs启动流程: 以ramdisk为真正根文件系统,jffs为jffs格式 阅读全文
posted @ 2016-11-30 17:18 扑克face 阅读(1223) 评论(0) 推荐(0) 编辑
摘要:实例:1.3.4版本at91sam系列 GPIO部分: 一、初始化: include\asm-arm\arch-at91sam9\gpio.h 1.同一引脚的复用设置 2.输入输出初始化寄存器 3.得到基地址、设置值 二、写 include\asm-arm\arch-at91sam9\io.h in 阅读全文
posted @ 2016-11-15 14:45 扑克face 阅读(252) 评论(0) 推荐(0) 编辑
摘要:驱动编译有两种方法: 1. 编译到内核中 2. 编译为独立模块 建立方法: 1) 在linux源码树的驱动目录增加自己的驱动目录,比如:现在新增一个网络设备驱动 mkdir linux_tree/drivers/net/poker_driver -p cd linux_tree/drivers/ne 阅读全文
posted @ 2016-08-17 15:20 扑克face 阅读(388) 评论(0) 推荐(0) 编辑
摘要:初始化流程图 Traps.c (arch\arm\kernel) 20738 Main.c (init) 21877 Traps.c (arch\arm\kernel) 20738 Mmu.c (arch\arm\mm) 30868 Mmu.c (arch\arm\mm) 30868 Setup.c 阅读全文
posted @ 2016-03-03 17:23 扑克face 阅读(509) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示