- 博客(10)
- 资源 (9)
- 问答 (5)
- 收藏
- 关注
转载 内核与用户空间共享内存之mmap
一、用到的API与数据结构先看用户空间使用的API#include sys/mman.h>void *mmap(void *start, //映射的范围首地址,通常设NULL,让系统自动选地址,映射成功后返回该地址 size_t length, //映射的范围的大小 int prot, //映射区的保护属性 P
2014-05-29 16:54:49 1098
转载 内核与用户空间的内存共享(测试通过)
Make:obj-m := k_mem.oKDIR := /lib/modules/3.2.18/buildPWD := $(shell pwd)default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modulesclean: $(RM) -rf .*.cmd *.mod.c *.o *.ko .tmp* Module.s
2014-05-29 10:58:58 906
转载 Linux下使用交叉编译工具ltib开发powerpc(mpc83xx)
Linux下使用交叉编译工具开发powerpc(mpc83xx)写在前面 符号'##'后面语句均为注释 需要做的操作命令以 '$' 或 '#'开头,且都位于一行的开始 以下绝大部分操作是针对于我们的开发主机(PC),其他是针对于开发板(MPC8349itx) 对于主机上的操作,所说目录路径是相对于/usr/local/mpc8
2014-05-27 14:43:51 1396 1
转载 PCI 中的base address register
PCI设备有很好的可配置型和易操作性,这很大方面要归功于其地址空间的可动态分配的特性。而动态分配地址空间就是依赖于BAR(base address register)实现的。BAR是PCI配置空间中从0x10 到 0x24的6个register,用来定义PCI需要的配置空间大小以及配置PCI设备占用的地址空间。每个PCI设备在BAR中描述自己需要占用多少地址空间,bios通过所有设
2014-05-21 16:43:06 3054
转载 有关IO端口和IO内存的区别
外设IO寄存器地址独立编址的CPU,这时应该称外设IO寄存器为IO端口,访问IO寄存器可通过ioport_map将其映射 到虚拟地址空间,但实际上这是给开发人员制造的一个“假象”,并没有映射到内核虚拟地址,仅仅是为了可以使用和IO内存一样的接口访问IO寄存器;也可以 直接使用in/out指令访问IO寄存器。 例如:Intel x86平台普通使用了名为内存映射(MMIO)的技
2014-05-19 10:50:54 547
转载 IO端口与IO内存
从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),
2014-05-16 11:25:51 1037
转载 uboot分析之第一阶段源码
这两天在分析uboot,昨天分析完了makefile之后,今天分析了第一阶段的源码,故而分享之。新手望各位指教开始先插一下,uboot移植的思路:1首先来确定UBOOT的每一步动作,以及这个动作所使用的文件,函数等等2再来确定哪一个动作需要修改的3一般CPU都是ARM920T所以主要修改的是板级函数,在board文件夹下下来进行分析:分析的前
2014-05-14 08:45:16 675
转载 mmap详解
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域
2014-05-08 15:21:56 561
ARM定时器首次进入中断后不退出
2014-12-16
pci配置寄存器bar的访问
2014-05-21
IO端口和IO内存的区别
2014-05-19
用union实现两个int型合并为longlong型
2014-05-17
嵌入式linux core占用空间问题
2014-04-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人