自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 细谈C语言中的编译和链接

C语言是大部分编程初学者接触的第一种语言,也许很多Cer对C的熟练已经到了炉火纯青的地步,但是当涉及到编译和链接的问题很多人却不以为然,毕竟我们在任何IDE下除了code以外对编译链接的理解就是一到两个按钮而已,但是通过阅读以下的内容,你会发现C语言本身的许多语法特性与其独到的编译连接方式是息息相关的。     (以下内容为网上内容,由帖主整理)     首先是预编译,这一步可以粗略的

2012-09-29 16:51:03 1655

转载 S3C2440与SDRAM的地址连线分析

S3C2440与SDRAM的地址连线分析--------------------------------------------------------------------------------该文章讲述了S3C2440与SDRAM的地址连线分析.S3C2440有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问ban

2012-09-29 15:01:09 1072

转载 busybox文件系统的启动顺序

文件系统中执行顺序说明:在文件系统中,配置文件主要存放在 /etc 目录里面。开机从 /linuxrc 脚本运行的话需要在内核传递参数里设置 init=/linuxrc ,因为默认是启动 /sbin/init 初始化脚本的( busybox 编译安装以后生成的 linuxrc 文件是指向 /bin/busybox 的符号文件,应该把它删掉,自己重写脚本)。在我做的文件系统里采用这种方法,所以设

2012-09-28 14:03:46 2395

转载 条件编译 #ifndef _HEAD_H...中下划线的理解!

一、下划线“__”属于编程风格的内容,对程序没有影响。不用下划线也可以,用几个下划线也由个人习惯。二、其实质是一个宏名。由此我们可以防止发生重复定义或声明。假设你的头文件名为head.h,根据习惯,我们声明一个宏HEAD_H,对应这个头文件,在头文件中开始的地方和结尾的地方加上   对HEAD_H的声明和判断,头文件Head.h如下:#ifndef   HEAD_H #de

2012-09-28 09:51:12 1043

转载 互斥信号量和二进制信号量的区别

互斥型信号量必须是同一个任务申请,同一个任务释放,其他任务释放无效。同一个任务可以递归申请。        二进制信号量,一个任务申请成功后,可以由另一个任务释放。 二进制信号量实现任务互斥:     打印机资源只有一个,abc三个任务共享,当a取得使用权后,为了防止其他任务错误地释放了信号量(),必须将打印机房的门关起来(进入临界段),用完后,释放信号量,

2012-09-28 09:32:22 1283

转载 LPC3250的nor flash地址线接法

以前接触过2410的片子,这个片子接SST39VF1601片子时候,A0是不用的,很容易理解,因为SST这个片子是16bit的,无需字节寻址,所以A0不用。最近看到YL-LPC3250的板子在nor flash的接法上面有所不同,他们使用了同样型号的nor flash片子。但是他们却使用了A0地址,觉得很奇怪。查了手册,发现3250这个片子的EMC和三星2410的区别很大。 三星要求8

2012-09-27 23:24:33 1292

转载 串口的open操作(tty_open) .

根据前面的操作,串口作为字符驱动也已经注册到系统了,/dev目录下也有设备文件节点了。那接下来uart的操作是如何进行的呢?操作硬件之前都是要先open设备,先来分析下这里的open函数具体做了那些工作(做了大量工作 ,真的!)。应用层通过open系统调用open(“/dev/s3c2410_serial0”,)一层一层调用到会调用到tty_open。因为串口在linux下是作为t

2012-09-26 15:22:56 1405

转载 linux串口驱动分析

硬件资源及描述         s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)端口,每个端口都可以在中断模式或 DMA 模式下操作。UART 使用系统时钟可以支持最高 115.2Kbps 的波特率。每个 UART 通道对于接收器和发送器包括了 2 个 64 位的 FIFO。寄存器名称地址在linux中的描述 (

2012-09-25 17:00:44 1393

转载 source insight中的多行注释

我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的功能:用快捷键“Ctrl + /”来实现“//”的多行注释。但是在用source insight的时候,发现竟然没有这样的功能。于是在网上搜了一下,source insight里面的多行注释可以用宏来实现。以下是实现多行注释的宏代码(在别的网站copy过来的,经过测试,还是很好用的):123

2012-09-24 14:27:11 9397

转载 Ubuntu删除和新建用户

1)新建用户:sudo useradd -m newuser     可创建家目录,但是显示有问题,而且不能命令回顾。2)删除用户:sudo userdel -r uewuser.     彻底删除,在删除用户的同时一起把这个用户的宿主目录和邮件目录删除。3)新建用户:sudo adduser newuser    OK====http://blog.csdn.net/

