nxp开发板应用—智能插排2.初步解析example之gpi

cbd7788 cbd7788     2022-12-30     430

关键词:

【前言】
首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提供了一个非常好的入门和学习嵌入式的机会,同时在社区及技术群内也得到了很大的帮助和鼓励,这也是我不断前行和进步的动力,在这里一并致谢了。下面我附上本次学习心得及过程。
米尔MYS-6ULX单板机介绍:
MYS-6ULX是一款以NXP i.MX6UL/i.MX6ULL处理器,Cortex-A7内核为核心的嵌入式单板机,主频为528MHz。配备了256MB高速DDR3、256M NAND Flash,集成了以太网、WIFI、LCD接口、USB OTG、USB Host、TF Card、用户按键、用户LED、IO扩展接口等功能。
详细介绍:[http://www.myir-tech.com/product/mys_6ulx.htm]
收到米尔的板子,先上图:
技术分享图片
【概述】
计划通过本次项目实现一些家庭电器设备控制,进现实现远程监控;
1,实现计时控制插排包括,计时,延时,定时,倒计时,周期开通和关闭功能;
2,实现PWM调控灯光或者风扇调速;
3,实现红外遥控控制空调。

【初步解析example之GPIO】

我做的项目是直接通过开发板的gpio控制插排,从而控制用电设备,有两种状态,一个是开关状态,另外一个是pwm控制灯光和风扇转速等, 网上查阅了很多资料,终于明白了嵌入式linux的初始化开发板的资源的方式,通过Device Tree来驱动和加载设备的,相当于我们mcu设备初始化的时钟,io,uart等。下面我们通过简单的几步来理解是如何实现的

我做的项目是直接通过开发板的gpio控制插排,从而控制用电设备,有两种状态,一个是开关状态,另外一个是pwm控制灯光和风扇转速等, 网上查阅了很多资料,终于明白了嵌入式linux的初始化开发板的资源的方式,通过Device Tree来驱动和加载设备的,相当于我们mcu设备初始化的时钟,io,uart等。下面我们通过简单的几步来理解是如何实现的

1. 开始之前,先打开一个上传到开发板的可执行命令 gpio_led ,如下图所示

技术分享图片

我们看到带参数的,再看看源代码是怎么处理参数的
技术分享图片

 

到这里我们大概明白了,就是通过参数来控制gpio的,那么我们是不是随标敲一个参数就能控制任意gpio了?显然是不可能的(也有凑巧的概率)
那么是怎么实现这个参数的呢?简单说就是这些cpu,gpio,uart等资源都放在了dts文件里,最后编译成dtb,由uboot引导程序初始化并以参数方式提交给kernel,这就是为何通过uart(usb-ttl)可以看到系统启动加载的一些信息。

2、系统通过dts文件来维护device tree的,我们通过米尔提供的开发手册找到该文件,如下图所示

技术分享图片

我们只需找到相应的dts文件,打开看到

技术分享图片

include 文件指向另外一个dts文件,找到该文件并打开

技术分享图片

阅览打开的文件发现了,gpio_leds,gpio_key和本次相关的资源,其他资源略。
下图的节点及定义,简单的说一下结构
a) leds表示节点名称
b) compatible属性用于of_find_node_compatible函数获取设备节点用的,这个函数的通过”gpio-leds“字符串去遍历device tree,查找匹配的设备节点
c) pinctrl-0 = <&pinctrl_leds>主要用于说明设备硬件资源在哪里获取,比如这里就是到iomuxc里面去获取IO资源
还有gpios这个很容易看懂了。
技术分享图片

iomuxc设备节点里面定义了CPU所有的IO资源,包括每个IO口的初始化状态都定义好了,比如leds,key
技术分享图片

5经过3,4两步创建所需功能的节点,然后交叉编译dts=》dtb,下载到开发板,这些步骤参考开发手册。

经过以上的操作,基本完成了设备的驱动的开发。下一步开始本次项目,智能插排,按照上述办法先完成驱动。然后是控制命令,最后是gui(这部分对我来说比较难,我不会qt,可能会使用webserver,基于websocket控制,前一阵子参加双核大赛研究了一阵子websocket)。
技术分享图片

后续继续更新博客,敬请关注,有同道者欢迎提出建议。
声明:本文首发在与非网社区 NXP论坛?竞技场?恩智浦/米尔i.MX6ULL竞赛专区.?作者论坛ID:leo121_3006061

























nxp恩智浦vega织女星开发板免费申请!(代码片段)

前言大概两周前申请了一块NXP恩智浦的开发板,今天终于收到了!在这里推荐给大家,官方网站刚上线一个月左右,目前申请的人还不算多,感兴趣的朋友可以申请一个,体验一下这个四核性能怪兽。大厂就是大气,包装盒,开... 查看详情

uboot|移植nxp官方uboot到imx6ull开发板(2016.03)(代码片段)

一、NXP官方uboot1.下载NXP官方uboot仓库地址为:https://github.com/Freescale/u-boot-fslc。这里为了保持版本统一,使用正点原子资料包中提供的原厂linux:uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2(版本是2016.03)。2.编译设置 查看详情

linux|移植nxp官方linux内核到imx6ull开发板(4.1.15)(代码片段)

一、NXP官方linux内核1.下载NXP官方linux仓库地址为:https://github.com/Freescale/linux-fslc。这里为了保持版本统一,使用正点原子资料包中提供的原厂linux:linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2(版本是4.1.15)。2.编译安装 查看详情

