自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (6)
  • 收藏
  • 关注

转载 Linux内核中内存相关的操作函数

1.原理说明  Linux内核中采 用了一种同时适用于32位和64位系统的内 存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系 统中,用到了四级页表,如图2-1所示。四级页表分别为:  * 页全局目录(Page Global Directory)  * 页上级目录(Page Upper Directory)  * 页中间目录(Page Middle Direct

2014-02-28 17:09:33 2729

转载 linux驱动开发 主设备号与次设备号

一个字符设备或者块设备都有一个主设备号和次设备号。主设备号和次设备号统称为设备号。主设备号用来表示一个特定的驱动程序。次设备号用来表示使用该驱动程序的各设备。例如一个嵌入式系统,有两个LED指示灯,LED灯需要独立的打开或者关闭。那么,可以写一个LED灯的字符设备驱动程序,可以将其主设备号注册成5号设备,次设备号分别为1和2。这里,次设备号就分别表示两个LED灯。1.主设备号和

2014-02-20 13:57:51 2564

转载 kmalloc/kfree,vmalloc/vfree函数用法和区别

1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请的内存进行清零。> 2>kamlloc函数原型:#includeVoid *kmalloc(size_t size, int flags);(1)第一个参数是要

2014-02-20 11:12:39 813

转载 信号量、互斥体和自旋锁

一、信号量      信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作:    (1) 测试控制该资源的信号量。    (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。    (3) 若此信号

2014-02-20 11:06:31 1182

原创 IRQ和FIQ中断的区别

FIQ和IRQ是两种不同类型的中断,ARM为了支持这两种不同的中断,提供了对应的叫做FIQ和IRQ处理器模式(ARM有7种处理模式)。一般的中断控制器里我们可以配置与控制器相连的某个中断输入是FIQ还是IRQ,所以一个中断是可以指定为FIQ或者IRQ的,为了合理,要求系统更快响应,自身处理所耗时间也很短的中断设置为FIQ,否则就设置了IRQ。如果该中断设置为了IRQ,那么当该中

2014-02-20 10:12:02 47226 2

转载 Nand Flash结构与读写分析及Nand Flash寻址方式

NAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据是以bit的方式保存在memory cell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。     这些Line会再组成Page,通常是528B

2014-02-19 10:34:25 2009

原创 DMA和cache一致性问题

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的 一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用

2014-02-14 10:30:21 20987 6

转载 SLC MLC

SLC 和MLC分别是是Single Layer Cell 单层单元和Multi-Level Cell多层单元的缩写,SLC的特点是成本高、容量小、速度快,而MLC的特点是容量大成本低,但是速度慢。MLC的每个单元是2bit的,相对SLC来说整整多了一倍。不过,由于每个MLC存储单元中存放的资料较多,结构相对复杂,出错的几率会增加,必须进行错误修正,这个动作导致其性能大幅落后于结构简单的SLC闪存

2014-02-13 17:22:39 1065

原创 线程/进程同步的方式和机制

线程同步机制:临界区(Critical Section)、互斥量(Mutex)、事件(Event)、信号量(Semaphore)四种方式1、临界区:又称阻塞,通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程

2014-02-13 16:31:54 2650 1

原创 MACHINE_START之分析

MACHINE_START(XXX, "xxx")    .phys_io     = PA_UART0,    .io_pg_offst = (((u32)VA_UART0) >> 18) & 0xfffc,    .boot_params = SDRAM_PA + 0x100,     .fixup     = xxx_fixup,    .init_irq   = xxx

2014-02-13 15:12:13 3815

转载 Linux2.6.35.7内核启动流程分析

S3C2410 Linux 2.6.35.7启动分析1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds  arch/a

2014-02-11 14:45:53 3645

adv7282 datasheet

adv7282 datasheet,user manual,寄存器描述

2017-02-28

龙芯3A用户手册上卷

龙芯3A用户手册上卷,多核处理器架构、寄存器描述与系统软件编程指南

2015-03-13

龙芯1B user manual

非常完成的龙芯1B用户手册,V2.0版本的

2015-03-13

linux下的内存映射函数mmap详解及示例代码

介绍应用使用mmap以及到kernel内部的映射实现过程以及实例代码

2014-03-18

空空如也

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

TA关注的人

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