易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

Linux设备驱动之I2C架构分析

一:前言
I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员
的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而
I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述.可自行下载spec阅读即可.
二:I2C架构概述
在linux中,I2C驱动架构如下所示:

上图所示,每一条I2C对应一个adapter.在kernel中,每一个adapter提供了一个描述的结构(struct
i2c_adapter),也定义了adapter支持的操作(struct i2c_adapter).再通过i2c
core层将i2c设备与i2c adapter关联起来.
这个图只是提供了一个大概的框架.在下面的代码分析中,从下至上的来分析这个框架图.以下的代码分析是基于linux 2.6.26.分析的代码基本位于: linux-2.6.26.3/drivers/i2c/位置.
三:adapter注册

kernel中提供了两个adapter注册接口,分别为i2c_add_adapter()和
i2c_add_numbered_adapter().由于在系统中可能存在多个adapter,因为将每一条I2C总线对应一个编号,下文中称为
I2C总线号.这个总线号的PCI中的总线号不同.它和硬件无关,只是软件上 ......

Linux设备驱动之I2C架构分析

一:前言
I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员
的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而
I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述.可自行下载spec阅读即可.
二:I2C架构概述
在linux中,I2C驱动架构如下所示:

上图所示,每一条I2C对应一个adapter.在kernel中,每一个adapter提供了一个描述的结构(struct
i2c_adapter),也定义了adapter支持的操作(struct i2c_adapter).再通过i2c
core层将i2c设备与i2c adapter关联起来.
这个图只是提供了一个大概的框架.在下面的代码分析中,从下至上的来分析这个框架图.以下的代码分析是基于linux 2.6.26.分析的代码基本位于: linux-2.6.26.3/drivers/i2c/位置.
三:adapter注册

kernel中提供了两个adapter注册接口,分别为i2c_add_adapter()和
i2c_add_numbered_adapter().由于在系统中可能存在多个adapter,因为将每一条I2C总线对应一个编号,下文中称为
I2C总线号.这个总线号的PCI中的总线号不同.它和硬件无关,只是软件上 ......

Windows下卸载Linux系统

   我的电脑安装了双系统,Windows和Linux,不过由于Linux在最近一段时间内不会使用,所以我打算删除Linux。
   删除Linux最需要注意的地方,就是MBR(Master Boot Record)。在删除Linux分区前,我们需要将启动Windows的引导信息写入MBR,否则,MBR中的Linux引导信息,当然就不能启动Windows系统了。
一:将Windows的引导信息写入MBR
   写入MBR的方法,有两种比较简单
   第1种方法:就是将Windows的安装盘放入计算机以后,重启计算机,进入Windows安装程序,随后,进入恢复控制台,输入命令fixmbr即可。
   第2种方法是为没有Windows安装盘的朋友准备的,就是使用MBRFix工具进行修复。
   MBRFix工具修复MBR很方便,先进入cmd命令窗口,然后进入mbrfix工具所在的目录(用cd命令),然后输入命令 MbrFix /drive 0 fixmbr ,再确认一下即可。重启以后你会发现,没有了Linux,直接可以进入Windows了。
二:删除Linux分区
   最后一件事情,就是删除Linux所在的分区,这个很简单,您可以使用patition的分区工具,将该分区格式化成fat32或ntfs格式,就可以在Windows下使用了。
 &nbs ......

linux 中文显示乱码解决办法


linux 中文显示乱码解决办法
vi /etc/sysconfig/i18n
将内容改为
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
这样中文在SSH,telnet终端就可以正常显示
......

oracle RAC 9.2.0.4 for linux x86升级到9.2.0.8

oracle RAC 9.2.0.4升级到9.2.0.8
   操作系统平台:Red Hat Enterprise Linux AS release 3
   准备工作:
            1. Check Tablespace Sizes and Set Parameter Values
            
            2. Check SYSTEM Tablespace Size ensure that there is at least 10 MB of free
               space allocated to the SYSTEM tablespace
            
            3. Check XDB Tablespace Size For Oracle RAC installations, ensure that there
               is at least 50 MB of free space allocated to the XDB tablespace
            
            4. Set the SHARED_POOL_SIZE and JAVA_POOL_SIZE Initializati ......

oracle RAC 9.2.0.4 for linux x86升级到9.2.0.8

oracle RAC 9.2.0.4升级到9.2.0.8
   操作系统平台:Red Hat Enterprise Linux AS release 3
   准备工作:
            1. Check Tablespace Sizes and Set Parameter Values
            
            2. Check SYSTEM Tablespace Size ensure that there is at least 10 MB of free
               space allocated to the SYSTEM tablespace
            
            3. Check XDB Tablespace Size For Oracle RAC installations, ensure that there
               is at least 50 MB of free space allocated to the XDB tablespace
            
            4. Set the SHARED_POOL_SIZE and JAVA_POOL_SIZE Initializati ......

Linux下设置端口权限的系统调用有两个:ioperm和iopl

Linux
下设置端口权限的系统调用有两个:
ioperm

iopl

 
一、
ioperm

iopl
介绍。
1.ioperm
功能描述:
为调用进程设置
I/O
端口访问权能。
ioperm
的使用需要具有超级用户的权限,只有低端的
[0-0x3ff] I/O
端口可被设置,要想指定更多端口的权能,可使用
iopl
函数。这一调用只可用于
i386
平台。

用法:
#include <unistd.h> /* for libc5 */
#include <sys/io.h> /* for glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
      
参数:
from
:起始端口地址。
num
:需要修改权能的端口数。
turn_on
:端口的新权能位。
1
为开启,
0
为关闭。
返回说明:

成功执行时,返回
0
。失败返回
-1

errno
被设为以下的某个值

EINVAL
:参数无效
EIO
:这一调用不被支持
EPERM
:调用进程权能不足。

2. iopl
功能描述:该调用用于修改当前进程的操作端口的权限。可以用于所有
65536
个端口的权限。因此,
ioperm
相当于该调用的子集。和
ioperm
一样,这一调用仅适用于
i386
平台。

用法:
#include &l ......

linux下system()详解 (转)

linux操作系统下system () 函数详解
  (执行shell 命令)
  相关函数
  fork,execve,waitpid,popen
  表头文件
  #include<stdlib.h>
  定义函数
  int system(const char * string);
  函数说明
  system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
  返回值
  =-1:出现错误
  =0:调用成功但是没有出现子进程
  >0:成功退出的子进程的id
  如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
  附加说明
  在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
  范例
  #i nclude<stdlib.h>
  main()
  {
  s ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [6539] [6540] [6541] [6542] 6543 [6544] [6545] [6546] [6547] [6548]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号