加载中…
个人资料
彩色千纸鹤
彩色千纸鹤
  • 博客等级:
  • 博客积分:0
  • 博客访问:58,239
  • 关注人气:4
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
评论
加载中…
留言
加载中…
好友
加载中…
访客
加载中…
搜博主文章
博文
标签:

杂谈

分类: 嵌入式Linux

Linux 编程经典书籍推荐


成为一名精通  Linux   程 序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows 程序员的 1.8 倍、Java 程序员的 2.6 倍, Linux 程序员年终奖金平均为 Windows 程序员的 2.9 倍。同时数据显示,随着工作经验的增长, Linux 程序员与 Windows 程序员的收

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

linux input subsystem虚拟键盘和鼠标

  1 event device

  in /dev/input/event?

  cat data from /dev/input/event? the data format is :

  struct input_event {

  struct timeval time;

  __u16 type;

  __u16 code;

  __s32 value;

  };

  e.g :

  xx xx xx xx yy yy yy yy tt tt cc cc vv vv vv vv

  xx is usec

  yy is sec

  tt is type

  cc is key code

  vv is value, might be it means keyup or keydown

  for mouse event, you can get the same message format

  xx, yy is the same as keyboard

  tt is EV_REL, it means the value feild is relative distance;

  cc is REL_X or REL_Y

  vv is the value of relative distance

 

经过与实际的对比,似乎上面与上面的内容有一定的出入!!!

  2 register input_dev

  

  static int vkm_vmouse_register(void)

  {

  struc

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2012-01-11 11:31)

[企业级测试工具].WinRunner8.2.rar

http://u.115.com/file/f89f270007

 

WR破解.rar

http://u.115.com/file/f890f93d86

破解点击exe,破解完毕~

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
三个shell自动化脚本

范例一:定期清理暂存文件
#!/bin/sh
# Shell Script filename : cleantmp.sh
/usr/sbin/tmpwatch 240 /tmp /var/tmp /usr/tmp
使用范例:# sh cleantmp.sh
作用:使用tmpwatch检查/tmp、/var/tmp、/usr/tmp的所有目录,假如这些目录下的某个文件超过240小时(10天),都没有任何人使用它就删除这个文件。

范例二:检查硬盘空间使用率
#!/bin/sh
# Shell Script filename : checkdisk.sh
log=/var/log
du -sh $1 > $log/du.log
mail -s 'Disk Usage Ratio' root < $log/du.log
使用范例:# sh checkdisk.sh /home
作用:通过du检查指定目录的磁盘空间使用率,并将结果记录在/var/log/du.log,然后将结果寄信给root。

范例三:搜寻所有记录文件的关键字符串
#!/bin/sh
# Shell Script filename : search.sh
find $1 -type f | xargs grep $2
使用范例:# sh search.sh /var/log named
作用:寻找一个目录下的所有文件(包括子目录)内的关键
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

linux应用层获取鼠标坐标  

补充:在这个函数中要打开一个鼠标设备,但是在嵌入式的文件系统中没有这个设备节点,
鼠标设备的主设备号和次设备号有是如何确定的呢?
在  linux 系统中,鼠标和键盘的设备号都是固定的,可以在 PC 上查看,再在嵌入式的文件系统中自己建立。

qu@ubuntu:/tmp$ ls -l /dev/input/
total 0
drwxr-xr-x 2 root root     120 2008-11-06 08:49 by-path
crw-rw---- 1 root root 13,  64 2008-11-06 08:49 event0
crw-rw---- 1 root root 13,  65 2008-11-06 08:49 event1
crw-rw---- 1 root root 13,  66 2008-11-06 08:49 event2
crw-rw---- 1 root root 13,  67 2008-11-06 08:49 event3
crw-rw---- 1 root root 13,  68 2008-11-06 08:48 event4
crw-rw---- 1 root root 13,  69 2008-11-06 08:48 event5
crw-rw---- 1 root root 13,  70 2008-11-06 08:48 event6
crw-rw---- 1 root root 13,&nb
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

Unix/Linux的内存映射  

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式;两个不同的进程A和B共享内存的意思就是:同一块物理内存即被映射到进程A的地址空间中又内映射到进程B的地址空间中.进程A可以实时地看到进程B对共享内存中数据的更新,反之,进程B也可以实时地看到进程A对共享内存的更新;由于多个进程同时访问同一块共享内存区域,那就需要某种同步机制来保证多个不同进程对共享内存的访问,互斥锁、信号量/信号灯、信号量集都可以;

采用共享内存来实现进程间通信的一个很明显的好处就是:进程可以直接读写内存,基本上不需要任何额外的数据拷贝.而对于像管道、消息队列之类的IPC方式,则需要在内核空间和用户空间之间进行四次数据拷贝,而共享内存则只需要两次拷贝:一次是从输入文件拷贝到共享内存区,另外一次是从共享内存区拷贝到输出文件中.实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域,而

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改, 先来看一下mmap的函数声明:
  • 头文件:
    • <unistd.h>
    • <sys/mman.h>
  • 原型: void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offsize);
  • 返回值: 成功则返回映射区起始地址, 失败则返回MAP_FAILED(-1).
  • 参数:
    • addr: 指定映射的起始地址, 通常设为NULL, 由系统指定.
    • length: 将文件的多大长度映射到内存.
    • prot: 映射区的保护方式, 可以是:
      • PROT_EXEC: 映射区可被执行.
      • PROT_READ: 映射区可被读取.
      • PROT_WRITE: 映射区可被写入.
      • PROT_NONE: 映射区不能存取.
    • flags: 映射区的特性, 可以是:
      • MAP_SHARED: 对映射区域的写入数据会复制回文件, 且允许其他映射该文件的进程共享.
      • MAP_PRIVATE: 对映射区域的写入操作会产生一个映射的复制(copy-on-write)
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

 

http://blog.csdn.net/guoshaobei/archive/2010/08/06/5792635.aspx

include/linux/input.h

 
#define EVIOCGVERSION        _IOR('E', 0x01, int)            
#define EVIOCGID        _IOR('E', 0x02, struct input_id)    
#define EVIOCGREP        _IOR('E', 0x03, int[2])           &nb
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

【问题】

在完成了Linux kernel中的对应的一个模拟鼠标的输入设备(input device)easypoint驱动后,验证了该驱动可以正常工作了,输入

cat /dev/input/event1 | hexdump

然后移动该鼠标设备,会打印类似如下信息:

0000000 0f35 0807 3114 0004 0002 0000 ffff ffff
0000010 0f35 0807 3155 0004 0002 0001 0001 0000
0000020 0f35 0807 3165 0004 0000 0000 0000 0000
0000030 0f35 0807 6faf 0005 0002 0000 0001 0000
0000040 0f35 0807 6ff3 0005 0002 0001 ffff ffff
0000050 0f35 0807 7002 0005 0000 0000 0000 0000
0000060 0f35 0807 c03b 0005 0002 0000 0001 0000
0000070 0f35 0807 c07d 0005 0002 0001 ffff ffff
说明鼠标工作正常了。并且保证了,在编译qt的时候,是加了对应的鼠标支持的:

在buildroot的menuconfig中,已经选上了qt的鼠标支持:

Package Selection for the target --->

Graphic libraries and applications (graphic/text) --->

[*] Qt --->

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

2011最全马云经典语录大全

 

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有