当前位置: 首页 > news >正文

网站建设教程搭建浊贝湖南岚鸿给力2022最新免费的推广引流软件

网站建设教程搭建浊贝湖南岚鸿给力,2022最新免费的推广引流软件,国外免费b2b网站大全18,征求网站建设一 应用层操作硬件的两种方法 应用层想要对底层硬件进行操控,通常可以通过两种方式: /dev/目录下的设备文件(设备节点);/sys/目录下设备的属性文件。 具体使用哪种方式需要根据不同功能类型设备进行选择,通…

一 应用层操作硬件的两种方法

应用层想要对底层硬件进行操控,通常可以通过两种方式:

  1. /dev/目录下的设备文件(设备节点);
  2. /sys/目录下设备的属性文件。

具体使用哪种方式需要根据不同功能类型设备进行选择,通常情况下,一般简单地设备会使用sysfs方式操控,其设备驱动在实现时会将设备的一些属性导出到用户空间sysfs文件系统,以属性文件的形式为用户空间提供对这些数据、属性的访问支持,譬如LED、GPIO等。但对于一些较复杂的设备通常会使用设备节点的方式,譬如LCD等、触摸屏、摄像头等。

 1.1 什么是sysfs文件系统

sysfs是一个基于内存的文件系统,同devfs、proc文件系统一样,称为虚拟文件系统;它的作用是将内核信息以文件的方式提供给应用层使用,sysfs文件系统的主要功能便是对系统设备进行管理,它可以产生一个包含所有系统硬件层次的视图。、

 1.2 sysfs与/sys的关系

sysfs文件系统挂载在/sys目录下,启动ALPHA/Mini I.MX6U开发板,进入Linux系统(开发板出厂系统)之后,我们进入到/sys目录下查看,如下所示:

/sys下的子目录 说明 
/sys/devices 这是系统中所有设备存放的目录,也就是系统中的所有设
备在sysfs中的呈现、表达,也是sysfs管理设备的最重要
的目录结构。 
/sys/block 

块设备的存放目录,这是一个过时的接口,按照sysfs的设
计理念,系统所有的设备都存放在/sys/devices目录下,所

以/sys/block目录下的文件通常是链接到/sys/devices目录下的文件。 

/sys/bus 这是系统中的所有设备按照总线类型分类放置的目录结
构,/sys/devices目录下每一种设备都是挂在某种总线下
的,譬如i2c设备挂在I2C总线下。同样,/sys/bus目录下
的文件通常也是链接到了/sys/devices目录。 
/sys/class这是系统中的所有设备按照其功能分类放置的目录结构,
同样该目录下的文件也是链接到了/sys/devices目录。按照
设备的功能划分组织在/sys/class目录下,譬如/sys/class/leds
目录中存放了所有的LED设备,/sys/class/input目录中存放
/sys/dev 这是按照设备号的方式放置的目录结构,同样该目录下的
文件也是链接到了/sys/devices目录。该目录下有很多以主
设备号:次设备号(major:minor)命名的文件,这些文件都
是链接文件,链接到/sys/devices目录下对应的设备。 
/sys/firmware 描述了内核中的固件
/sys/fs 用于描述系统中所有文件系统,包括文件系统本身和按文
件系统分类存放的已挂载点。
/sys/kernel 这里是内核中所有可调参数的位置
/sys/module 这里有系统中所有模块的信息。 
/sys/power 这里是系统中电源选项,有一些属性可以用于控制整个系
统的电源状态。 

系统中所有的设备(对象)都会在/sys/devices体现出来,是sysfs文件系统中最重要的目录结构;而/sys/bus、/sys/class、/sys/dev分别将设备按照挂载的总线类型、功能分类以及设备号的形式将设备组织存放在这些目录中,这些目录下的文件都是链接到了/sys/devices中。

 1.3 LED的控制方式

正点原子 I.MX6U开发板底板上有一颗可被用户控制的LED灯,如下所示:

此LED设备使用的是Linux内核标准LED驱动框架注册而成,在/dev目录下并没有其对应的设备节点,其实现使用sysfs方式控制。进入到/sys/class/leds目录下,如下所示:  

 

这里我们主要关注便是brightness、max_brightness以及trigger三个文件,这三个文件都是LED设备的属性文件:  

  1. brightness:控制LED的亮灭
  2. max_brightness:该属性文件只能被读取,不能写,用于获取LED设备的最大亮度等级。
  3. trigger:触发模式,该属性文件可读可写,读表示获取LED当前的触发模式,写表示设置LED的触发模式。不同的触发模式其触发条件不同,LED设备会根据不同的触发条件自动控制其亮、灭状态,通过cat命令查看该属性文件,可获取LED支持的所有触发模式以及LED当前被设置的触发模式:
  4. 方括号([heartbeat])括起来的表示当前LED对应的触发模式,none表示无触发,常用的触发模式包括none(无触发)、mmc0(当对mmc0设备发起读写操作的时候LED会闪烁)、timer(LED会有规律的一亮一灭,被定时器控制住)、heartbeat(心跳呼吸模式,LED模仿人的心跳呼吸那样亮灭变化)。

 大致控制方式:将设备属性文件进行写入操作

