在linux嵌入式系统中,经常需要一些底层操作,Linux就如window一样,也对底层BSP进行了封装,对device driver进行了封装,使用的话基本就是文件读写的方式来读取,所以也大大简化了上层应用对底层硬件的访问难度。
比如要对GPIO口进行访问,在Qt中有几种方法:
使用命令行方式访问:
#include <sys/un.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <linux/types.h>
#include <linux/netlink.h>void visitGPIO(string sysCMD)
{FILE * ptr;if((ptr=popen(sysCMD, "r"))!=NULL){rewind(ptr);fread(bufData, 256,1, ptr);// XXX,对数据进行处理pclose(ptr);
}
直接执行方式访问:
用户空间可通过sysfs访问控制GPIO:
# echo 11 > /sys/class/gpio/export 执行此命令会在gpio/下生成gpio11目录
# echo out > gpio11/direction 设置GPIO11方向为输出
# echo 1 > gpio11/value 设置GPIO11为高电平
# echo 0 > gpio11/value 设置GPIO11为低电平
# echo 11 &