正点原子IMX6ULL阿尔法开发板点亮LED

2023-11-08 17:40

本文主要是介绍正点原子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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371440

相关文章

LED恒流调光电路

LED等在工作的时候发热较大,所以通常选用铝基板作为底板;常用白色油墨。 LED必须在恒流源电路下工作,下图为最简单的恒流源:B极电压3.3V不变左下侧蓝色的为稳压二极管,由于BE极可以看做二极管,压降为0.7V,所以R2间的压降为2.6V恒定,所以电流也就恒定: 电压的很小变化会造成电流的恒大变化,从而带来更大的发热和降低寿命: 常见的LED调光芯片: SM2082:

ESP32使用按键配网并通过LED指示网络状态

前言 上面我们已经可以通过 ESPTOUCH 和 Airkiss 给模块配网,并且存储在 nvs 中,重启后仍然可以联网,只是这样仍然不能满足我们实际的应用,这次我们增加按键作为输入,LED作为输出,实现长按按键配网,并可以通过LED指示网络状态。 添加自己的组件 为了让程序结构更加清晰,所以我们在smart_config例程的基础上做了修改,在main文件夹里新建了main.c 、smar

基于imx6ull开发板 移植opencv4.7.0

一、概述 本章节是针对opencv-4.7.0移植到Linux系统,运行在正点原子-I.MX6U ALPHA开发板 上,详细的移植流程如下。 二、环境要求 2.1 硬件环境 正点原子-I.MX6U ALPHA开发板虚拟机:VMware 2.2 软件环境 Ubuntu系统要求:20.04opencv版本: 4.7.0opencv贡献软件版本:4.x交叉工具链版本:gcc-linaro-6

Repair LED lights

Repair LED lights  修理LED灯,现在基本用灯带,就是小型LED灯串联一起的 1)拆旧灯条,这个旧的是用螺丝拧的产品 电闸关掉。 2)五金店买一个,这种是磁铁吸附的产品 现在好多都是铝线啊。。。 小部件,我没用上

stm32学习笔记---GPIO输出(代码部分)LED闪烁/流水灯/蜂鸣器

目录 面包板的使用方法 第一个演示代码:LED闪烁 最后一次快速新建工程演示 点击新建工程 选择芯片 在工程文件夹中创建Start、Library、User Start文件夹的必备文件复制操作 Library文件夹的必备文件复制操作 User文件夹的必备文件复制操作 在keil中创建Start、Library、User分组并添加文件 添加Start、Library、User文

八、(正点原子)Linux内核定时器实验

定时器是我们最常用到的功能,一般用来完成定时功能,本章我们就来学习一下 Linux 内核提供的定时器 API 函数,通过这些定时器 API 函数我们可以完成很多要求定时的应用。 Linux内核也提供了短延时函数,比如微秒、纳秒、毫秒延时函数,本章我们就来学习一下这些和时间有关的功能。 一、Linux时间管理和内核定时器介绍         1、内核时间管理         在

【驱动篇】龙芯LS2K0300之LED驱动

实验目的 点亮龙芯开发板上面的用户自定义LED灯,编写LED驱动以及测试用例验证实现效果,LED位于开发板左下方(靠近USB口)第二个 原理图 LED通过电阻上拉至电源P3V3,低电平时LED被点亮 设备树 打开arch/loongarch/boot/dts/loongson/loongson_2k0300_pai_99.dts,将72-150行的i2c1和i2c2两个节点注释掉

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发 专业版 插件版 手持弹幕小程序通常提供多种功能,以便用户在不同的场合如夜店、表白、接机等使用。以下是一些常见的功能列表: 文本输入: 输入要显示的文字内容,支持多行输入。可能有限制字数,确保屏幕滚动时的可读性。 滚动速度: 调整文字滚动的速度,从慢速到快速。 字体样式: 选择字体类型,如宋体、黑体等。改变字体大小,以

linux内核开发板启动流程

声明:本文章是整理网上的资料和自己的理解 很早买了tiny6410开发板,内核使用配置好的,在内核Linux 2.6源码中包含了S3C6410 的驱动,最近想在自己的板子上移植Linux内核(内核源码没有中相关的配置),一直找不到思路,不知道Linux内核如何启动去配置相关的驱动的,在阅读内核启动的流程过程中(重点关注针对不同板子的驱动的加载流程,参考网上文章和博客),发现Linux的的板级的驱

移植SQLite到ARM开发板

最近在搞移植数据库到开发板,上网一搜都是sqlite ,所以就用这个吧,记录一下,特别简单, 首先要确保开发环境是好的,交叉编译器,NFS文件系统挂载等, 下载sqlite源码, http://www.sqlite.org/quickstart.html 拷贝到UBUTUN系统里,解压 tar -xzvf sqlite-autoconf-3080403.tar.gz 进入目录 cd