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