这几天研究了下/dev/mem,发现功能很神奇,通过mmap可以将物理地址映射到用户空间的虚拟地址上,在用户空间完成对设备寄存器的操作,于是上网搜了一些/dev/mem的资料。网上的说法也很统一,/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),接着就可以用mmap来访问物理内存以及外设的IO资源,这就是实现用户空间驱动的一种方法。
用户空间驱动听起来很酷,但是对于/dev/mem,我觉得没那么简单,有2个地方引起我的怀疑:
(...
分类:
其他好文 时间:
2015-08-13 14:23:13
阅读次数:
482
线段树求最大子列。陈老师的代码实在太神了,orz CLJ!!!! 1 #include 2 #define inc(i,l,r) for(i=l;i=r;i--) 4 #define inf 1e9 5 #define mem(a) memset(a,0,sizeof(a)) 6 #define N...
分类:
其他好文 时间:
2015-08-13 14:12:14
阅读次数:
135
还没写过splay树上的lazy标记。写得还算顺利,不过自己出数据错了浪费了好多时间QAQ在debug过程中深刻体会到了gdb的好处orz 1 #include 2 #define inc(i,l,r) for(i=l;i=r;i--) 4 #define mem(a) memset(a,0,siz...
分类:
其他好文 时间:
2015-08-13 01:03:59
阅读次数:
119
以前做的时候好像是照抄的。。今天再做一次头脑果然还是挺乱>, 2 #define inc(i,l,r) for(i=l;i=r;i--) 4 #define inf 1e9 5 #define NM 50000+5 6 #define mem(a) memset(a,0,sizeof(a)) 7 u...
分类:
其他好文 时间:
2015-08-11 21:08:07
阅读次数:
115
还有如此水题。。。以前真的太怕bzoj了QAQ 1 #include 2 #define inc(i,l,r) for(i=l;i=r;i--) 4 #define inf 1e9 5 #define mem(a) memset(a,0,sizeof(a)) 6 #define NM 10000+5...
分类:
其他好文 时间:
2015-08-11 21:03:06
阅读次数:
104
#!/bin/bash
STAT_OK=0
STAT_WARNING=1
STAT_CRITICAL=2
STAT_UNKNOWN=3
total_mem=`free?-m?|awk?‘NR==2{print?$2}‘`
used_mem=`free?-m?|awk?‘NR==3{print?$3}‘`?
free_mem=$[$total_mem?-?$used_m...
分类:
移动开发 时间:
2015-08-10 22:32:29
阅读次数:
255
练下线段树,pushdown不把加和乘分开做就A了。。。就这被卡了好一会。虽然不造为什么,但是算了0.0 1 #include 2 #define inc(i,l,r) for(i=l;i=r;i--) 4 #define mem(a) memset(a,0.sizeof(a)) 5 #define...
分类:
其他好文 时间:
2015-08-10 19:58:05
阅读次数:
114
系统调优概述系统调优1.系统的运行状况:CPU->MEM->DISK*->NETWORK->应用程序调优2.分析是否有瓶颈(依据当前应用需求)3.调优(把错误的调正确)性能优化就是找到系统处理中的瓶颈以及去除这些的过程。性能优化其实是对OS各子系统达到一种平衡的定义,这些子系统包括了..
分类:
系统相关 时间:
2015-08-10 02:13:17
阅读次数:
182
3.5 对象成员的效率 (Object Mem ber Efficiency)
下面某个测试,目的在测试聚合(aggregation).封装(encapsulation),以及继承(Inheritance)所引发的额外负荷的程度.所有测试都是以个别局部变量的加法,减法,赋值(assign)等操作的存取成本为依据.下面就是个别的局部变量:
float pA_x = 1.725, pA_y = ...
分类:
编程语言 时间:
2015-08-06 22:24:45
阅读次数:
160
首先大概的可以看出左边的mem_map数组中存放的是page结构体元素,中间的是实际的物理内存,右边的是虚拟的地址范围;
他们之间的关系大概是这样的,mem_map数组中的元素和物理内存页联系,page指针指向中间的物理内存中的某个物理页,这个关系是为了系统方便管理内存;
而物理内存页和右边的虚拟地址范围映射,这个是为了操作物理内存,一般右边的虚拟地址由cpu使用(软件上使用的也是虚拟地址,不过该地址最终还是CPU使用)。CPU和MMU之间使用的都是虚拟地址,出了MMU后...
分类:
系统相关 时间:
2015-08-06 00:41:47
阅读次数:
208