【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED)

这篇具有很好参考价值的文章主要介绍了【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 版本管理

1.1 初始化git仓库

git init 生成一个.git 目录
git config --global user.name 用户名
git config --global user.email 邮箱

1.2 查看.gitignore

vim .gitignore

1.3 添加删除到缓存区

git status 查看状态
git add 文件名
git rm 文件名

1.4 提交当前记录

git commit -m 说明

1.5 查看提交记录

git log

1.6 查看当前分支

git branch

1.7 创建分支

git branch 分支名

1.8 切换分支

git checkout 分支名

2. 叒叕点亮LED

通过linux自带的gpio-leds驱动实现,改驱动通过调用Pinctrl子系统和GPIO子系统实现LED灯的控制;

2.1 IOMUX介绍

IOMUX是指IO引脚功能多路复用;其对应的引脚功能可以看05-硬件资料\05-4 管脚分配表\ELF 1引脚复用对照表-20230921.xlsx,在表中Alt0为默认功能,后面的Alt[数字]列为可以复用功能,复用为GPIO需要配置为Alt5,相关的寄存器配置可以查看IMX6ULLRM.pdfchapter 32.6 中关于SW_MUX_CTL寄存器描述
a. 常用的寄存器类型

电气属性寄存器:IOMUXC_SW_PAD_CTL_PAD_* 20E_0204-20E_048F
复用寄存器:IOMUXC_SW_MUX_CTL_PAD_* 20E_0044-20E_0203

b. 怎么进行配置(可以看后面程序理解)

  1. arch/arm/boot/dts/dts文件名文件中,添加对iomuxc的描述,定义pinctrl_leds0
  2. 添加fsl,pins信息

信息按照:复用寄存器偏移值, 电气属性寄存器偏移值,输入寄存器偏移值,复用模式,输入值, 电气寄存器的值 排列,每行只描述一个引脚的各个值

举个例子:
首先利用arch/arm/boot/dts/imx6ull-pinfunc.h的定义的宏,
#define MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x008c 0x0318 0x0000 5 0
其排列顺序参照下列描述

/*
14  * The pin function ID is a tuple of
15  * <mux_reg conf_reg input_reg mux_mode input_val>
16  */

0x008c代表复用寄存器相较于基地址的偏移量【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux
0x0318 代表模式控制寄存器相较于基地址的偏移量
【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux
5 代表 复用模式为寄存器描述的GPIO1_IO18

0101 ALT5 — Select mux mode: ALT5 mux port: GPIO1_IO18 of instance: gpio1

其次,在fsl,pins中添加:

fsl,pins = <
	MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 		0x10b0
	>;

0x10b0代表将电气属性寄存器配置为:Pull/Keeper Enabled,速度 medium(100MHz),Drive Strength Field 为DSE_6_R0_6 — R0/6
【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux

2.2 硬件说明

2.2.1 原理图

硬件上有三个led灯,分别连接着第60、64、30号引脚,当GPIO输出配置为低电平时导通,LED点亮;
【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux

【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux
【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux

2.2.2 引脚说明

引脚的相关宏定义在以下两个文件:
arch/arm/boot/dts/imx6ull-pinfunc.h
arch/arm/boot/dts/imx6ul-pinfunc.h

如果查找对应引脚的GPIO号,通过vi arch/arm/boot/dts/imx6ul-pinfunc.h进入文件,在命令模式下,使用/GPIO号查找名称末尾为复用中描述的GPIO名称,例如:用/GPIO1_IO10查找*GPIO1_IO10*宏

序号 名称 引脚 GPIO
60 LED_R P15_JTAG_MOD gpio1_IO10
64 LED_G K13_GPIO_0 gpio1_IO00
30 LED_Y K15_SD1_WP gpio1_IO18

2.3 程序配置说明

2.3.1 IOMUX配置

arch/arm/boot/dts/imx6ull-elf1-emmc.dts文件的末位,新增关于IOMUX的描述如下:

&iomuxc {
	pinctrl_leds0:leds0grp{
		fsl,pins = <
 			MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x10b0
			MX6UL_PAD_JTAG_MOD__GPIO1_IO10   0x10b0
			MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 0x10b0
		>;
		};
};

ps. 注意标点符号的规范,0x10b0是对电气寄存器的配置:

2.3.2 设备树配置

