自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 ARM linux内核启动时几个关键地址

ARM linux内核启动时几个关键地址  1.       内核启动地址1.1.   名词解释ZTEXTADDR解压代码运行的开始地址。没有物理地址和虚拟地址之分,因为此时MMU处于关闭状态。这个地址不一定时RAM的地址,可以是支持读写寻址的flash等存储中介。Start address of decompressor. here's no point in talking...

2018-11-21 11:34:13 360

转载 Java中print、printf、println的区别(转载)

Java中print、printf、println的区别(转载)  2011-09-09 17:09:17|  分类:java |  标签:print  printf  println  |举报|字号大中小 订阅  printf主要是继承了C语言的printf的一些特性,可以进行格式化输出print就是一般的标准输出,但是不换行println

2014-06-26 10:12:02 565

转载 Linux内核中ioremap映射的透彻理解

几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:  (1)I/O映射方式(I/O-mapped)  典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的

2013-04-16 16:49:12 556

转载 VFS中的目录项对象和文件对象

VFS中的目录项对象和文件对象   一 .VFS 中的目录项对象 1.为了方便查找,VFS引入了 目录 项,每个dentry代表路径中的一个特定部分。目录项也可包括安装点。 2.目录项对象由dentry结构体表示 ,定义在文件linux/dcache.h 头文件中。   89struct dentry {  90        atomic_t d_count;

2013-04-16 12:00:24 1249

转载 Linux文件编程之虚拟文件系统(VFS)

Linux文件编程之虚拟文件系统(VFS)          当用户层程序员在编写文件函数时,常常会用到open(),read()和write()这类系统调用,而且用的也很爽,因为我们只需要知道这些函数如何调用就OK了,而不用深究具体文件系统和实际物理介质是如何实现的。而我们内核编程人员就要了解这些底层实现,给上层人员提供更多的方便。因此我们的任务就更复杂,佛家有一句名言:“我不入

2013-04-16 11:57:56 689

转载 Linux字符设备编程(五)之struct class

Linux字符设备编程(五)之struct class在前面我们已经介绍了两种方法来实现在编写设备驱动程序时由系统自动给我们创建设备文件的方法。现在我们接着讲解第三种方法.一.前言内核中定义了struct class结构体,一个struct class 结构体类型变量对应一个类,内核同时提供了class_create()函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创

2013-04-16 11:03:46 582

转载 字符设备编程(四)之可爱的 misc

字符设备编程(四)之可爱的misc在我们前面所学的字符设备编程中,当我们写好字符设备驱动并加载成功后;要使我们所写的驱动层程序和应用层程序之间搭建起通信桥梁,要通过设备节点。很多时候,我们都是利用mknod命令手动创建设备节点;应用层程序通过设备节点 (open(“/dev/globalmem”,O_RDWR)) 和驱动层程序之间进行通话。注:此处的

2013-04-16 11:01:31 512

转载 Linux字符设备驱动之register_chrdev_region()系列

Linux字符设备驱动之 register_chrdev_region()函数系列1.内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:static struct char_device_struct {struct char_device_struct *next; //

2013-04-16 10:59:13 617

转载 Linux字符设备驱动之cdev_init()系列

字符设备驱动之cdev_init()系列函数1.内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {  13        struct kobject kobj;  14        struct module *owner;  15        const s

2013-04-16 10:57:40 610

转载 Linux字符设备驱动(三)

字符设备驱动之体验篇 三.字符设备之编程通过程序来体验字符设备驱动编程的过程在Linux系统中,字符设备驱动由如下几个部分组成:(1)字符设备驱动模块加载与卸载函数(2)字符设备驱动的file_operations结构体中成员函数file_operations结构体中成员函数是字符设备驱动与内核的接口,是用户空间对Linux进行系统调用最终的实现着。(3)在字符

2013-04-16 10:56:39 594

转载 Linux字符设备驱动(二)

字符设备驱动之结构体二.字符设备驱动的数据结构大部分驱动程序操作都涉及到三个重要的内核数据结构,分别是file_operations、file和inode,它们的定义都在1.file_operations:是一个函数指针的集合1>应用程序和VFS之间的接口是系统调用,而VFS与磁盘文件系统以及普通设备之间的接口是file_operations结构体成员函数;file_opera

2013-04-16 10:54:56 689

转载 Linux字符设备驱动(一)

Linux字符设备驱动之概述篇一.概述:1.在Linux中有一句哲学“Linux下皆文件”。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。但是设备文件和普通文件还是又差别的。那么设备和普通文件之间又有什么区分呢?先看看两个图:普通文件:-rw-r--r--  1 stell

2013-04-16 10:52:43 502

转载 文件结构体struct file(Linux 2.6.23内核)

struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file {       /*      * fu_list becomes invalid after file_free is called and queued via      * fu_rcuhead for RCU freein

2013-04-16 10:18:42 900

转载 linux 下arm汇编语法

第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [

2013-04-11 11:07:16 933

原创 收录 Uboot 详解

分类: LINUX------------------------------------------------------------------------------------------------------------------------------------------- 我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复

2013-04-09 17:02:28 539

转载 cache的相关知识

Cache的原理、设计及实现 前言   虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/内存之间的存取速度有关。  若CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力。   如500MH

2013-03-22 17:51:52 854

转载 S3C2410 MMU

标题:s3c2410 MMUMMU,全称Memory Manage Unit, 中文名——存储器管理单元。许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终

2013-03-22 17:49:10 502

转载 ARM2440和6410区别

1.主频不同。2440是400M的。6410是533/667M的;2.处理器版本不一样:2440是ARM920T内核,6410是ARM1176ZJF内核;3.6410在视频处理方面比2440要强很多。内部视频解码器,包括MPEG4等视频格式;4.6410支持WMV9、xvid、mpeg4、h264等格式的硬解码和编码;5. 6410多和很多扩展接口比如:tv-out、CF卡和S-V

2013-03-19 17:56:40 932

转载 硬件工程师电路设计必须紧记的十大要点

<!--p {margin-bottom:0.21cm; direction:ltr; color:rgb(0,0,0); text-align:justify}-->一、电源是系统的血脉,要舍得成本,这对产品的稳定性和通过各种认证是非常有好处的。     1.尽量采用∏型滤波,增加10uH电感,每个芯片电源管脚要接104旁路电容;     2.采用

2013-03-19 17:54:34 660

空空如也

空空如也

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

TA关注的人

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