易截截图软件、单文件、免安装、纯绿色、仅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 kernel Development second Edition

1. Technically speaking, and in this book, the operating
system
is considered the parts of the system responsible for basic use
and administration. This includes the kernel and device drivers, boot loader,
command shell or other user interface, and basic file and system utilities ......

Linux程序设计——用getopt处理命令行参数

Linux下很多程序甚至那些具有图形用户界面(graphical user interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更有用。getopt()是一个专门设计来减轻命令行处理负担的库函数。
1、命令行参数
命令行程序设计 ......

Linux使用

在linux中userid和usergroup分别存于 /etc/group, /etc/shadow, /etc/passwd
在group 中可以修改sudo group和admin权限
远程登陆设置在 /etc/ssh/ssh-config 和 /etc/ssh/sshd-config里,重设后 /etc/init.d/ssh restart
在webmin中更改了firewall后必须重启网络 : /etc/init.d/networking restart
In Ubuntu, remote d ......

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

错误印象和认识罗列如下,一一解释:
1。linux下的软件太少
回答:linux 下的软件一点也不少。windows还在娘肚子里的时候,Unix已经如日中天了。要知道微软公司开发的第一个操作系统是什么吗?是一个叫做Xenix的东西,是Unix的一个分支,后来才去搞DOS的。有人又问了,Unix不是Linux阿,要知道,Linux完全重新的实现了Uni ......

linux中的块设备和字符设备

      系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备一般的访问方式。
& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号