使能 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内核镜像文件。

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

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

相关文章

【数据结构】归并排序(用递归)

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解归并排序&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 基本思想二. 归并排序代码 一. 基本思想 在讲归并排序之前&#xff0c;问问自己&#x…

使用Docker搭建Syslog-ng

Syslog-ng是一个可靠、多功能的日志管理系统&#xff0c;用于收集日志并将其转发到指定的日志分析工具。 使用Docker CLI方式搭建 步骤 1: 拉取Syslog-ng镜像 首先&#xff0c;需要从Docker Hub拉取Syslog-ng的官方镜像。 docker pull balabit/syslog-ng:latest步骤 2: 启动…

3月份的倒数第二个周末有感

坐在图书馆的那一刻&#xff0c;忽然感觉时间的节奏开始放缓。今天周末因为我们两都有任务需要完成&#xff0c;所以就选了嘉定图书馆&#xff0c;不得不说嘉定新城远香湖附近的图书馆真的很有感觉。然我不经意回想起学校的时光&#xff0c;那是多么美好且短暂的时光。凝视着窗…

LeetCode 热题 100 | 堆(三)

目录 1 队列 - v2.0 2 295. 数据流的中位数 2.1 解题思路 2.2 举例说明 2.3 维持队列 2.4 求中位数 2.5 完整代码 菜鸟做题&#xff0c;语言是 C 1 队列 - v2.0 排序规则果然和名字是反过来的&#xff1a; // 大根堆 priority_queue<int, vector<int>…

信号处理与分析——matlab记录

一、绘制信号分析频谱 1.代码 % 生成测试信号 Fs 3000; % 采样频率 t 0:1/Fs:1-1/Fs; % 时间向量 x1 1*sin(2*pi*50*t) 1*sin(2*pi*60*t); % 信号1 x2 1*sin(2*pi*150*t)1*sin(2*pi*270*t); % 信号2% 绘制信号图 subplot(2,2,1); plot(t,x1); title(信号x1 1*sin(…

Kotlin的lateinit关键词

Kotlin的lateinit关键词 lateinit&#xff0c;延迟初始化。有时&#xff0c;并不能定义一个变量或对象值为空&#xff0c;而也没办法在对象或变量在定义声明时就为它赋值初始化&#xff0c;那么这时就需要用到Kotlin提供的延迟初始化lateinit。比如&#xff0c;有些依赖注入框架…

【小贪】Kinect V2相机标定、图像获取、图像处理(Python)

完整项目链接&#xff1a;GitHub - xfliu1998/kinectProject Kinect V2相机标定 使用张正友标定法对Kinect V2相机标定。原理及参考代码见以下链接&#xff1a; 单目相机标定实现–张正友标定法&#xff1a;https://blog.csdn.net/weixin_43763292/article/details/128546103…

银行监管报送系统介绍(六):客户风险数据报送系统

【概念定义】 银监会决定从2013年起实行新版客户风险统计制度&#xff0c;对各政策性银行、国有商业银行、股份制商业银行进行客户信息汇总统计。 客户风险统计信息&#xff0c;是指新版客户风险统计报送信 息。客户风险统计报送信息包括但不限于对公及同业客户授信和 表内外业…

Gogs - 一款极易搭建的自助 Git 服务

Gogs - 一款极易搭建的自助 Git 服务 1. 使用文档References Gogs https://gogs.io/ https://github.com/gogs/gogs Gogs (/gɑgz/) 项目旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发&#xff0c;并…

【循环神经网络rnn】一篇文章讲透

目录 引言 二、RNN的基本原理 代码事例 三、RNN的优化方法 1 长短期记忆网络&#xff08;LSTM&#xff09; 2 门控循环单元&#xff08;GRU&#xff09; 四、更多优化方法 1 选择合适的RNN结构 2 使用并行化技术 3 优化超参数 4 使用梯度裁剪 5 使用混合精度训练 …

C++(类和对象)2

36 友元 1&#xff09;全局函数 全局函数做优元&#xff0c;就是把全局函数复制到类中&#xff0c;加个friend 同上&#xff0c;将class GoodGay前写个friend&#xff0c;就可以访问了 当然&#xff0c;还有成员函数做友元 39 运算符重载-加号 普通加号只知道两个整型撒的…

jetcache 2级缓存模式实现批量清除

需求 希望能够实现清理指定对象缓存的方法&#xff0c;例如缓存了User表&#xff0c;当User表巨大时&#xff0c;通过id全量去清理不现实&#xff0c;耗费资源也巨大。因此需要能够支持清理指定本地和远程缓存的批量方法。 分析 查看jetcache生成的cache接口&#xff0c;并没…

计算机网络⑧ —— IP地址

IP位于TCP/IP参考模型的第三层&#xff0c;也就是⽹络层 ⽹络层的主要作⽤&#xff1a;实现主机与主机之间的通信&#xff0c;也叫点对点通信 问题1&#xff1a;⽹络层(IP)与数据链路层(MAC)有什么关系呢&#xff1f; MAC的作⽤&#xff1a;实现直连的两个设备之间通信。IP的…

Oracle参数文件详解

1、参数文件的作用 参数文件用于存放实例所需要的初始化参数&#xff0c;因为多数初始化参数都具有默认值&#xff0c;所以参数文件实际存放了非默认的初始化参数。 2、参数文件类型 1&#xff09;服务端参数文件&#xff0c;又称为 spfile 二进制的文件&#xff0c;命名规则…

Django 三板斧、静态文件、request方法

【一】三板斧 【1】HttpResponse &#xff08;1&#xff09;介绍 HttpResponse是Django中的一个类&#xff0c;用于构建HTTP响应对象。它允许创建并返回包含特定内容的HTTP响应。 &#xff08;2&#xff09;使用 导入HttpResponse类 from django.http import HttpResponse创…

八股文(1)

管道 匿名管道和命名管道 命名管道的使用是什么&#xff1f;在linux系统如何实现 命名管道&#xff08;Named Pipe&#xff09;&#xff0c;也称为FIFO&#xff08;First In First Out&#xff09;&#xff0c;是一种在UNIX和Linux系统中用于进程间通信&#xff08;IPC&…

sqllabs1-7sql注入

先在?id参数后面判断是否存在sql注入 id1 返回正常 id1 返回报错&#xff08;说明可能存在sql注入&#xff09; id1 and 11 返回正常 id1 and 12 返回正常 id1 and 11 报错 id1 and 12 报错 说明$id后面可能还存在sql语句(源码源码&#xff1a;$sql"S…

HTML:常用标签

1. 标签概念 <!-- 五要素&#xff1a; 文档声明<!DOCTYPE html> 根标签<html></html> 头部元素<head></head> 主体元素<body></body> 注释标签 1.html文件的根标签&#xff0c; <html></html>所有其他标签都要放…

yarn、npm设置淘宝国内镜像

NPM 1. 查询当前镜像 npm get registry 2. 设置为淘宝镜像 npm config set registry https://registry.npm.taobao.org/ (旧地址&#xff0c;不再维护&#xff0c;可以使用) npm config set registry https://registry.npmmirror.com/ (最新地址)3. 设置为官…

第三十一章 配置 Web Gateway 的默认参数 - 事件记录参数

文章目录 第三十一章 配置 Web Gateway 的默认参数 - 事件记录参数 第三十一章 配置 Web Gateway 的默认参数 - 事件记录参数 事件日志级别字段指定 Web Gateway 写入 Web Gateway 事件日志的信息。日志记录选项定义为一串字符&#xff0c;每个字符代表一个日志记录命令。此处…