本文主要是介绍正点原子IMX6ULL阿尔法开发板点亮LED,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、准备工作
二、编写程序,使得LED能让我们控制
三、开发板上运行可执行程序
四、作者自述
一、准备工作
1.开发板为出厂时的镜像时不需要进行修改
2.开发板不为出厂时的镜像时需要进行修改,改回原来的系统镜像。
(1)官网下载LINUX阿尔法A盘资料
(2)找到开发工具
(2) 进入到【正点原子】阿尔法Linux开发板(A盘)-基础资料(1)\05、开发工具\04、正点原子MFG_TOOL出厂固件烧录工具\mfgtool目录下双击运行Mfgtool2-eMMC-ddr512-eMMC.vbs烧写原来的系统镜像:如下所示
tips:根据自己开发板是ddr大小和烧写的去向做选择,我这里使用的时emmc版本,ddr为512,所以我选择上述工具。
(3)数据线连接OTG接口,拨码开关拨到USB启动,出现如下所示方为正常,即可点击下载
tips:镜像烧录过程中会出现短暂识别不到USB,这为正常现象,静静等待烧录完成即可。
(4)镜像烧写完成标志,如下所示:
(5)将拨码开关重新拨到emmc启动,重启开发板即可,出现以下信息为进入系统成功。
二、编写程序,使得LED能让我们控制
1.程序代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>//触发方式
#define LED_TRIGGER "/sys/class/leds/sys-led/trigger"
//亮度等级
#define LED_BRIGHTNESS "/sys/class/leds/sys-led/brightness"
#define USAGE() fprintf(stderr,"usage:\n"" %s<on|off>\n"" %s<trigger><type>\n",\argv[0],argv[0])int main(int argc,char* argv[])
{int fd1,fd2,ret;//检验传参if(argc < 2){USAGE();exit(-1);}//打开文件fd1 = open(LED_TRIGGER,O_RDWR);if(fd1 == -1){perror("open error1");exit(-1);}fd2 = open(LED_BRIGHTNESS,O_RDWR);if(fd2 == -1){perror("open error2");ret = -1;goto out1;}//根据传参控制LEDif(strcmp(argv[1],"on") == 0) //使用字符串比较函数,相等返回0{//修改触发方式,无触发nonewrite(fd1,"none",4);//修改亮度等级为1write(fd2,"1",1);}else if(strcmp(argv[1],"off") == 0){//修改触发方式,无触发nonewrite(fd1,"none",4);//修改亮度等级为0write(fd2,"0",1);}else if(strcmp(argv[1],"trigger") == 0){//检验传参if(argc != 3){USAGE();ret = -1;goto out2;}//修改触发方式if(write(fd1,argv[2],strlen(argv[2])) < 0){perror("write error");ret = -1;goto out2;}}else{USAGE();}out2:close(fd2);
out1:close(fd1);exit(-1);
}
2.编译可执行文件
因为我是在X86架构CPU上写的LED程序,但是我们要在ARM架构上运行这个可执行文件,GCC编译出来的可执行文件为x86类型,所以我们得使用交叉编译工具在X86架构上编译程ARM架构的可执行文件。交叉编译工具可以参考《正点原子驱动开发指南》pdf的163页,详细的去讲述了如何去安装这个交叉编译工具。
3.生成可执行文件如下所示:
三、开发板上运行可执行程序
1.将可执行程序放到开发板上
(1)本实验这里使用的是nfs和tftp进行网络下载。将可执行程序拷贝到文件系统目录下即可。
(2)查看开发板上有无这个文件,如下所示:
(3)点亮LED灯
tips:亮红色的为可程序控制的LED灯
2.其它方法
将可执行文件放到【正点原子】阿尔法Linux开发板(A盘)-基础资料(1)\05、开发工具\04、正点原子MFG_TOOL出厂固件烧录工具\mfgtool\Profiles\Linux\OS Firmware\files\filesystem目录下的rootfs.tar.bz2压缩包里。然后回到文章开头重新对它进行烧录即可。
四、作者自述
文章只是记录一下生活,文章有错的地方欢迎指出。
这篇关于正点原子IMX6ULL阿尔法开发板点亮LED的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!