ALPHA开发板修改CAN的设备树节点信息

一. 简介

上一篇文章通过查看 CAN硬件原理图知道了 CAN1接口对应的IO。文章地址如下:

ALPHA开发板中CAN硬件图-CSDN博客

通过ALPHA开发板上的 CAN接口的硬件原理图知道,CAN1_TX 和 CAN1_RX 是 I.MX6ULL的 FlexCAN1 的发送和接收引脚,分别对应 I.MX6ULL 的 UART3_CTS 和 UART3_RTS 这两个引脚。

二.  ALPHA开发板修改CAN的设备树节点信息

NXP 原厂提供的设备树已经配置好了 FlexCAN 的节点信息 (FlexCAN1 FlexCAN2) ,但是,我们还是要来看一下如何配置 I.MX6ULL CAN1 节点。
首先看一下 I.MX6ULL FlexCAN 设备树绑定文档。
打开 Documentation/devicetree/bindings/net/can/ fsl-flexcan.txt ,此文档描述了FlexCAN 节点下的相关属性信息,这里就不做介绍了,大家自行查阅。

1FlexCAN1 引脚节点信息

注意:这里开发板使用的 Nand-Flash版ALPHA开发板。所以,对应的设备树文件为 imx6ull-alientek-nand.dts,而 imx6ull-alientek-nand.dts调用了imx6ull-14x14-evk.dts设备树文件。

首先肯定是 CAN1 引脚配置信息,打开 imx6ull-14x14-evk.dts ,找到如下所示内容:
    pinctrl_flexcan1: flexcan1grp{fsl,pins = <MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX	0x1b020MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX	0x1b020>;};
3 和第 4 行将 UART3_RTS UART3_CTS 这两个引脚分别复用为 FlexCAN1 RX 和 TX ,电气属性都设置为 0x1b020

2. FlexCAN1 控制器节点信息

打开 imx6ull.dtsi 文件,找到名为 “ flexcan1 ” 的节点,内容如下:
			flexcan1: can@02090000 {compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";reg = <0x02090000 0x4000>;interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clks IMX6UL_CLK_CAN1_IPG>,<&clks IMX6UL_CLK_CAN1_SERIAL>;clock-names = "ipg", "per";stop-mode = <&gpr 0x10 1 0x10 17>;status = "disabled";};
上面的代码 中的 flexcan1 节点不需要我们修改,这里只是告诉大家 FlexCAN1 完整节点信息。
根据第 2 行的 compatible 属性就可以找到 I.MX6ULL FlexCAN 驱动源文件, 驱动文名为 drivers/net/can/flexcan.c
9 行的 status 属性为 disabled ,所以 FlexCAN1 默认关闭 的。

imx6ull-14x14-evk.dts 中添加使能 FlexCAN1 的相关操作,这里 "&flexcan1"的意思是在 "flexcan1"设备节点上进行添加信息的意思。找到如下所示代码:
&flexcan1 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_flexcan1>;xceiver-supply = <&reg_can_3v3>;status = "okay";
};
3 行,指定 FlexCAN1 所使用的 pinctrl 节点为 pinctrl_flecan1,也就是上面 pinctrl_flexcan1 这个引脚节点信息 : pinctrl 节点。
4 行, xceiver-supply 属性指定 CAN 收发器的电压为 3.3V
5 行,将 flexcan1 节点的 status 属性改为 “ okay ”,也就是使能 FlexCAN1

3.  关闭 FlexCAN2 相关节点

I.MX6ULL 带有两个 CAN 控制器:FlexCAN1 FlexCAN2NXP 官方的 EVK 开发板这两个 CAN 接口都用到了,因此,NXP 官方的设备树将这两个 CAN 接口都使能了。

但是,正点 原子的 I.MX6U-ALPHA 开发板将 FlexCAN2 IO 分配给了 ECSPI3,所以正点原子的 I.MX6ULL-ALPHA 开发板就不能使用 CAN2,否则的话, ECSPI3 外设就无法使用。

所以,关闭 FlexCAN2 节点很简单,在 imx6ull-14x14-evk.dts 文件中找到名为 “flexcan2” 的节点,然后将其屏蔽掉即可。 如下:

/*
&flexcan2 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_flexcan2>;xceiver-supply = <&reg_can_3v3>;status = "okay";
};
*/

