自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(251)
  • 资源 (4)
  • 收藏
  • 关注

转载 s3c2410 framebuffer驱动中的mmap分析备忘

这几天的高级驱动课真是听得happy,块设备、MTD设备讲的真是框架清晰,豁然开朗趁着还热乎,有空,记录下s3c2410 framebuffer驱动中的mmap的实现,留待以后实现自己的物理内存映射时参考此前也就是会掉mmap,如何在内核空间自己实现一个mmap还没有概念s3c2410fb.c中的fb_ops里并没有mmap的实现,fb是老牌设备驱动了,发展成为一个子系统,所以缺什么实

2012-09-04 23:20:00 1229

转载 linux中mmap系统调用原理分析与实现

1、mmap系统调用(功能)      void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset )      内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。

2012-09-04 23:18:47 848

转载 Linux 2.6.36以后file_operations和DECLARE_MUTEX 的变化

今天尝试移植了2.6.38的内核到AT91SAM9260上,在编译驱动时发现从2.6.36的内核开始,include/linux/semaphore.h 和 include/linux/fs.h中有了两处变化与驱动相关:1, 在include/linux/semaphore.h 中将#define DECLARE_MUTEX(name)   改成了 #define DEFINE_SEM

2012-09-04 11:37:05 877

转载 Linux驱动修炼之道-内存映射

C-sharp代码 void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);  void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 内存映射函数mmap负

2012-09-04 11:32:05 970

转载 Framebuffer Driver

中文名为:帧缓冲驱动   一、FrameBuffer的原理   FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。   Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显

2012-09-04 10:33:22 604

转载 分析Linux中Spinlock在ARM及X86平台上的实现

本文主要以2.6.22.6内核分析Linux中spinlock在ARM及X86平台上的实现(不同版本的内核实现形式会有一些差异,但原理大致相同)。此处默认大家已经熟悉了spinlock的使用,重点解释容易引起迷惑的体系结构相关的实现部分。一、spin_lock(lock)的实现/***include/linux/spinlock.h中***/#if defined(CONFIG_SMP

2012-09-04 10:23:00 1024

转载 为sourceinsight添加makefile和kconfig文件

大家用source insight看linux源码的时候都遇到这么一个麻烦,makefile和kconfig中的文字在搜索的时候不能找到,这是因为source insight默认是不选makefile的,也没有konfig这种类型的文件。下面就讲一下 如何添加makefile:打开Source Insight,在新建工程之前,进入Options -> Document Option

2012-09-01 11:07:18 680

转载 General Non-Device Specific Boot Args

These are the boot arguments that are not related to any specific device or peripheral. They are instead related to certain internal kernel parameters, such as memory handling, ramdisk handling, root

2012-08-31 13:35:27 910

转载 修改flash分区

