使能 Linux 内核自带的 FlexCAN 驱动

一.  简介

前面一篇文章学习了 ALPHA开发板修改CAN的设备树节点信息,并加载测试过设备树文件,文件如下:

ALPHA开发板修改CAN的设备树节点信息-CSDN博客

本文是学习使能 IMX6ULL的 CAN驱动,也就是通过内核配置来实现。

二.  使能IMX6ULL的FlexCAN 驱动

NXP 官方提供的 linux 内核默认已经集成了 I.MX6ULL FlexCAN 驱动,但是没有使能,因此,我们需要配置 Linux 内核,打开 FlexCAN 驱动。
主要有两个方面的配置:
1. 使能CAN总线
2. 使能 Freescale CPU 的 FlexCAN 外设驱动

1.  使能CAN总线

首先,ubuntu终端进入 Kernel内核源码(即NXP官方提供的)的根目录,输入 "make menuconfig" 命令,即可打开 kernel源码配置界面。输入如下命令:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make menuconfig

其次,打开 CAN 总线子系统,在 Linux CAN 总线是作为网络子系统的。配置路径如下:

-> Networking support 
    -> <*> CAN bus subsystem support //打开 CAN 总线子系统

如下图所示:

使能好 CAN总线后如上所示,即 <>中为 *。

2. 使能 Freescale 系 CPU 的 FlexCAN 外设驱动

接着使能 Freescale CPU FlexCAN 外设驱动,配置路径如下:
-> Networking support 
     -> CAN bus subsystem support 
          -> CAN Device Drivers 
          -> Platform CAN drivers with Netlink support //这一行也选中
               -> <*> Support for Freescale FLEXCAN based chips //选中

配置 Freescale 系 CPU 的 FlexCAN 外设驱动,界面选中如下:

如上配置好后,按 "Esc"按键退出,直到根界面会出现如下:

选中 "Yes" 选项进行保存。这里就将 Kernel内核源码新的配置配置到 .config文件(kernel内核源码根目录下的 .config)中。

可以在 .config文件中查看是否已保存,gedit .config命令打开 .config文件:

注意:这里只是暂时将新更改的配置保存到  .config文件中,当不小心 "make clean" 命令后就会删除掉更改的配置。

可以永久将更改的配置保存,使用"make menuconfig" 命令打开界面,选择 "Save"命令进行永久保存:

保存到我创建自己开发板的内核配置文件 imx_v7_alientek_nand_defconfig文件中(之前移植内核实验)

选中"OK"选项后,保存。可以通过查看 imx_v7_alientek_nand_defconfig文件是否有 CONFIG_CAN_FLEXCAN=y 命令即可。

可以看出,这里的配置文件为:

 ./arch/arm/configs/imx_v7_alientek_nand_defconfig

3.  编译内核源码

以上配置完成后,编译内核。进入 内核源码根目录下,输入 "make"命令即可:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ make

编译完成后,会在 "./arch/arm/boot" 目录下生成新的  zImage内核镜像文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

栅格地图路径规划:基于小龙虾优化算法(Crayfsh optimization algorithm,COA)的机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人&#xff08;Mobile robot&#xff0c;MR&#xff09;的路径规划是 移动机器人研究的重要分支之&#xff0c;是对其进行控制的基础。根据环境信息的已知程度不同&#xff0c;路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

目标检测上的diffusion

1 Title DiffusionDet: Diffusion Model for Object Detection&#xff08;Shoufa Chen,Peize Sun,Yibing Song,Ping Luo&#xff09;【ICCV 2023】 2 Conclusion This study proposes DiffusionDet, a new framework that formulates object detection as a denoisin…

Dynamo与Revit API之间的转换

今天来聊聊 Dynamo 与 Revit 之间图元转换的基础知识&#xff0c;这些需要你牢牢记住哦&#xff0c;不然在 Python script 中写代码&#xff0c;经常会报错的~ 通常来讲&#xff0c;所有来自 Dynamo 节点的几何图形都不是 Revit 的几何对象&#xff0c;所以它们需要与 Revit AP…

FreeCAD傻瓜教程之基准面的构建-在实体的表面上新建坐标、倾斜的平面、附加不同的台阶、旋转体等

目的&#xff1a;学会在已有模型的不同剖面上建立新的坐标系&#xff0c;并绘图&#xff1b;使得新图形仍然作为同一个零件实体的构件。 零、需求举例 在下列模型中&#xff0c;我们要在圆杆的顶部增加一个把手&#xff0c;如果点击圆杆顶部&#xff0c;则仅能在顶部圆形所在…

举4例说明Python如何使用正则表达式分割字符串

在Python中&#xff0c;你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法&#xff0c;但它允许你使用正则表达式作为分隔符。 示例 1: 使用单个字符作为分隔符 假设你有一个由逗号分隔的字符串&#xff0c;你可…

设计模式之状态模式(一)

设计模式专栏&#xff1a; http://t.csdnimg.cn/4Mt4u 目录 1.概述 2.结构 3.实现 4.总结 1.概述 状态模式( State Pattern)也称为状态机模式( State Machine pattern), 是允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类, 属于行为型模式。 在状…

