5.2.1.开启驱动开发之路

Posted ocean-star

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.2.1.开启驱动开发之路相关的知识,希望对你有一定的参考价值。

本节主要是讲述并且实践示范驱动开发的环境搭建、构建内核源码树、常用模块安装卸载命令等

5.2.1.1、驱动开发的准备工作

* 正常运行linux系统的开发板。要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的。
* 经过配置编译的内核源码树
* nfs挂载的rootfs
                   主机ubuntu中必须搭建一个nfs服务器。

5.2.1.2、驱动开发的步骤

* 驱动源码编写,makefile编写,编译
* insmod装载模块,测试,rmmod卸载

5.2.1.3、实践

3.1 编译得到内核源码树和zImage(可以fastboot烧录zImage)

F:朱有鹏嵌入式物联网课件&代码课件2.uboot和linux内核移植2.15.内核的配置和编译原理x210kernel.tar.bz2

cd /root/driver/kernel

配置内核支持nfs方式启动(开发板中运行kernel做nfs客户端)

make distclean
make x210ii_qt_defconfig
make menuconfig

Networking support
Networking options
[*] TCP/IP networking
[*]IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support

File systems --->
Network File Systems --->
<*> NFS client support
[*] NFS client support for NFS version 3
[*] NFS client support for the NFSv3 ACL protocol extension
[*] NFS client support for NFS version 4 (EXPERIMENTAL)
[ ] NFS client support for NFSv4.1 (DEVELOPER ONLY)
[*] Root file system on NFS (关键的)

make -j2
cp arch/arm/boot/zImage /tftpboot/ -f

3.2 fastboot/tftp烧录zImage到开发板

编写驱动分下面几步:
a -- 查看原理图、数据手册,了解设备的操作方法;
b -- 在内核中找到相近的驱动程序,以它为模板进行开发,有时候需要从零开始;
c -- 实现驱动程序的初始化:比如向内核注册这个驱动程序,这样应用程序传入文件名,内核才能找到相应的驱动程序;
d -- 设计所要实现的操作,比如 open、close、read、write 等函数;
e -- 实现中断服务(中断不是每个设备驱动所必须的);
f -- 编译该驱动程序到内核中,或者用 insmod 命令加载;
g-- 测试驱动程序;























以上是关于5.2.1.开启驱动开发之路的主要内容,如果未能解决你的问题,请参考以下文章

思否独立开发者丨@轩帅:开启技术变现之路,探索第三收入来源

Linux驱动学习之驱动开发准备工作

开启python学习之路

嵌入式linux与物联网进阶之路五:嵌入式驱动方式点亮LED

如何运用领域驱动设计 - 值对象

领域驱动设计(DDD)实现之路