2012-09-18 23:48:38 1065

转载 Ubuntu不能修改密码,长度太短或太简单?

在安装 Ubuntu 的时候建立的帐户 sai,想把密码改成两个字母aa,方便输入。运行终端sai@xmomx:~$ passwd sai更改 sai 的密码。 (当前)UNIX 密码: xx 输入新的 UNIX 密码: aa 重新输入新的 UNIX 密码:aa 必须选择更长的密码 输入新的 UNIX 密码: 1234567 重新输入新的 UNIX

2012-09-18 23:06:58 1865

转载 ltib使用常见问题汇总

Q1: How do I know which packages are available/will be installed?Before configuring ltib, you can run bin/listpkgs on an ltib config file, for instance, for the mpc8548cds, you could run:bin/lis

2012-09-15 23:39:11 1071

转载 LTIB platform choice menu change

rm /.configNote: that's .config, not just config. ----- Original Message ----- From: Jim CharginTo: address@hidden Cc: Joe Shimek Sent: Tuesday, January 05, 2010 3:52 PMSubject

2012-09-15 15:06:46 1098

转载 内核定时器

一、定义:/include/linux/timer.hstruct timer_list {struct list_head entry;unsigned long expires;void (*function)(unsigned long);unsigned long data;struct tvec_t_base_s *base;#ifde

2012-09-14 17:21:08 698

转载 printk

printk编辑本段概述  对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。  printk是在内核中运行的向控制台输出显示的函数,Linux内核首先在内核空间分配一个静态缓冲区,作为显示用的空间,然后调用sprintf,格式化显示字符串,最后调用t

2012-09-14 13:40:01 703

转载 LINUX内核调试相关--oops信息的定位2

Ø  实验目的与意义1 、掌握printk 的使用、设置及实现原理,理解分级别进行打印log 信息的实现方法 2 、掌握如何分析oops 的方法 3 、掌握strace 工具的移植和使用方法   Ø  基本原理和方法1 、请回顾栈的工作原理,尤其是栈帧的作用 2 、请对照printk 的源代码来进行printk 相关实验,并在实验中进一步理解源代码   Ø  实

2012-09-14 10:24:49 1601

转载 Linux 系统内核的调试

调试是软件开发过程中一个必不可少的环节,在 Linux 内核开发的过程中也不可避免地会面对如何调试内核的问题。但是,Linux 系统的开发者出于保证内核代码正确性的考虑,不愿意在 Linux 内核源代码树中加入一个调试器。他们认为内核中的调试器会误导开发者,从而引入不良的修正[1]。所以对 Linux 内核进行调试一直是个令内核程序员感到棘手的问题,调试工作的艰苦性是内核级的开发区别于用户级开发的

2012-09-14 09:55:00 920

转载 Linux命令diff

diff的输出格式分为传统格式和统一格式   1)diff的传统格式输出.  ############################################  cat before.txt  输出:  This is a line to be deleted  This is a line that will be changed  This is a lin

2012-09-13 22:35:46 559

转载 compile module with freescale LTIB

上面已经对ltib编译流程及主要操作做了大致描述,下面分别描述内核修改配置以文件系统添加应用程序和脚本在需要修改内核配置,比如为内核添加编译新的模块功能时,该如何完成,下面以将支持8021Q VLAN协议的模块编译进我们需要的内核中为例来演示:##首先按照前面所说的简单快捷的方式,执行命令:$ ./ltib --preconfig config/platform/mpc8349itx/de

2012-09-13 15:24:16 925

转载 Ubuntu 10.10下如何启动进入命令行模式?