对于Nandflash 驱动还有一个重要的方面是Nandflash 的分区,这个分区表位于内核源码目录的arch/arm/plat-s3c/include/plat/partition.h 文件中。一下为一种分区方式,可根据需要自行对分区进行修改。struct mtd_partition s3c_partition_info[] = {     {            .name =

2012-08-30 17:00:06 1324

转载 使用cmd命令 目录中有空格的解决方法

在很多命令行下,我们要运行某个命令,往往会出现只能显示到路径空格的地方就停下来了,并显示找不到所需要的文件。    比如:    我想使用命令注册某COM,某盘符下某目录(带有空格)下的XXX.DLL     regsvr32.exe X:\DD DD\XXX.DLL     则不能成功注册,因为DD DD中有空格存在。    解决的方法为:    regsvr32.exe

2012-08-30 14:43:18 2707

转载 linux启动过程中的几个重要文件的详解发表于 : 2011-04-19 18:21

这两天在做根文件系统的时候,注意到/linuxrc、/etc/init.d/rcS、/etc/init.d/rc.local、/etc/init.d/profile这几个文件尤其重要,遂把他们记载下来了。/Linuxrc 执行init 进程初始化文件。主要工作是把已安装根文件系统中的/etc 挂载为ramfs,并拷贝/mnt/etc/目录下所有文件到/etc,这里存放系统启动后的许多特殊文

2012-08-29 17:26:18 2364

转载 BusyBox Vi Reference

If you use Vi, you probably know there are tons of Vi versions with little key command differences.I learned on BusyBox Vi. The BusyBox key mapping is not well documented, and not as wide as some ot

2012-08-29 17:23:40 3272

转载 Linux-启动过程

FAE将porting好的linux提供,几乎都在写应用代码,空闲时间整理一下B1202系统启动的过程通过/boot/vm进行启动 vmlinuz init进程会读取    /etc/inittab,/etc/inittab先/etc/rc.d/rc.sysinit,再/etc/rc.d/rc3.d/ 等等 启动login登录界面 login 在用户登录的时候执行sh脚本的顺序

2012-08-29 17:20:03 854

转载 打造小型Linux系統

12-1 Linux 系統的啟動過程建構一個Linux系統時,了解Linux系統的開機流程是一件很重要的工作。從開機流程中,可以知道哪些軟體元件是必要的,這些檔案或程式需要設定與建立。Linux系統在啟動過程會有3個主要軟體元件參與其中:開機載入程式bootloader,Linux核心程式、init程序。開機載入程式bootloader以PC個人電腦為例,若電腦的BIOS設定啟動順

2012-08-29 17:16:08 1683

转载 bash 变量赋值方式

例子:经常在configure脚本中,会出现以下类似的语句,都表示什么意思呢?if test -n "${ZSH_VERSION+set}"; thenac_env_build_alias_set=${build_alias+set}test "${ac_configure_args0+set}" != set答案及扩展:

2012-08-29 16:42:09 2189

转载 linux /etc/rc.d/目录的详解

rc.d的内容如下:init.d/ :各种服务器和程序的二进制文件存放目录。rcx.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。具体的后边叙述。还有三个脚本:rc.sysinit, rc, rc.localredhat的启动方式和执行次序是:加载内核执行init程序/etc/rc.d/rc.sysinit

2012-08-29 15:58:20 1129

转载 makefile常见错误及其解决

这里我就最近在搞基于DE2开发板的NIOS 2 uClinux2.6-19的移植及S3C2440 wince5.0 BSP移植及开发工作中所遇到的一些makefile相关的问题及其相应的解决总结一下,其目的同样是希望与大家共同分享.              1.   makefile error:56 :***遗漏分隔符,停止.提示:在makefile文件中某一行(这里为56行)

2012-08-29 13:43:55 6506

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

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

2012-08-28 17:55:55 979

转载 U-Boot的加载地址分析

我们通过board/smdk2410/config.mk来分析运行时的内存分布情况board/smdk2410/config.mk:    ## SMDK2410 has 1 bank of 64 MB DRAM## 3000'0000 to 3400'0000## Linux-Kernel is expected to be at 3000

2012-08-28 11:32:16 1411

转载 U-BOOT start.s

用的U-BOOT版本是1.1.2,CPU是S3C2410U-BOOT源码在这里可以下到http://sourceforge.net/projects/u-boot/files/u-boot/*/#include #include /************************************************************************

2012-08-28 11:20:53 1673

转载 u-boot的内存分布和全局数据结构

U-boot,除非在RAM中调试,一般情况下都是从flash中执行一段代码,然后将flash中储存的代码和数据搬移到ram中,然后跳转到ram中执行。当然这应该也是一般的bootloader的执行方式,大家都差不多,但是各个bootloader的内存规划(栈,堆之类的)也 不太一样,而且u-boot还在内存空间中规划了一些用于存放环境变量和一些数据结构的空间,所以如果不了解一下的话,直接看代码的话

2012-08-28 11:19:55 1136

转载 LDR指令、LDR伪指令、ADR伪指令区别

引例如下:        先看一段代码:        AREA test,CODE,READONLY                 ENTRY         ldr r0,__main               adr r0,__main               ldr r0,=__main               nop             _

2012-08-28 10:36:41 1432

转载 u-boot编译过程理解

u-boot的源代码包含对几十种处理器、数百种开发板的支持。可是对于特定的开发板,配置编译过程只需要其中部分程序。这里具体以S3C2410 & arm920t处理器为例,具体分析S3C2410处理器和开发板所依赖的程序,以及u-boot的通用函数和工具。    编译    以smdk_2410板为例,编译的过程分两部:    # make smdk2410_config

2012-08-28 10:03:17 1532

转载 U-Boot启动过程完全分析

1.1       U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:       (1)第一阶段的功能?  硬件设备初始化?  加载U-Boot第二阶段代码到RAM空间?  设置好栈?  跳转到第二阶段代码入口       (2)第二阶段的功能?  初始化本阶段使用的硬件设备?  检测系统内存映射?  将内核从Fla

2012-08-28 10:02:17 1216

转载 uboot中main_loop分析

============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu版权没有,但是转载请保留此段声明============================================终于分析完了main_loop,发文纪念一下。 1。main_loopcom

2012-08-27 15:39:21 927

转载 移植linux内核到s3c6410(板子u-boot网口link-down问题解决)

uImage/ramdisk准备好后,准备tftp到单板上小式一把,结果将单板停在uboot后,网口一直link down,ping host后还打印“could not establish link”。真是抑郁啊。   细想,板子回来后,在uImage起来后,我是验证过网口的,是OK的,所以硬件应该没啥问题,应该是u-boot的支持问题。研究一下ping的流程: do_ping-->

2012-08-27 15:37:33 2360

转载 NFS服务器的安装和故障排除

NFS服务器的工作原理 NFS服务器的安装和故障排除本章要点 NFS(Network File System,网络文件系统)服务器的工作原理。 安装配置NFS服务器。 NFS的图形化配置。 NFS的客户端配置。 NFS服务器的故障排除。7.1  NFS服务器的工作原理7.1.1  NFS简介NFS是分布式计算机系统的一个组成部分,可实现在异构网络上

2012-08-23 16:34:21 2256

转载 arm linux上建立nfs文件系统

nfs文件系统建立(主机ip地址为192.168.3.170,开发板ip地址为192.168.3.100) 1.安装 nfs-kernel-server # sudo aptitude install nfs-kernel-server 2、设置主机共享目录,我就直接用根目录,编辑文件/etc/exports,增加以下内容 /home/puke/arm *(rw,sync,no_r

2012-08-23 16:03:18 871

转载 LTIB学习笔记

本文分五部分前言一 安装篇二 运行篇三 修改工具包 四 编译新的内核---------相关资料------------------------------------------------以下是在学习过程中在网上搜索到的资料LTIB使用总结          http://blog.chinaunix.net/u2/80953/showart_12

2012-08-22 12:00:10 854

转载 NAND FLASH扇区管理及初始化

(1)首先需要了解NAND FLASH的结构。如图:            以镁光MT29F4G08BxB Nand Flash为例,这款Flash(如上图)以4个扇区(sector)组成1个页(page),64个页(page)组成1个块(block),4096个块(block)构成整个Flash存储器;由于每个扇区的容量是512 字节(bytes),整个Flash容量为4224M B

2012-08-22 08:53:26 1167

转载 linux -- LTIB添加新平台

2.6.32内核整合到LTIB在LTIB里添加一个新平台是很容易的事情。首先打包内核源码,由于是修改过后可以正常使用的内核,所以没有补丁,在SPEC文件里就不用加上补丁的操作了。进入LTIB的安装目录下cd /config/platformcp imx27ads imx21ads -rfcd imx21adsvim main.lkc修改平台名,工具链,内核等,这

2012-08-21 15:30:52 2804

转载 LTIB 详解

一、LTIB简介       LTIB(Linux Target Image Builder)工程是一个使用在不同的目标平台下,用于开发和部署BSP(Board Support Packages)的简单工具。使用该工具,用户能够为其目标平台开发符合GNU/Linux标准的映像。       LTIB支持PPC,ARM,Coldfire等多种目标架构。包含超过200个用户使用的工具包以及通用

2012-08-21 11:07:14 15656 2

转载 bootloader

U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,命令行模式模式下支持“Tab”键的命令补全和命令的历史记录功能。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有的命令中没有其他任何一个的命令是由“v”开头的,所以只需要输入“v”即可。[u-

2012-08-21 09:41:25 1820

转载 在mini2440上面搞定CC2500驱动

写在前面最近基本搞定了CC2500在linux下面的驱动,在这个过程中遇到了好多问题,特此总结出来和大家分享。但是需要注意的事情是:第一,本文不负责程序的具体讲解,诸如每一行程序都讲什么:这个在程序的里面有注释。本篇文章更侧重于从整体结构上让大家对于linux下的CC2500DE驱动有一个整体的了解,如果到时候需要深入研究的时候,再来看具体的代码;第二,很多师弟师妹没有习惯

2012-08-19 22:00:10 1479

转载 避免软件延时被编译器优化

在编译器中可以设置优化等级,在高优化等级下,软件延时会被优化,使得软件延时的时间间隔变短,如下所示,会被优化的代码,假设时钟周期是1us(1MHz),则安下面的程序,则延时估计会在1ms左右。但如果编译器设置了高优化等级,则下面的延时远没有1ms。  unsigned int  repeatCount = 1000;  while (repeatCount--) ;       可以用

2012-08-16 15:00:37 3815

转载 实现Vim tags自动更新

这里要用到两个插件:projtags.vim : Set tags file for per projectAutoTag : Updates entries in a tags file automatically when saving这两个插件单独工作都不能满足我的要求,但是他们合起来使用却是非常方便。projtags.vim用于给项目配置tags文件,如配置项目路径为 /p

2012-08-15 16:42:25 2994

转载 ubuntu10.x 安装gdb insight

操作系统:ubuntu11.04安装包:insight.6.8-1.tar.bz2下载地址:ftp://sourceware.org/pub/insight/releases/安装步骤:1. sudo tarjxvf insight.6.8-1.tar.bz22.sudo ./configure--prefix=/usr/local/arm/arm-linux-insight-

2012-08-15 14:53:30 928

转载 串口公头(九针)母头(九孔)对应接口

RS-232接口又称之为RS-232口、串口、异步口或COM(通信)口。"RS-232"是其最明确的名称。 在计算机世界中,大量的接口是使用串口进行数据连接的,连接的硬体就是RS-232九芯电缆。要制作RS-232串口线首先要了解RS-232串口的引脚说明。RS-232串口分为9针串口(俗称:公头)和9孔串口(俗称:母头)。各自的引脚说明:《串口引脚图》  9针串行口的针脚功能

2012-08-15 11:08:25 19656

转载 VPATH与vpath的区别与应用

在Linux操作系统管理中,经常需要用到make命令来编译一些源代码。如内核升级,驱动程序安装等过程中,就需要用到这个命令。关于这个命令的使用技巧已经是老生常谈了。不过笔者这次要谈的是一个被大家所忽视的细节,即VPATH与vpath的区别,以及其在make命令中的应用。  一、让系统自动取寻找文件到依赖关系。  在利用make命令来编译一些大型项目时,往往会涉及到大量的源文件。可能这个项目

2012-08-13 15:27:44 796

转载 一步一步教你怎么编译GNU ARM GCC 交叉编译器 arm-none-eabi-gcc

首先,对于编译器这东西,我一向认为很高深,当然现在还是这么认为,呵,所以呢,一般都是用别人编译好的现成的编译好版本。可是最近因为要在windows下面编译u-boot的原因,因为找不到合适的arm编译器,故只能自己编译一个了。下面就是整个的编译过程,一步步来吧。在开始之前,还要说明一点,这里所编译的gnu arm gcc 编译器,运行时是依赖于cygwin的,而且这也是我所需要的,至于为什

2012-08-13 11:30:58 17836 3

ARM Linux 启动过程分析

ARM Linux 启动过程分析 对照代码详细讲述了linux启动过程

2012-06-08

Android Architecture Analysis

Android Architecture Analysis

2012-01-21

空空如也

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

TA关注的人

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