自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux内核高端内存【转】

2012-08-21 13:58:05 839

原创 Linux物理内存管理概述

在内核态申请内存比在用户态申请内存要更为直接,它没有采用用户态那种延迟分配内存技术。内核认为一旦有内核函数申请内存,那么就必须立刻满足该申请内存的请求,并且这个请求一定是正确合理的。相反,对于用户态申请内存的请求,内核总是尽量延后分配物理内存,用户进程总是先获得一个虚拟内存区的使用权,最终通过缺页异常获得一块真正的物理内存。 1.物理内存的内核映射IA32架构中内核虚拟地址空间只有1GB大小(从

2012-08-21 13:58:05 1019

原创 Linux内存管理-高端内存(一)

高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。 为什么?   因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。   实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。   因此,Linux 规定“内核直接映射空间” 最多映射 89

2012-08-21 13:58:05 919

原创 Linux内存管理-高端内存(二)

在支持MMU的32

2012-08-21 13:58:05 1120

原创 Kmalloc和Vmalloc的区别

kmalloc()和vmalloc()介绍kmalloc()用于申请较小的、连续的物理内存1. 以字节为单位进行分配,在中2. void *kmalloc(size_t size, int flags) 分配的内存物理地址上连续,虚拟地址上自然连续3. gfp_mask标志:什么时候使用哪种标志?如下:———————————————————————————————-情形 相应标志—————————

2012-08-21 13:58:05 726

原创 Linux设备驱动之I2C架构分析【转】

一、前言       I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而 I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不

2012-08-21 13:58:05 815

原创 Local Bus总线原理(转) 

Local Bus总线又称为CPU总线,根据高低位地址线序的差异,又可分为Motorola CPU总线和Intel CPU总线。古老的CS51单片机就是Intel CPU总线的典型代表,而我们常用的Power PC就是Motorola CPU总线架构,它是从60X总线衍变过来的(60X总线支持64、32、16、8四种可选位宽模式),由于Local Bus总线是直接从60X总线上通过桥片分出来的,所

2012-08-21 13:58:05 3183

原创 mmap详解【转】

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到

2012-08-21 13:58:05 710

原创 程序、进程、线程区别与联系

定义:   一 程序只是一组指令的有序集合。   二 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位;   三 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;   

2012-08-21 13:58:05 520

原创 死锁原因及解决、避免办法

死锁的条件     互斥条件(Mutual exclusion)     :资源不能被共享,只能由一个进程使用。     请求与保持条件(Hold and wait):进程已获得了一些资源,但因请求其它资源被阻塞时,对已获得的资源保持不放。     不可抢占条件(No pre-emption)    :有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释

2012-08-21 13:58:05 1158

原创 FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法

FLASH连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位。为什么要偏1位?从软件和CPU的角度而言,一个地址对应一个字节,就是8位数据。这是肯定的,不要怀疑这点。对于具体器件而言,它的位宽是一定的,所谓位宽,指的是\"读/写操作时,最小的数据单元\" --别说最小单元是\"位\",一般设备上没有单独

2012-08-21 13:58:05 1453

原创 公共闪存接口CFI在Flash Memory程序设计中的应用

摘 要: 介绍了闪速存储器(Flash Memory)的公共闪存接口(CFI)结构,以及系统软件如何利用CFI获取Flash Memory的各种参数,实现对各种Flash Memory的程序设计。关键词: 闪速存储器 公共闪存接口CFI 命令用户接口CUI自从Intel公司于1988年推出了可快速擦写的非易失性存储器Flash Memory以来,快速擦写存储器Flash Memory技术就

2012-08-21 13:58:05 1177

原创 【原】移植uboot到MPC8313E-RDB---【一】MPC8313ERDB.h文件的配置

平台:mpc8313。 u-boot版本:uboot1.3.0。 DDR2:128MB:位于0x00000000。 启动nor-flash:型号,AM29LV040B-90JD,512Kx8BIT,位于0xfff00000处。 内核、文件系统放置在另一片1G的nor flash中,所以需要在u-boot中加载两片nor-flash的驱动,这一部分最后实现,先实现512kb的nor-flas

2012-08-21 13:58:05 1222

原创 【原】移植uboot到MPC8313E-RDB---【二】512Kx8BIT接口的flash.c文件

平台:mpc8313。 u-boot版本:uboot1.3.0。 DDR2:128MB:位于0x00000000。 启动nor-flash:型号,AM29LV040B-90JD,512Kx8BIT,位于0xfff00000处。 内核、文件系统放置在另一片1G的nor flash中,所以需要在u-boot中加载两片nor-flash的驱动,这一部分最后实现,先实现512kb的nor-flas

2012-08-21 13:58:05 1546

原创 U_BOOT_CMD 分析【转】

start_armboot{}main_loop{1. 环境变量mtdparts, 调用mtdparts_init2. 如果在启动过程中 无空格键按下则boot_zImage有空格键按下则 run_command(\"menu\",0)3. shell过程,读取用户端输入并执行相应的命令{从输入端获得命令,保存在全局变量comsole_buffer中执行 run_command();}}run_c

2012-08-21 13:58:05 978

原创 自旋锁与信号量的区别

信号量和自旋锁区别 自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环查看是否该自旋锁的保持者已经释放了锁,\"自旋\"就是\"在原地打转\"。而信号量则引起调用者睡眠,它把进程从运行队列上拖出去,除非获得锁。------------------------------------------------------虽然听起来两者之间的使用条件复杂,其实在实际使用中信号

2012-08-21 13:58:05 970

原创 gcc中的预编译宏

* 预定义的宏     * __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名     * __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型     * __cplusplus 使用 C++ 编译器编译     * __DATE__ 编译时的日期     * __FILE__ 编译文件名     * __func__

2012-08-21 13:58:05 878

原创 Linux用户模式和内核模式【转】

linux中内核本身处于内核模式,应用程序处于用户模式。   内核模式的代码可以无限制地访问所有处理器指令集以及全部内存和I/O空间。如果用户模式的进程要享有此特权,它必须通过系统调用向设备驱动程序或其他内核模式的代码发出请求。另外,用户模式的代码允许发生缺页,而内核模式的代码则不允许

2012-08-21 13:58:05 626

原创 PowerPC的PCI总线的dts配置【转】

powerpc使用称为FDT 扁平设备描述树的机制传递给内核硬件配置参数,从而引导内核。 这样的优势是PowerPC在Linux上的移植基本上都是对dts文件的修改,而升级内核的工作量远远小于其他cpu体系结构。 只是目前介绍FDT或者OPEN Firmware的中文资料欠缺,这里记录我领悟的关于PCI总线树部分的ranges参数。 pci0: pci@e0008500 {interrupt-

2012-08-21 13:58:05 1026

转载 NAND Flash中常用的纠错方式【转】

Hanming,RS,BCH —— NAND Flash中常用的纠错方式         因为闪存中会有出错的可能,如果没有使用ECC模块,读出的数据和写入的数据会有不匹配的可能,也许一个文件中只有一两个bit不匹配,这也是不能容忍的。相对来说SLC中出错概率比较低,所以使用一个纠错能力不强的Hanming码就可以了,在MLC中Hanming码就显得力不从心了,需要纠错能力更强的RS或者B

2012-08-21 13:58:05 1281

原创 POWERPC中断【转】

从CPU的e500核的角度,中断源分为自己内核产生的异常和 PIC提供的中断。

2012-08-21 13:58:05 1443

原创 在扁平设备配置树文件中添加pci设备----基于MPC8313

今天使用MPC8313的DMO板套件跑我们自己的板子,出现了PCI设备找不到的情况,最后通过上网查资料,总结如下:        Powerpc使用扁平设备配置书文件引导内核,内核在启动过程中会扫描PCI设备,此时硬件上最重要的连线IDSEL起作用了。        先总结一下PCI设备启动过程。内核启动时,pci设备自由bios会扫描自身信息,然后生成含有pci设备信息的数据结构,然后保存起

2012-08-21 13:58:05 963

原创 Linux flash 文件系统剖析【转】

简介: 您之前可能听说过 Journaling Flash File System(JFFS)和 Yet Another Flash File System(YAFFS),但是您知道使用底层 flash 设备的文件系统意味着什么吗?本文将向您介绍 Linux 的 flash 文件系统,并探索它们如何通过平均读写(wear leveling)处理底层的可消耗设备(flash 部件),并鉴别各种不同的

2012-08-21 13:58:05 830

原创 数字电视基础知识

数字电视(Digital TV)           数字电视(Digital TV)包括数字HDTV、数字SDTV和数字LDTV三种。           三者区别主要在于图像质量和信道传输所占带宽的不同。           数字 HDTV(1000线以上)为高清晰度电视(High Definition Television)的简称,图象质量可达到或接近35mm宽银幕电影的水平。HDTV

2012-08-21 13:58:05 926

原创 怎么清除网页禁止复制?

怎么清除网页禁止复制? 1怎么清除网页禁止复制?我找到了一个网页是关于电脑知识的,我想复制它时,可是那个网页已被制作网页的人弄了“禁止左击和右击”的源码,有没有什么办法复制它呢?我从“查看”→“源文件”里想复制,可是太乱太乱了,不好复制,请问还有其它的办法吗?最佳答案你可以点击IE菜单栏上的\"文件\"->发送->电子邮件页面(跟这向导说的去做就可以拉,一路点击\'下一步\")然后就可以在弹出的邮

2012-08-21 13:58:05 936

原创 ITU BT 601建议及与ITU BT656 的区别【转】

1、ITU-R BT.601介绍 1982年CCIR(International Radio Consultative Committee国际无线电咨询委员会)制定了彩色视频数字化标准,称为CCIR 601标准,现改为ITU-R BT.601标准(601-4:1994.7. / 601-5:1995.10)。该标准规定了彩色视频转换成数字图像时使用的采样频率,RGB和YCbCr两个彩色空间之间

2012-08-21 13:58:05 5680

原创 BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明【转】

ITU-R BT.601和ITU-RBT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准。严格来说,ITU-R BT.656应该是隶属ITU-R BT.601的一个子协议。ITU-R BT.601是演播室数字电视编码参数标准,而ITU-R BT.656 则是ITU-R BT.601附件A中的数字接口标准,用于主要

2012-08-21 13:58:05 2006

转载 module_param和module_param_array

module_param(name, type, perm)name:    模块參数名称(就像一个变量名一样)type:    参数类型(同样类似于变量类型),有byte(unsigned char), short, ushort, int, uint, long, ulong, charp(相当于char *,不超过1024字节的字符串), bool, invbool(反boo

2012-08-21 13:58:05 378

原创 Linux内核中的platform机制

一、platform设备模型        从Linux 2.6起引入了一套新的驱动管理和注册机制:platform_device和platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用platform_device表示,驱动用platform_driver进行注册。        Linux platform. driver机制和传统的device dr

2012-08-21 13:58:05 1468

转载 linux中断

项目开发过程中需要对八个外设中断进行中断处理, 试用request_irq函数挂载过程中出现了中断号与硬件中断对应出错的问题,通过分析内核,得到些心得并找了点资料,记录如下,以供共享。在设备驱动过程中,用户可以试用request_irq函数将外设的中断服务例程挂载到外部中断处理程序中。外部中断处理程序,可以直接处理硬件中断,但是request_irq函数试用软件中断号进行挂载,因此linu

2012-08-21 13:58:05 376

原创 irq_create_mapping() -- 中断号的映射

irq_create_mapping() -- 中断号的映射irq_create_mapping()----------------------------------------------linux-2.6.21.7/arch/powerpc/kernel/irq.c1 irq_create_mapping() -->2    irq_alloc_virt()      // 分配虚拟中断号如

2012-08-21 13:58:05 3619

原创 RS232、RS422、RS485

一、RS-232、RS-422与RS-485 简介        RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的。       RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。其传送距离最大约为15米,最高速率为20kb/s,并且RS-232是为点对点(即只用一对收、发设备)

2012-08-21 13:58:05 4563

原创 用户空间与内核空间数据交换的方式(9)------netlink

Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_USERSOCK),防火

2012-08-21 13:58:04 553

转载 使用ioctl和内核交换数据

使用ioctl和内核交换数据1. 前言使用ioctl系统调用是用户空间向内核交换数据的常用方法之一,从ioctl这个名称上看,本意是针对I/O设备进行的控制操作,但实际并不限制是真正的I/O设备,能是所有一个内核设备即可。2. 基本过程在内核空间中ioctl是非常多内核操作结构的一个成员函数,如文件操作结构struct file_operations(include/linux/f

2012-08-21 13:58:04 712

原创 exit和return

退出和返回退出状态(exit status)函数返回一个被称为退出状态的值. 退出状态可以由return 来指定statement, 否则函数的退出状态是函数最后一个执行命令的退出状态(0 表示成功,非0 表示出错代码). 退出状态(exit status)可以在脚本中由$? 引用. 这个机制使脚本函数也可以像C 函数一样有一个\"返回值\".return终止一个函数.return 命令[1]可选

2012-08-21 13:58:04 381

原创 U-Boot在MPC8265平台上的移植与分析【转】

系统处理器启动时,首先执行一个预定地址处的指令,通常这个位置是只读内存,存放系统初始化或引导程序,其功能是执行CPU初始化并配置其他硬件,然后copy操作系统到RAM中。   在嵌入式Linux系统中,这些工作由Bootloacler(引导加载程序)完成,它是在嵌入式系统CPU加电复位和进入操作系统之前运行的代码,主要用于完成由硬件启动到操作系统启动的过渡,为操作系统提供基本的运行环境,如初始

2012-08-21 13:58:04 1287

转载 移植uboot到powerpc(1)--配置头文件,u-boot,ppc ,mpc85 mpc83

【转帖请注明出处:blog.csdn.net/lanmanck】 这里以mpc83x为例。uboot1.3.2,ddr2-128m,位于0x00000000;启动flash512k-8bit,位于0xfff00000处。其实每个powerpc出厂前飞思卡尔都做好开发板了。就是说uboot和kernel都是现成的。这里说的移植,应该比ic厂商的软件工程师轻松点,毕竟是在他们的基础上做

2012-08-21 13:58:04 3040

原创 移植uboot到powerpc(2)--start.s跟踪,u-boot,ppc ,mpc85 mpc83 【转】

可以看看这篇文章:http://www.foxice.net/techinfo_ubootvxworks7.asp 以及搜索下vxworks的启动文件rominit.s,对比uboot的start.s,前面很像。我这里说说具体要改的地方。   打开cpu.mpc83xx/start.s 1、配置“硬件复位配置字”,有个宏定义#define _HRCW_TABLE_ENTRY对应。配置字在i

2012-08-21 13:58:04 1508

原创 【引用】专家详解:内存工作原理及发展历程[1]

RAM(Random Access Memory)随机存取存储器对于系统性能的影响是每个PC用户都非常清楚的,所以很多朋友趁着现在的内存价格很低纷纷扩容了内存,希望借此来得到更高的性能。不过现在市场是多种内存类型并存的,SDRAM、DDR SDRAM、RDRAM等等,如果你使用的还是非常古老的系统,可能还需要EDO DRAM、FP DRAM(块页)等现在不是很常见的内存。   虽然RAM的类型非常

2012-08-21 13:58:04 539

原创 直接内存访问(DMA)【转】

1. 什么是DMA 直接内存访问是一种硬件机制,它允许外围设备和主内存之间直接传输它们的I/O

2012-08-21 13:58:04 498

phpMyAdmin-4.5.3.1-all-languages

phpMyAdmin-4.5.3.1-all-languages 管理数据库

2016-01-18

80X86汇编语言程序设计(PDF)

80X86汇编语80X86汇编语言程序设计(PDF)言程序设计(PDF)

2011-05-23

基于CPLD的十字路口交通灯设计

基于CPLD的十字路口交通灯设计 基于CPLD的十字路口交通灯设计 基于CPLD的十字路口交通灯设计

2009-06-15

空空如也

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

TA关注的人

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