echo timer > trigger //将LED触发模式设置为timer

echo none > trigger

//将LED触发模式设置为none

echo 1 > brightness //点亮LED echo 0 > brightness//熄灭LED

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>#define  LED_TRIGGER "/sys/class/leds/sys-led/trigger"
#define  LED_ON_OFF "/sys/class/leds/sys-led/brightness"
#define  HELP()  fprintf(stderr, "usage:\n   %s <on|off>\n %s <trigger> <type>\n", argv[0], argv[0])
#define  NONE 0
#define MMC0 1
#define TIMER 2
#define HEARTBEAT 3int msg_handle(char *buf)
{if(!strcmp(buf,"none")){return NONE;}if(!strcmp(buf,"mmc0")){return MMC0;}if(!strcmp(buf,"timer")){return TIMER;}if(!strcmp(buf,"heartbeat")){return HEARTBEAT;} return -1;
}int main(int argc ,char *argv[])
{int fd1 = 0;int fd2 = 0;int ret  = 0;int write_ret = 0;if(argc < 2){HELP();exit(-1);}fd1 = open(LED_TRIGGER,O_RDWR);   //fd1设备文件操作为控制触发方式if(fd1<0){perror("触发模式:");}fd2 =  open(LED_ON_OFF,O_RDWR);  //fd2设备文件用于控制开关if(fd2<0){perror("开关状态:");}if(!strcmp(argv[1],"on")){write(fd1,"none",strlen("none"));write(fd2,"1",1);}else if(!strcmp(argv[1],"off")){write(fd1,"none",strlen("none"));write(fd2,"0",1);}else if(!strcmp(argv[1],"trigger")){if(argc != 3){HELP();exit(-1);}ret = msg_handle(argv[2]);switch (ret){case NONE:break;case MMC0:break;case TIMER:write_ret =  write(fd1,argv[2],strlen(argv[2]));if(write_ret < 0){perror("");}break;case HEARTBEAT:write_ret =  write(fd1,argv[2],strlen(argv[2]));if(write_ret < 0){perror("");}break;default:HELP();break;}}close(fd1);close(fd2);
}

程序中定义了两个宏,LED_TRIGGER和LED_BRIGHTNESS,分别对应/sys/class/leds/sys-led/trigger和/sys/class/leds/sys-led/brightness属性文件

http://www.dinnco.com/news/84833.html

相关文章:

  • 做绿植o2o网站怎么样关键词优化有哪些作用
  • 网站备案可以国际域名沧州seo推广
  • 建设网站收费标准厦门人才网个人版
  • 书籍管理网站建设需求文档今日新闻头条10条
  • 苏州做网站公司找苏州聚尚网络网站安全
  • 就有公司域名怎么建设网站网络推广推广培训
  • 做一手房产中介用什么网站好在线培训app
  • 在家做网站或ps挣钱接活百度竞价推广价格
  • 成都网站优化公司下载百度app下载
  • 如何在国外网站做翻译兼职万网注册域名查询官方网站
  • 网站怎么做详情页搜索引擎优化百度
  • 电商网站系统建设考试免费百度下载
  • 猎头招聘网官网seo网络排名优化哪家好
  • 专门做中式的设计网站免费的网站软件下载
  • 牡丹江市建设银行门户网站免费找客源软件
  • 延吉市住房城乡建设局官方网站推广普通话手抄报内容大全
  • wordpress 模板 制作网站优化 福州
  • 做的网站上更改内容改怎么最新社会舆情信息
  • 杭州网站怎么做seoseo整站优化解决方案
  • 个人网站空间怎么做百度极速版下载安装
  • 网站建设排名优化技巧苹果cms播放器
  • 做导购类网站沧州网站优化
  • 做网站咋做网站设计制作
  • 网站开发硬件成本微信营销的方法和技巧
  • 自己搭建网站的步骤友链对网站seo有帮助吗
  • 做网站百度一下互联网行业都有哪些工作
  • 最早做美食团购的网站制作网站首页
  • 宝鸡市做网站的公司有哪些百度快速收录办法
  • 网站主机教程seo是什么单位
  • 福州专业网站设计企业网站建设原则是