迅为4412开发板项目实战zigbee智能家居门禁系统智能网关

...门禁系统、WEB服务及远程控制、智能网关、手机远程控制开发板、图像识别项目、机车导航项目、Zigbee智能家居3.Android应用开发环境更新为Studio,并和eclipse同时提供,iTOP-4412开发板得到开源软件Linux的官方支持,这将 查看详情

嵌入式linux应用初步移植mqtt到ubuntu和linux开发板(代码片段)

1.概述​本篇主要是记录将MQTT移植安装到百问网STM32MP157开发板上,并且是跑一下MQTT的一个例程来验证,要完成本次移植安装,必须要保证电脑和开发板都能上网。。2.软件平台​本次使用的是Ubuntu18.04,是由百问... 查看详情

uboot|移植nxp官方uboot到imx6ull开发板(2016.03)(代码片段)

...单板:NXP官方EVK支持nand和emmc两种,因为我手头的开发板是emmc的,所以这里也选择emmc版本的EVK。配置单板:makemx6ull_14x14_evk_emmc_defconfig配置好之后编译:make编译成功之后可以看到三个uboot的文件,作用如下... 查看详情

超高性价比!基于imx8mmini的核心板及开发板

...领先,供货周期长的嵌入式板卡已经成为这两类设备硬件开发的普遍需求。为响应行业应用和满足客户需求,米尔推出了基于NXP公司i.MX8MMini系列芯片的MYC-C8MMX系列核心板及开发板,现已隆重上市发售。MYD-C8MMX开发板提供LVDS显示... 查看详情

esp32系列音频开发板方案,智能音箱无线wifi技术升级应用

...决方案,广泛适用于各类物联网应用。ESP32音频系列开发板基于ESP32、ESP32-S2和ESP32-S3系列芯片设计开发,专为音频市场打造,适用于开发智能音箱、智能语音机器人、语音故事机、以及智能家居、智能办公等场景的声... 查看详情

linux|移植nxp官方linux内核到imx6ull开发板(4.1.15)(代码片段)

...像:在dts目录下是编译出的设备树文件:3.下载到开发板将内核镜 查看详情

七大排序算法(插排,希尔,选择排序,堆排,冒泡,快排,归并)--图文详解(代码片段)

目录引言一、直接插入排序概念图文解析1、起始状态 2、循环时3、最后细节代码实现代码复杂度稳定性二、希尔排序概念图文解析1、算法实现2、设置增量 3、进行交换4、缩小增量代码实现代码时间复杂度空间复杂度稳定性三... 查看详情

正点原子i.mx6u-mini移植篇kernel移植过程详解(代码片段)

...NXP官方提供的Linux源码,将其移植到正点原子I.MX6U-MINI开发板上。NXP官方原版Liux源码路径为:1、例程源码->4、NXP官方原版Uboot和Linux->linux-imx-rel_imx4.1.15_2.1.0_ga.tar.bz2。在ubunut中的/home/zhiguoxin/linux/IMX6ULL/目录下创建一个n... 查看详情

使用lpcxpresso开发板调试外部的电路板

MCUXpressoIDE开发环境有一个主要的功能:支持LPC-Link2仿真调试器。通过这种方式,对于基于ARM的电路板,我可以使用这个功能强大的仿真调试器来调试。在NXP的众多LPCXpresso开发板上都有该LPC-Link2电路。那么为什么不用它来调试自... 查看详情

飞凌i.mx8mp板卡概览

核心板:FETMX8MP-C开发板:OKMX8MP-C强大的i.MX8MPlusi.MX8MPlus是NXP推出的一款面向于边缘智能和边缘计算的异构应用处理器,除了高性能的CPU外,还具备强大的GPU、NPU和ISP,来用于高算力及人工智能应用。此款CPU是NX... 查看详情

nxp官方mfgtools工具使用

...Windows系统上使用,通过USBOTG接口完成系统烧写,一般在开发板进行量产的时候进行使用,能提高系统的烧写效率,当然,肯定也能在系统调试时使用,对于该软件的获取,直接去NXP官方网站上即可获取。 2、MfgTools基本原理... 查看详情

i.mx6ull开发板无线网络测试(代码片段)

FETMX6ULL-C核心板基于NXP i.MX6ULL处理器开发设计,采用低功耗的ARM Cortex-A7架构,运行速度高达800MHz。原生支持8路UART、2路Ethernet、2路CAN总线、2路USB、LCD等常用接口。并采用超小尺寸设计,核心板尺寸仅40*29mm,适应... 查看详情

yeelink初步体验

...读目录(Content)环境概述正文回到顶部(gototop)环境Qemu:2.8.0开发板:vexpress-ca9回到顶部(gototop)概述   前面的博文已经使我们的虚拟开发板具备了访问外网的目的,离物联网越来越近了。要玩物联网,Yeelink不得不说,它提... 查看详情

rtlinux尺寸

...52linux手册,i.MXRT1052核心板仅68元-飞凌嵌入式最新发布跨界开发平台转载2021-05-1403:40:13Emmamkq0.~码龄6年关注原标题:i.MXRT1052核心板仅68元-飞凌嵌入式最新发布跨界开发平台2018年8月23日飞凌嵌入式最新发布基于NXPi.MXRT1052处理器的核... 查看详情

米尔电子myc-y6ulx-v2核心板如何应用到机械智能控制器中

...;同时,缺乏对周边设备的支持,接口功能较少,可拓展应用的功能有限 查看详情