Vscode按键占用问题解决

Vscode按键占用 在使用vscode的过程中&#xff0c;官方按键 Ctrl . 按键可以提示修复代码中的问题&#xff0c;但是发现按了没有反应。 解决问题 首先确认vscode中是否设置了这个按键&#xff0c;默认设置了的系统输入法中是否有按键冲突了&#xff0c;打开输入法设置检查 …

AI在融媒体领域的应用探讨

AI在融媒体领域的应用探讨 ChatGPT是人工智能的一种应用形式&#xff0c;它属于自然语言处理&#xff08;NLP&#xff0c;Nature Language Process&#xff09;领域。 2022年11月30日&#xff0c;由人工智能实验室OpenAI发布的对话式大型语言模型ChatGPT一夜爆火&#xff0c;…

ETL数据倾斜与资源优化

1.数据倾斜实例 数据倾斜在MapReduce编程模型中比较常见&#xff0c;由于key值分布不均&#xff0c;大量的相同key被存储分配到一个分区里&#xff0c;出现只有少量的机器在计算&#xff0c;其他机器等待的情况。主要分为JOIN数据倾斜和GROUP BY数据倾斜。 1.1GROUP BY数据倾…

[激光原理与应用-80]:PLC通信协议之-OMRON欧姆龙FINS TCP通信协议详细解析

目录 一、OMRON欧姆龙 PLC简介 1.1 OMRON欧姆龙 PLC 1.2 OMRON欧姆龙 PLC通信协议简介 1.3 通信架构 二、欧姆龙FINS协议简介 2.1 简介 2.2 协议分层 2.3 OMRON&#xff08;欧姆龙&#xff09;FINS协议的本质 2.4 OMRON&#xff08;欧姆龙&#xff09;FINS&#xff08…

Spring Boot集成zxing实现生成二维码功能

1.二维码介绍 二维码QR Code(Quick Response Code) 由Denso公司于1994年9月研制的一种矩阵二维码符号&#xff0c;它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。 ZXing 一个支持在图像中解码和生成条形码(如…

Vue3与CSS艺术: 实现数字流动画

开篇 最近在给我的个人小项目做注册页面&#xff0c;想的是反正是自己的页面&#xff0c;不妨加点动画特效进去&#xff0c;这样看起来更好看。在经过一番思索后&#xff0c;决定了做一个简单的“字符雨”动画出来。 思路分析 想做就做&#xff0c;打开IDE&#xff0c;接下来就…

医院预约挂号系统设计与实现|jsp+ Mysql+Java+ Tomcat(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;…

信号处理--使用EEGNet进行BCI脑电信号的分类

目录 理论 工具 方法实现 代码获取 理论 EEGNet作为一个比较成熟的框架&#xff0c;在BCI众多任务中&#xff0c;表现出不俗的性能。EEGNet 的主要特点包括&#xff1a;1&#xff09;框架相对比较简单紧凑 2&#xff09;适合许多的BCI脑电分析任务 3&#xff09;使用两种卷…

大创项目推荐 图像识别-人脸识别与疲劳检测 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是…

道路与航线

一道类似缩点的好题&#xff0c;先按道路缩点 然后将缩点以后的图按照航线做DAG 在DAG上先跑topsort 在每一个团内部跑dijkstra&#xff0c;同时更新top点 很有意思的一道题目 #include<bits/stdc.h> using namespace std; using ll long long; const int N 3e510; co…

STM32--RC522学习记录

一&#xff0c;datasheet阅读记录 1.关于通信格式 2.读寄存器 u8 RC522_ReadReg(u8 address) {u8 addr address;u8 data0x00;addr((addr<<1)&0x7e)|0x80;//将最高位置一表示read&#xff0c;最后一位按照手册建议变为0Spi_Start();//选中从机SPI2_ReadWriteByte(ad…

Python 潮流周刊#43:在开源与家庭之间,他选择了家庭

△△请给“Python猫”加星标 &#xff0c;以免错过文章推送 你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。本周刊开源&#xff0c;欢迎投稿[1]。另有电报频道[2]作为副刊&#xff0c;补充发布更加丰富的资讯&#xff0c;…

Java基础-正则表达式

文章目录 1.基本介绍2.正则底层实现1.matcher.find()完成的任务2.matcher.group(0)分析1.源代码2.解释&#xff08;不分组&#xff09;3.解释&#xff08;分组&#xff09; 3.总结 3.正则表达式语法1.基本介绍2.元字符的转义符号1.基本介绍2.代码实例 3.字符匹配符1.基本介绍2.…

vscode使用Runner插件将.exe文件统一放到一个目录下

找到右下角管理&#xff0c;点击扩展。 找到Code Runner插件&#xff0c;打开扩展设置。 向下翻&#xff0c;找到Executor Map&#xff0c;点击在settings.json中编辑。 在c和c的配置命令栏中增加\\\output\\即可。&#xff08;增加的目录不能自动创建&#xff0c;需要手动创建…