自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (5)
  • 收藏
  • 关注

原创 mdadm代码解析

mdadm是一个用于创建、管理、监控RAID设备的工具,它使用Linux中的md驱动。    mdadm程序是一个独立的程序,能完成所有软件RAID的管理功能,主要有7中使用模式。模式名字主要功能(对于存储管理系统)Create使用空闲的设备创建一个新的阵列,每个设备具有元数据块创建RAID时使用的命令

2017-03-19 21:08:19 1638

转载 set_current_state 应用

A: A是一个等待进程等待condition 满足过后退出死循环 A:    while(1)  {   if ( condition )  //条件成立了    goto: OUT   else{    //1:----------------------    set_current_state(TASK_UNINTERRUPTIBLE);    sch

2013-11-30 14:03:25 1093

转载 基于mjpg-streamer-r63的源码分析之:基础知识详细解释[一]

作者:EasyWave                                                                                 时间:2012.07.27类别:linux应用之mjpg-streamer分析                                            声明:转载,请保留链接注意:如有错

2013-09-21 10:59:22 756

原创 uImage

Stage1 主要是初始化硬件设备, 然后最主要的功能就是把Stage2 load到RAM中去。u-boot与kernel的关系U-boot为kernel服务, u-boot为kernel提供一些kernel无法知道的信息,比如ramdisk在RAM中的地址Kernel也必须为U-boot提供必要的信息:通过mkimage这个tool可以给zImage添加一个header:type

2013-08-29 08:41:34 883

原创 uboot load address、entry point、 bootm address以及kernel运行地址的意义及联系

按各地址起作用的顺序,uboot引导linux内核启动涉及到以下地址:1.      load address:2.     entry point: 这两个地址是mkimage时指定的3.     bootm address:bootm为uboot的一个命令,以此从address启动kernel4.     kernel运行地址:在具体mach目录中的Makefile.boot中

2013-08-29 08:40:24 1125 2

原创 Uboot中控制台的前期初始化

在u-boot完成第一阶段基本的硬件初始化、重定位代码、建立堆栈,清除bss段后,将会跳转到start_armboot中执行.这是u-boot执行的第一段C语言代码,完成系统的初始化工作,进入主循环,处理用户输入的命令。在这个初始化过程中,start_armboot首先会根据结构体变量init_sequence[]定义的顺序执行初始化的工作,下面以U-Boot2009.08-rc1中S

2013-08-29 08:38:13 1009

原创 chrdev_open的详细分析

此函数主要完成的工作就是填充并调用用户给出的 struct file->f_op 结构中的函数集。它首先尝试得到正确的字符设备结构,判断如果注册了相应的函数集则调用。int chrdev_open(struct inode * inode, struct file * filp){ struct cdev *p; struct cdev *new = NULL; int r

2013-08-22 14:12:32 2134

原创 嵌入式文件系统镜像制作及烧写

一、cramfs 文件系统+ jffs2文件系统。    1.cramfs 文件系统:存放系统文件:只读。    jffs2文件系统:存放用户文件:读写。    修改文件系统的自启动脚本:vim /etc/init.d/rcS    在其中添加:    mount -t jffs2 /dev/mtdblock3 /home/y (给用户)    2.

2013-08-21 15:40:02 765

转载 Linux操作系统分析(5)- 计时器

一、提要              计时器属于操作系统中的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持。使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。        本文首先讨论了在 Linux 环境下,计时器的分类与实现,并对相应的接口函数进行使用。二、计时器的种

2013-08-21 15:36:45 617

转载 Linux操作系统分析(4)- 更新内核与添加系统调用

更新内核直接安装的系统内核版本一般不是最新,用[plain] view plaincopyuname -a  命令可以查看内核的版本号,比如我的就是:下面来手动更新内核到最新的稳定版本。1.获取源码进入kernel.org,下载最近版本内核源码,

2013-08-21 15:31:03 455

转载 Linux操作系统分析(3)- 内核装载ELF的过程总结

通过上面一些对进程的学习和一些代码的验证,我们对Linux下的进程方面的知识有了一个很好的了解。相关的文章:进程控制Linux操作系统分析(2)- 进程的创建与可执行程序的加载下面来简单总结一些内核装载ELF的过程总结。简单的说,整个流程分为三步:1)创建一个独立的虚拟地址空间;2)读取可执行文件头,并且建立虚拟空间与可执行文

2013-08-20 11:29:28 709

转载 Linux操作系统分析(2)- 进程的创建与可执行程序的加载

1.进程管理       Linux中的进程主要由kernel来管理。系统调用是应用程序与内核交互的一种方式。系统调用作为一种接口,通过系统调用,应用程序能够进入操作系统内核,从而使用内核提供的各种资源,比如操作硬件,开关中断,改变特权模式等等。       常见的系统调用:exit,fork,read,write,open,close,waitpid,execve,lseek,g

2013-08-20 11:22:03 616

转载 Linux操作系统分析(1)- How program works

1.gdb常用调试命令要用gdb调试的话,编译命令需要添加-g参数,例如[plain] view plaincopygcc -g main.c -o main  b linenum          在第 linenum行打断点l                           显示源代码;Ct

2013-08-20 11:16:53 603

汽车行驶记录仪代码

汽车行驶记录仪的相关代码,可以编译通过,在stm32上运行,加速度传感器 记录仪功能

2015-12-08

yaffs2源代码分析

yaffs2源代码分析 很详细 很经典

2013-08-21

linux_内核编译配置选项

linux_内核编译配置选项 中英文对应的

2013-08-21

open系统调用在内核中的流程分析

open的详细调用过程,根据linux内核2.6.35

2013-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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