自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除