arch/arm/boot/dts/imx6ull-elf1-emmc.dts设备树描述文件中的根目录/下添加对led的文本说明

		leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_leds0 >;
                status = "okay";
                led1{
                        lable = "led1";
                        gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
                led2{
                        lable = "led2";
                        gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
                led3{
                        lable = "led3";
                        gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
        };

解释:
compatible: 兼容,表示该设备可以被一个或多个驱动匹配,此处匹配gpio-leds驱动;
定义的pinctrl_leds0标签在此处使用
status 设置为 “okay” 表示 LED可用
gpios表示对映的引脚和极性(GPIO_ACTIVE_LOW 或GPIO_ACTIVE_HIGH)
default-state 表示默认状态,有"off"和"on"两种状态

2.3.3 生成镜像和设备树

make menuconfig
make -j2

在menuconfig中,按"/LEDS_GPIO”查找,选中保证该驱动已经编译进内核

2.3.4 拷贝下载验证

将相关镜像和设备树发送到开发板

scp arch/arm/boot/dts/imx6ull-elf1-emmc.dtb root@192.168.0.232:/run/media/mmcblk1p1/
scp arch/arm/boot/zImage root@192.168.0.232:/run/media/mmcblk1p1/

在开发板保存重启

sync
reboot

更改前:【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux
更改后:
【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED),linux
现在可以通过操作文件点灯:文章来源地址https://www.toymoban.com/news/detail-785969.html

echo 0 > /sys/class/leds/led1/brightness
echo 1 > /sys/class/leds/led1/brightness

到了这里,关于【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 11 旧版本兼容修改:TelephonyManager的getDeviceId和getSubscriberId; WifiManager.setWifiEnabled

        随着Android的更新,越新的版本收紧的权限越来越多,伴随着很多曾经可用的接口慢慢地出现了问题。 比如: TelephonyManager.getSubscriberId() 在代码注释中已经写得很明白: The user 10125 does not meet the requirements to access device identifiers 要做的事情很简单, 找到权限检查的地方, 去掉

    2024年02月15日
    浏览(36)
  • 适用于 Windows 10 和 Windows 11 设备的笔记本电脑管理软件

    便携式计算机管理软件使 IT 管理员能够简化企业中使用的便携式计算机的部署和管理,当今大多数员工使用Windows 笔记本电脑作为他们的主要工作机器,他们确实已成为几乎每个组织不可或缺的一部分。由于与台式机相比,笔记本电脑足够便携,因此远程工作变得更加方便,

    2024年02月08日
    浏览(52)
  • 使用 Jamf Pro 和 Okta 工作流程实现自动化苹果设备管理

    Jamf的销售工程师Vincent Bonnin与Okta的产品经理Emily Wendell一起介绍了JNUC 2021的操作方法会议。它们涵盖了Okta工作流程(Okta Workflow),并在其中集成了Jamf Pro,构建了一些工作流程,并提供了几个用例。     Okta 工作流程和Jamf Pro     这个使用Okta Workflows和JamfPro进行苹果设备管理

    2024年01月15日
    浏览(41)
  • cocos creator 3.x打包构建原生安卓APK流程(打包release版本,修改APP图标)

    本文介绍cocos creator 3.x如何打包构建原生安卓APK,一开始是按照官网构建示例操作的,发现存在各种SDK版本问题,因为对原生Android没什么研究只能瞎琢磨,最后勉强算是打包出来了…写个文章记录下流程,免得后续又忘记…如果有不对的地方,欢迎在评论区指正,有疑问也可

    2024年02月10日
    浏览(64)
  • 开发基于 LoRaWAN 的设备--设备联网管理

    物联网 (IoT) 以及基于 LoRa® 的设备和 LoRaWAN® 网络使其成为可能,数十亿个传感器将改变我们与世界互动的方式。这些传感器将提供广泛的监控可能性,这在几年前还是不可想象的。各行业的数据分析师对农业、工业控制、医疗保健和计量等各个领域的数亿字节数据的可能性

    2024年02月15日
    浏览(44)
  • Linux修改网卡信息——保姆式操作流程

    目录 修改网卡信息的文件位置 BOOTPROTO说明 权限说明 修改网卡IP 查看当前网卡信息 重新启动网卡 网卡信息属性说明 总结 查看效果 BootProto是设置工作方式,这里有好几个值的写法。 none 引导时不使用协议 static 静态分配ip bootp bootp协议 dhcp DHCP协议 这里我们如果想写具体的

    2024年02月07日
    浏览(38)
  • 关于win11 设备管理器里没有照相机以及相机程序无法启动的问题。

    设备:r9000p 2021h 故障现象:微信视频时切换摄像头也没有正常相机画面。 于是启动相机应用测试,提示“无法找到您的相机”。 故障码:0xA00F4244<NoCamerasAttached>。                       设备管理器中勾选显示隐藏设备,没有照相机选项。 结论:第一次解决失败。第二

    2024年02月12日
    浏览(49)
  • Windows11 安装 nvm node版本管理工具

    引言: Node.js 是一款强大的开发工具,而版本管理工具 NVM 则可以帮助我们在不同的项目中灵活地切换和管理 Node.js 版本。本篇博客将为大家介绍如何在 Windows 11 操作系统上安装 NVM(Node Version Manager)并使用它来管理 Node.js 版本。 步骤一:下载安装 NVM: 打开您的浏览器,访

    2024年02月11日
    浏览(61)
  • Linux驱动之系统移植----uboot移植(有设备树版本),完整移植.

    uboot版本:uboot2020.04 开发板:100ask_imx6ull_pro 拿到官方uboot后第一步先编译烧写测试, 查看哪些驱动可用, 哪些不可用. 根据开发板厂商提供的资料: 使用mx6ull_14x14_evk_defconfig配置进行修改 编译完成后将uboot设备树以及uboot.imx烧写到开发板中运行 显然网络不通, phy无法找到, 其次LCD需

    2024年01月25日
    浏览(30)
  • HarmonyOS学习路之开发篇—设备管理(设备标识符)

    定义 网络设备节点通信标识符,是分布式软总线提供的一种非永久性标识符。NetworkID基于Java原生的UUID接口随机生成,长度为32字节,使用十六进制表示。主要用于业务调用分布式能力时,标识分布式网络内的设备节点。 NetworkID 举例: 6B97BC8F6F85A2A1A6E0E262111F42D6A8541CBFF6CAF688F

    2024年02月13日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包