易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 用户层如何调用接口设置寄存器

下面的代码分析是根据linux-2.6.17.14_stm22版本
#define STSYS_WriteRegDev32LE(Address_p, value)          writel((u32)value, (void*)Address_p)
在include/asm-sh/io.h
#define writel(v,a) ({__raw_writel((v),(a));mb();})
#define __raw_write(v,a)  __writel((v),(void __iomem *)(a))
#define __writel(v,a) sh_mv.mv_writel(v,a)
在arch/sh/kernel/setup.c中把sh_mv.mv_writel->generic_write1
在arch/sh/kernel/io_generic.c中
void generic_writel(U32 b, void __iomem *addr)
{
         ctrl_outl(b,(unsigned long __force)addr);
}
在include/asm-sh/io.h
static inline void ctrl_outl(unsigned inst b,unsigned long addr)
{
      *(volatile unsigned long *)addr = b;
}
存在一个疑问:
最后是从用户空间直接设置寄存器,但能这样直接赋值吗? 不通过MM吗?


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux修改主机名的方法

linux修改主机名的方法
用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值。
#hostname   //查看机器名
#hostname -i  //查看本机器名对应的ip地址
另外一种方法就是之久修改配置文件
修改/etc/sysconfig/network   修改这个文件,系统才有效
    /etc ......

linux进程查看中STAT的含义

根据MAN帮助翻译的,不知道准不准确:
       D    不可中断的休眠进程(一般为 IO相关的)
       R    正在运行的或将运行的(在运行队列中)
       S    忆中断的休眠进 ......

原创:纠正国人对Linux的误解和错误认识

错误印象和认识罗列如下,一一解释:
1。linux下的软件太少
回答:linux 下的软件一点也不少。windows还在娘肚子里的时候,Unix已经如日中天了。要知道微软公司开发的第一个操作系统是什么吗?是一个叫做Xenix的东西,是Unix的一个分支,后来才去搞DOS的。有人又问了,Unix不是Linux阿,要知道,Linux完全重新的实现了Uni ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号