IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux开发板之字符驱动开发 -> 正文阅读

[系统运维]Linux开发板之字符驱动开发

一、在前面实验12的过程中在使用NFS进行挂载的步骤中要注意:

如果是挂载 Ubuntu18 系统及更高版本 的系统下的 nfs 共享目录,uboot 无法通过 nfs 启动 Ubuntu 系统内的共享目录。需要在 /etc/default/nfs-kernel-server 文件进行修改,改好了保存退出,然后重启一下 nfs 就可以了,或 者报错 Loading:*ww ERROR:File lookup fail 的也是按照下面的方法来解决。

按照上面的截图改完之后,保存退出,在执行以下指令重启nfs服务。

sudo service nfs-kernel-server restart

二、在完成实验12的基础上,接下来是字符驱动的开发:

首先在该模式下创建如下文件夹:

注意:我已创建!

在lib下创建modules

在modules下创建4.1.15文件夹

  1. 创建VSCode工程在Ubuntu中创建一个存放linux驱动的文件夹,我的目录如下:

2在1_chrdevbase文件夹下创建.vscode工程,并且新建chrdexbase.c文件

创建c_cpp_properties,json文件,如下所示:

{

??? "configurations": [

??????? {

??????????? "name": "Linux",

??????????? "includePath": [

??????????????? "${workspaceFolder}/**",

??????????????? "/home/itcast/linux/IMX6ULL/linux/linux-imx-rel_imx_4.1.15_2.1.0_ga/include", (此文件目录为个人虚拟机下的目录)

??????????????? "/home/itcast/linux/IMX6ULL/linux/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/include", (此文件目录为个人虚拟机下的目录)

??????????????? "/home/itcast/linux/IMX6ULL/linux/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/include/generated/"(此文件目录为个人虚拟机下的目录)

??????????? ],

??????????? "defines": [],

??????????? "compilerPath": "/usr/bin/clang",

??????????? "cStandard": "c11",

??????????? "cppStandard": "c++17",

??????????? "intelliSenseMode": "clang-x64"

??????? }

??? ],

??? "version": 4

}

注意:

如果本次实验自己使用的是正点原子出厂的源码的进行的编译,那么以下路径就使用自己的路径,如果是将开发板对应的源码进行修改的,那么就使用自己修改过的开发板对应的路径, ?特别注意:在做驱动开发的时候,千万不能将此路径搞混淆了。以至于后面的实验会出现各种问题!

例如:就会出现如下问题:

  1. 接下来创建settings.json文件,如下所示:

4、编写.c文件:

5、接下来编写Makefile文件,如下所示:

注意:上边KERNELDIR为自己虚拟机中存放的文件位置

此时,应该在vscode中进行编译.c

?????? make

敲完make命令之后,文件夹中应该会出现.ko文件等等文件。

6、接下来,将当前目录下的.ko文件复制到刚才新建的文件下,命令如下:

sudo cp chrdevbase.ko /home/itcast/linux/nfs/rootfs/lib/modules/4.1.15/ -f

注意:此文件目录是在自己虚拟机下nfs文件目录中新建的文件

接下来在CRT中进入到文件夹4.1.15下,输入如下命令加载 chrdevbase.ko 驱动文件:

modprobe chrdevbase.ko

如果出现如下所示的提示

输入“depmod命令以后会自动生成 modules.alias、dules.symbols 和 modules.dep 这三个文件

7重新使用 modprobe 加载 chrdevbase.ko,

说明驱动加载成功!

三、注意:如果出现以下问题:

1

2、如果出现以下问题:这个是led实验!需要在vscode中创建如1_chrdevbase文件下一样的.vscode文件。重新使用make编译即可。再将其sudo cp chrdevbase.ko /home/itcast/linux/nfs/rootfs/lib/modules/4.1.15/ -f

3、如果以上方法还行不通,试着将其Makefile文件下做以如下更改:

再次重复上一步即可。接下来再进行led实验就应该没有什么问题了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:50:40  更:2021-08-10 13:51:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:36:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码