Ubuntu是一个自由、开源的操作系统,是以桌面应用为主的linux操作系统,未来具有极有的可能替代windows系统。不同于windows系统,ubuntu系统使用命令的环境较多,下文教大家如何在Ubuntu 10.10下启动进入命令行模式。Ubuntu 10.10启动进入命令行模式1: 运行 sudo gedit /etc/default/grub2: 找到 GRUB_CMDLIN

2012-09-12 21:15:16 990

转载 lseek() sample program in C

Input and output are normally sequential: each read or write takes place at a position in the file right after the previous one. When necessary, however, a file can be read or written in any arbitrary

2012-09-10 22:02:36 967

转载 LDD3之scull--从open系统调用到模块的scull_open执行流程分析

本帖的主要内容提供一个从系统调用open到内核中该文件实际的open方法的调用流程分析,基本上列出来从open系统调用到scull_open过程中调用的函数。在这个过程中很多调用以及函数实现的细节还并不是很清楚。希望在随后的研究过程中,以及和别人的交流中,把这个调用流程丰富起来。intopen(constchar *pathname,int flags, mode_t

2012-09-08 01:00:06 730

转载 如何使LXR索引的代码在线阅读时语法高亮显示

LXR —— Linux Cross Refercence。Linux内核源码阅读和查询的利器之一,不用多介绍了。LXR安装后看到的源码是没有颜色的,用惯了语法高亮的编辑器,一下子看到满屏的黑白代码不免有点枯燥。于是给它装了个可以显示语法颜色的工具。1、安装google-code-prettify项目地址是:http://code.google.com/p/google-code-pret

2012-09-07 11:52:37 882

转载 smart3250中的静态I/O映射情况

根据网络大虾们的指导,基本上搞清楚了smart3250中的静态I/O映射情况。写个blog供以后参考。****************************网络摘录**************************************内核提供了在系统启动时通过map_desc结构体静态创建I/O资源到内核地址空间的线性映射表(即page table)的方式,这种映射表是一种一一映射

2012-09-06 22:07:55 1633

转载 让 Source Insight 显示全路径

Source Insight 是读代码的利器,但默认情况下长的文件路径总会显示成省略号,对文件的定位特别不方便。主要是Slick Edit 没有Jump to Caller 功能,要不早就不用这个 SI 了。    百度之后找到答案,留此作个记录。    Options->Preferences->Display,     去掉勾选 "Trim long path names

2012-09-06 19:58:21 1369

转载 Ubuntu 8.10 下安装 lxr 与 glimpse

前言 Lxr 对指定的源代码文件建立索引数据库,利用 perl 脚本 CGI 动态生成包含源码的 web 页面,可以用任一浏览器查阅。在此 web 页中,所有的变量、常量、函数都以超连接的形式给出,十分方便查阅。步骤 1 :安装软件 1)   安装 apache2: sudo apt-get install apache2 2)   安装 lxr, sudo apt-get ins

2012-09-06 17:37:35 1143

转载 platform驱动之probe函数

驱动注册的probe函数probe函数在设备驱动注册最后收尾工作,当设备的device 和其对应的driver 在总线上完成配对之后,系统就调用platform设备的probe函数完成驱动注册最后工作。资源、中断调用函数以及其他相关工作。下面是probe被调用的一些程序流程。从driver_register看起:int driver_register(struct device

2012-09-06 16:50:34 706

转载 Color Map 剖析

Framebuffer驱动程序模型  下图会向你展示目前的framebuffer设备驱动的结构,最常用的是非标准驱动。很明显他所处的层次最高,程序编写是最容易的。理解了这个图的,你已经很轻松的去完成一个fb驱动,比如给sa1100,s2410,s2440系列的ARM的LCD控制器写驱动。 Color Map 剖析在framebuffer驱动程序设计中,cmap这个东东太晕了。现在我

2012-09-05 22:51:23 1131

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

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

2012-09-04 23:20:00 1246

转载 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 868

转载 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 895

转载 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 987

转载 Framebuffer Driver

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

2012-09-04 10:33:22 624

转载 分析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 1050

转载 为sourceinsight添加makefile和kconfig文件

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

2012-09-01 11:07:18 709

空空如也

空空如也

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

TA关注的人

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