| |
|
开发:
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文件夹
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 } 注意: 如果本次实验自己使用的是正点原子出厂的源码的进行的编译,那么以下路径就使用自己的路径,如果是将开发板对应的源码进行修改的,那么就使用自己修改过的开发板对应的路径, ?特别注意:在做驱动开发的时候,千万不能将此路径搞混淆了。以至于后面的实验会出现各种问题! 例如:就会出现如下问题:
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实验就应该没有什么问题了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/15 6:02:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |