1037|2

7219

帖子

192

TA的资源

五彩晶圆(高级)

楼主
 

【正点原子阿尔法 IMX6ULL Linux开发板】第10篇 Linux C编程驱动LED(SYSFS) [复制链接]

一 SYSFS文件系统

sysfs向用户空间展示了驱动设备的层次结构。我们都知道设备和对应的驱动都是由内核管理的,这些对于用户空间是不可见的。现在通过sysfs,可以在用户空间直观的了解设备驱动的层次结构。

 

我们来看看sysfs的文件系统

block:块设备

bus:系统中的总线

class: 设备类型,比如输入设备

dev:系统中已注册的设备节点的视图,有两个子目录char和block。

devices:系统中所有设备拓扑结构视图

fireware:固件

fs:文件系统

kernel:内核配置选项和状态信息

module:模块

power:系统的电源管理数据

 

 

看下 实际测试的情况

 

 

 

 

重点就是上面一张图 led的几个文件

 

方括号([heartbeat] )括起来的表示当前 LED 对应的触发模式, none 表示无触发,常用的触发模式包括 none(无触发)、 mmc0(当对 mmc0 设备发起读写操作的时候 LED 会闪烁)、timer(LED 会有规律的一亮一灭,被定时LED 会闪烁)、timer(LED 会有规律的一亮一灭,被定时

 

二 编程测试

 

截取一段比较常见的吧

感觉是和linux的驱动开发是差不多的

主要还是一些文件的操作读写等等

 

    fd1 = open(LED_TRIGGER, O_RDWR);

    if (0 > fd1) {

        perror("open error");

        exit(-1);

    }



    fd2 = open(LED_BRIGHTNESS, O_RDWR);

    if (0 > fd2) {

        perror("open error");

        exit(-1);

    }



    /* 根据传参控制LED */

    if (!strcmp(argv[1], "on")) {

        write(fd1, "none", 4);   //先将触发模式设置为none

        write(fd2, "1", 1);        //点亮LED

    }

 

编译注意事项:

source 工具链配置文件

是配置环境变量的意思吗?

source /opt/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

 

配置好了之后再编译生成可执行文件

 

 

三 结果显示

 

可执行文件改变权限

然后再执行

./led 需要参数

./led on 灯亮

./led off 灯灭

 

 

可以看到随着命令LED亮和灭

最新回复

sys比以前ioctl好用多的。   详情 回复 发表于 2023-6-22 19:47
点赞 关注

回复
举报

6815

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

跟着楼主学习 Linux C编程驱动LED(SYSFS)

 
 

回复

7640

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

sys比以前ioctl好用多的。

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表