重新编译设备树,进入 kernel内核源码(NXP官方的Kernel源码)的根目录下,运行如下命令:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make dtbsCHK     include/config/kernel.releaseCHK     include/generated/uapi/linux/version.hCHK     include/generated/utsrelease.h
make[1]: “include/generated/mach-types.h”已是最新。CHK     include/generated/bounds.hCHK     include/generated/asm-offsets.hCALL    scripts/checksyscalls.shDTC     arch/arm/boot/dts/imx6ull-14x14-evk.dtbDTC     arch/arm/boot/dts/imx6ull-14x14-evk-btwifi.dtbDTC     arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dtbDTC     arch/arm/boot/dts/imx6ull-14x14-evk-gpmi-weim.dtbDTC     arch/arm/boot/dts/imx6ull-alientek-nand.dtbDTC     arch/arm/boot/dts/imx6ull-14x14-evk-usb-certi.dtb
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ 

可以看出,设备树文件 imx6ull-alientek-nand.dtb重新编译并生成。接下来将开发板上电后加载设备树文件。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/766727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eureka和Nacos的关系

目录 它们的比较&#xff1a; 结论&#xff1a; Eureka和Nacos都是服务发现和注册中心&#xff0c;它们在微服务架构中扮演着关键角色&#xff0c;但它们是由不同的组织开发的&#xff0c;服务于类似但不完全相同的目的。以下是它们之间的关系&#xff1a; Eureka&#xff1a…

JDK下载配置

一、JDK的作用 Java开发环境&#xff1a;JDK提供了完整的Java开发环境&#xff0c;包含编译器&#xff08;javac&#xff09;、解释器&#xff08;java&#xff09;、打包工具&#xff08;jar&#xff09;、文档生成工具&#xff08;javadoc&#xff09;等一系列工具&#xff0…

SpringBoot健康监控

文章目录 1-SpringBoot2-监控-健康监控服务2-SpringBoot2-监控-Admin可视化 在Spring Boot中&#xff0c;可以通过Actuator模块实现应用程序的健康监控。Actuator是Spring Boot提供的一个用于监控和管理应用程序的模块&#xff0c;可以轻松地查看应用程序的运行状况、性能指标和…

Python3条件控制实战

在Python编程中,条件控制是一种重要的编程概念,它允许我们根据条件的成立与否来执行不同的代码块。在本文中,我们将探讨Python3中条件控制的实际运用,并通过示例来演示其用法。 什么是条件控制? 条件控制是编程中的一种结构,它允许根据条件的真假来选择执行不同的代码路…

有什么可以下载网页视频的浏览器插件 浏览器如何下载网页视频 网页视频怎么下载到本地 网页视频下载软件 IDM下载

在视频网站上看电影追剧&#xff0c;已经成为了大众生活中必不可少的一部分。为了保护自家视频的版权&#xff0c;很多平台都禁止用户下载会员视频。其实只要掌握了正确的方法&#xff0c;一样可以将会员视频下载到本地保存。那么有关有什么可以下载网页视频的浏览器&#xff0…

Websocket + Vue使用

这里有一篇文档可以参考一下> 闪现 POM文件 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.7.0</version> </dependency> WebSocketConf…

数据库之MongoDB应用与开发

MongoDB应用与开发 1. MongoDB安装 l 官网下载安装介质&#xff1a; Try MongoDB Atlas Products | MongoDB 选择对应版本 修改环境变量 vi /etc/profile export MONGODB_HOME/home/lijin/mongodb export PATH P A T H : PATH: PATH:MONGODB_HOME/bin source /etc/profile …

TnT-LLM: Text Mining at Scale with Large Language Models

TnT-LLM: Text Mining at Scale with Large Language Models 相关链接&#xff1a;arxiv 关键字&#xff1a;Large Language Models (LLMs)、Text Mining、Label Taxonomy、Text Classification、Prompt-based Interface 摘要 文本挖掘是将非结构化文本转换为结构化和有意义的…

矩阵计算-线性系统和 LU 分解

一、三角系统 …… 二、高斯消元法 …… 三、LU分解--直接三角分解法 求解线性方程Axb&#xff1a; 参考视频&#xff1a;【数值分析】矩阵LU三角分解| 速成讲解 考试宝典_哔哩哔哩_bilibili 令ALU&#xff0c;其中L是单位下三角矩阵&#xff08;对角线上元素都是1&#xff…

