当前位置: 首页 > news >正文

使能 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.lryc.cn/news/324642.html

相关文章:

  • 通过dbeaver链接dm8数据库
  • Stable diffusion(四)
  • oracle 19c RAC补丁升级
  • 计算机视觉研究方向
  • 数据分析-Pandas分类数据的比较如何避坑
  • P - Beat
  • 机器学习——GBDT算法
  • 阿里二面:谈谈ThreadLocal的内存泄漏问题?问麻了。。。。
  • IOS面试题编程机制 46-50
  • web表单标签与练习(3.18)
  • 【协议-HTTP】
  • VUE3v-text、v-html、:style的理解
  • Dataset之UCI_autos_cars:UCI_autos_imports-85(汽车进口数据集)的简介、安装、案例应用之详细攻略
  • 结构体类型详细讲解(附带枚举,联合)
  • 编程生活day1--个位数统计、考试座位号、A-B、计算阶乘和
  • mysql体系结构及主要文件
  • PwnLab靶场PHP伪协议OSCP推荐代码审计命令劫持命令注入
  • 涉密信息系统集成资质八大类别办理条件是什么?
  • Shell脚本总结-反引号-${}-$()
  • Spring MVC入门(4)
  • RuoYi-Vue-Plus(基础知识点jackson、mybatisplus、redis)
  • 使用verillog编写KMP字符串匹配算法
  • 《每天十分钟》-红宝书第4版-对象、类与面向对象编程(五)
  • 华为ensp中rip动态路由协议原理及配置命令(详解)
  • 学习要不畏难
  • mysql迁移达梦数据库 Java踩坑合集
  • arm 解决Rk1126 画框颜色变色问题(RGB转NV12)
  • 113 链接集10--ctrl+左键单击多选
  • 详解JavaScript中this指向
  • c语言之在函数中传递指针