联系我们合金采样电阻贴片采样电阻保护元件FAE

品质诚信服务

当前位置:首页 >> 产品和行业资讯 >> rt-smart中imx6ull的用户模式照明

rt-smart中imx6ull的用户模式照明

rt-thread的rt-smart已发布了一段时间。

实际上,我之前写过几篇有关rt-smart的文章,但它们都是关于CMake建设项目的。

对我来说,我一直想在用户模式下操作底层硬件。

不久前,魏东山先生将rt-smart移植到他的100ask_imx6ull中,并且在获得imx6ull板之前,所以我也和这个大个子一起学习了rt-smart。

我在这里不再谈论移植过程。

您可以去看魏先生的视频,这非常好。

本文主要谈谈我的照明大法。

环境100ask_imx6ull开发板。

两条microUSB电缆。

电源。

一台Windows计算机。

共有五组适用于基础驱动程序IMX6ULL的gpio,每组最多32个,但是每组中的数量并不多。

GPIO1具有32个引脚:GPIO1_IO0〜GPIO1_IO31; GPIO2具有22个引脚:GPIO2_IO0〜GPIO2_IO21; GPIO3具有29个两个引脚:GPIO3_IO0〜GPIO3_IO28; GPIO4具有29个引脚:GPIO4_IO0〜GPIO4_IO28; GPIO5具有12个引脚:GPIO5_IO0〜GPIO5_IO11;首先,您需要查看芯片手册以查找寄存器。

imx6ull中的寄存器杂乱无章。

GPIO组的寄存器不是连续的,因此在编写时,需要在手册中进行编写。

您可以参考“ i.MX6ULLApplicationsProcessorReferenceManual”文档。

根据手册,我已经将GPIO连接到rt-thread的引脚驱动程序框架。

实际上,我一开始就自己编写了底部寄存器部分的代码,然后将其连接到引脚驱动器。

后来,我在gitee上找到了一组NXP库,然后再次将其重新连接,这样我就不必自己动手了。

以下是自制的轮子:在这里,我将GPIO分为两组,第一组:GPIO1〜GPIO4,第二组:GPIO5。

它们对每个组的基址是:根据每个组的基址,为每个组创建一个地址偏移表,以便您可以通过以下宏定义等到相应的引脚:#defineGET_PIN(PORTx,PIN)(32 *(PORTx-1)+(PIN& 31))在rt-smart中,我不能直接使用物理地址,需要使用虚拟地址。

rt-smart为我们提供了相应的API(rt_hw_kernel_phys_to_virt),用于将物理地址转换为虚拟地址。

让我们以pin_write为例:rt-thread,imux6ull gpio写操作:rt-smart,imux6ull gpio写操作,需要增加phyaddr到vitradr的转换:连接引脚驱动器的ops-> rt_pin_ops:注册引脚设备:编译和刻录:在rt线程应用程序开发中,我们经常使用一组API,rt_pin_mode,rt_pin_write。

但是,这套东西不能在rt-smart中使用。

并需要使用该设备驱动程序框架集,打开,写入,读取.imx6ull LED灯对应于第五组的第三引脚。

然后定义两个结构:pin_mode,pin_status。

编写水灯代码。

原始标题:rt-smart的第一个应用程序,imx6ull用户模式点亮文章来源:[微信公众号:RTThread IoT操作系统]欢迎您关注!请指出转载文章的来源。