【python】(08)理解Python中的可变对象和不可变对象

系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、map…

golang 轻量数据库推荐

在Go语言&#xff08;Golang&#xff09;生态系统中&#xff0c;有许多轻量级的数据库选项可供选择&#xff0c;这些数据库特别适合用于小型项目、微服务架构或者需要高性能和快速响应的场景。以下是一些推荐的轻量级数据库和库&#xff1a; jmoiron/sqlx: 这是一个轻量级的SQL…

精神暴力的来源与解药

导致人生病的&#xff0c;不仅是病毒或细菌&#xff0c;也有精神暴力。与病毒破坏物理肌体、摧毁生命不同&#xff0c;精神暴力是让人们在过度的自我狂热中燃尽自我、而毁灭自身的。 21世纪以来&#xff0c;精神方面的疾病越来越多&#xff0c;为什么这样呢&#xff1f;大的背景…

git基础-查看提交历史

查看提交历史 在创建了多个提交之后&#xff0c;或者如果克隆了一个具有现有提交历史的存储库&#xff0c;可能会想要回顾一下发生了什么。最基本和强大的工具就是 git log 命令。 运行下git log查看下输出状态 默认情况下&#xff0c;不带任何参数运行 git log 命令会以逆时…

【工具】cassetteai — 制作音乐就像现在写提示一样简单

Cassette 是一种人工智能驱动的音乐创作工具,使各种技能水平的用户都可以根据自己的特定需求和偏好生成高质量、免版税的音乐曲目。它基于基于潜在扩散 (LDM) 的机器学习模型,可以使用用户提供的文本描述来想象节拍。它具有易于使用的界面,用户可以输入各种参数,例如所需的…

AGV|机器人导航识别二维码视觉传感器TDCS-0100与上位机PLC联机实例说明

目前二维码视觉导航的AGV出货量非常大&#xff0c;几乎都是仓储型AGV使用的导航方式。在地面或者天花板等位置标贴二维码作为标记点&#xff0c;通过扫描读取二维码信息和二维码相对相机的角度来确定当前位置。 本文重点介绍AGV|机器人导航识别二维码视觉传感器TDCS-0100与上位…

unity学习(68)——相机/模型的旋转/位置计算

这个比想象中要难&#xff0c;而且需要自己写。 1.相机可以转xy两个位置&#xff0c;可以点头和转圈。注意这里有一个if判断&#xff08;后面返回来发现了这些问题&#xff09; 2.角色不能点头&#xff0c;只能转圈。 难得是移动方向&#xff0c;因为移动方向(位置)和转向是相…

在Sequence中缓存Niagara粒子轨道

当Sequence中粒子特效较多时&#xff0c;播放检查起来较为麻烦&#xff0c;而使用Niagara缓存功能可将粒子特效方便的缓存起来&#xff0c;并且还可以更改播放速度与正反播放方向&#xff0c;便于修改。 1.使用Niagara缓存需要先在插件里打开NiagaraSimCaching 2.创建一个常…

web前端之行为验证码、不同设备和屏幕尺寸呈现不同大小、元素宽度根据视口宽度进行调整、元素或图片裁剪、图片验证码

MENU 前言版本一(htmlJScss)版本二(htmlJScsscanvas) 前言 1、版本一的样式比较齐全&#xff1b; 2、版本二的JS逻辑和功能效果比较完善&#xff0c;且是别人的代码&#xff0c;后续会对样式进行完善。[Gitee | 哔哩哔哩]&#xff1b; 3、两个版本各有千秋&#xff0c;主要学习…

Kafka系列之:Connect 中的错误报告

Kafka系列之:Connect 中的错误报告 Kafka Connect 提供错误报告来处理各个处理阶段遇到的错误。默认情况下,转换期间或转换中遇到的任何错误都会导致连接器失败。每个连接器配置还可以通过跳过此类错误、选择性地将每个错误以及失败操作的详细信息和有问题的记录(具有各种详…

CRC计算流程详解和FPGA实现

一、概念 CRC校验&#xff0c;中文翻译过来是&#xff1a;循环冗余校验&#xff0c;英文全称是&#xff1a;Cyclic Redundancy Check。是一种通过对数据产生固定位数的校验码&#xff0c;以检验数据是否存在错误的技术。 其主要特点是检错能力强、开销小&#xff0c;易于电路实…