- 博客(15)
- 收藏
- 关注
原创 记录
这几天用到了之前的一些知识,发现好多之前分析的知识点长时间不接触又开始迷糊了,开此博客记录一下之前工作和以后的工作用到和分析的一些东西,作为积累吧
2016-12-26 10:39:19 148
原创 BUS,class, 子系统的关系
个人感觉BUS的主要是驱动的分离:设备和驱动的分离,好处是可以让一个驱动对应多个设备class主要是设备的分层:提取同类设备的公共部分封装,好处是减少驱动开发的工作量而子系统主要是依靠class的分层让内核编写者实现公共的代码,属于class的具体应用
2017-04-18 11:48:22 428
原创 中断体系相关
☆ 中断体系的建立中断体系的建立对应的函数是在 arch/arm/mach-s5pv210/mach-x210.c 中结构体struct machine_desc的元素 .init_irq = s5pv210_init_irq开机如何被调用可以参考前面博客的 静态映射表的建立而且中断体系用到了静态映射表的内容;查看struct map_desc结构体数组得出映射关系虚拟地址
2017-02-20 11:40:44 229
转载 转载☆ 设备驱动模型
前面章节总了platform总线模型,总线属于 linux设备驱动模型的一种模型在linux的驱动表示中有三个基本结构体:kobject,kset,kobj_type(很多地方叫ktype),详细可参考一下文档linux设备驱动模型一概述 http://blog.csdn.net/new_abc/article/details/755
2017-02-17 18:44:23 145
原创 platform总线分析
推荐阅读http://www.linuxidc.com/Linux/2011-10/44627.htm 讲的很好http://blog.csdn.net/qb_2008/article/category/896982☆ platform总线简介==>总线的产生的意义是让设备(硬件被抽象成一个结构体来代表一个设备)和驱动分离==>linux内核中常见的的总线有I2C总线,
2017-02-17 18:43:17 333
转载 prinf代码移植
在做项目过程中用到了ucosii系统 因为其printf封装 没找到如何和uart串口关联起来,干脆从新实现一个打印函数 ,开始用vsprintf函数来实现 但是发现效率有点低,所以找了个源码全部移植过来了,mcu_print函数就是实现的打印函数,源码如下:#define sprintf my_sprintf#define vsprintf my_vsprintf#de
2017-02-16 22:50:16 292
转载 C语言结构体内存对齐法则
关于结构体内存对齐(在没有#pragma pack宏的情况下) : •原则1 数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。 •原则2 结构体作为成员:如果一
2017-02-16 22:48:30 226
转载 自己写的STM32 内存管理 实现了malloc,free,remalloc等函数
转自 http://bbs.21ic.com/icview-246607-1-1.html这两天写的一个STM32上的内存管理函数,实现了malloc和free以及remalloc几个函数.还实现了一个内存使用率查询的函数.实验环境:ALIENTEK STM32 Mini 开发板思路如下:将内存分块管理.内存池等分为固定大小的内存块.建立一个内存状态表,对应每个块,有多
2017-01-12 17:20:12 1011
原创 静态映射表的建立过程
静态映射表的建立在struct machine_desc结构体的 map_io函数中,具体到x210开发板就是在kernel/arch/arm/mach-s5pv210/mach-x210.c文件末尾的struct machine_desc结构体的.map_io查阅代码看到.map_io = smdkc110_map_io 也就是smdkc110_map_io是真正的建立静态映射表的函数
2017-01-09 18:51:54 679
原创 拿到新开发板代码分析入口和gpiolib库
☆ 程序分析入口 ==>拿个一个新的开发板,一般分析的入口的文件路径(x210为例,分析makefile得出) /kernel/arch/arm/mach-s5pv210/mach-x210.c, 为进一步确定可先编译一下看看这个文件是不是被编译称为.o文件 ==>分析mach-x210.c从文件最下面的MACHINE_START宏处入手#ifdef CONFIG_MA
2016-12-30 17:27:18 316
原创 文件系统知识总结
☆ 文件系统制作 关于文件系统的制作网上教程很多,可参考http://blog.csdn.net/zhengmeifu/article/details/24174513(制作ext2根文件系统)☆ 文件系统的nfs方式挂载 看参照教程 http://blog.csdn.net/gdliweibing/article/details/8989783☆ linuxrc
2016-12-30 17:26:14 232
原创 led框架总结
☆什么是驱动框架?内核中驱动部分维护者针对每个种类的驱动设计一套成熟的、标准的、典型的驱动实现,然后把不同厂家的同类硬件驱动中相同的部分抽出来自己实现好,再把不同部分留出接口给具体的驱动开发工程师来实现,这就叫驱动框架。☆为什么用驱动框架?内核维护者在内核中设计了一些统一管控系统资源的体系,这些体系让内核能够对资源在各个驱动之间的使用统一协调和分配,保证整个内核的稳定健康运行。譬如系统
2016-12-30 09:58:50 679
原创 新老版本的驱动注册流程
☆先看一下2.6版本中的老的驱动注册接口register_chrdev(unsigned int major, const char *name,const struct file_operations *fops)major 就是主设备号name 是驱动名(这个不是设备名)fops 是file_operations结构体,定义了接口和应用层的函数对接在2.6内核版
2016-12-29 18:45:48 214
转载 uboot记录--收集
这篇博文写的不错,记录一下 http://blog.csdn.net/lee244868149/article/details/48824879
2016-12-27 15:22:41 133
原创 uboot记录--命令体系
今天下载了个较新版本的uboot,发现和之前工作用到的uboot的差别还是不小的,但是因为总体框架和流程不会改变,所有用新版本的uboot做分析和记录;用到的uboot版本是2016.09,当时开发用的是x210,cpu为s5pv210,cortex-a8架构,按道理来说,uboot是应该选择和当时开发板出厂时间差不多的版本,当时因为只做知识点的记录,还是用这个新版本的uboot来分析;关
2016-12-26 10:45:05 507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人