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

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-- 测试驱动程序;

转载于:https://www.cnblogs.com/Ocean-Star/p/9250223.html

5.2.1.开启驱动开发之路相关推荐

  1. 记本阶段建站心得,是走无限做垃圾站之路还是真正的开发之路

    不知不觉,上班有三个月了,三个月除却一些公司里杂七杂八的事,我做了四个站,第一个是六安市志愿者会员管理系统,比较简单,用TP开发,从前台设计.布局,到数据库设计,再到后台代码,改了又改,最后花了近一个 ...

  2. 我的Java开发之路

    最近有一位小伙伴通过公众号给我留言, "我参加工作没多久,看着圈里的技术大牛,特别羡慕,也渴望成为技术大牛,想让您分享一下从小白到大牛是怎样练成的,我该如何提高自己" 首先,谢谢这 ...

  3. Android驱动开发之Hello实例(基于高通msm8909)

    点击打开链接 Android驱动开发之Hello实例: 驱动部分 modified:   kernel/arch/arm/configs/msm8909-1gb_w100_hd720p-perf_de ...

  4. Android驱动开发之Hello实例

    Android驱动开发之Hello实例: 驱动部分 modified:   kernel/arch/arm/configs/msm8909-1gb_w100_hd720p-perf_defconfig ...

  5. 细说inchat系统客户端开发之路

    Inchat系统中间件基础运行环境是经过统一规划的以WebLogic.JBOSS为主的集群环境,企业集成平台是以基础业务应用为基础服务于上层平台和基础业务应用的高度集成平台,数据中心是企业公共数据的集 ...

  6. Qt开发之路39---Qt pro项目检测编译器版本(64位或32位)

    方案一:利用QT_ARCH contains(QT_ARCH, x86_64){message("64-bit") }else{message("32-bit" ...

  7. 攀岩时代:HMS Core 6.0与移动开发之路

    今年的东京奥运会中,一些全新运动项目首次进入奥运是一大看点.其中就包括科技界经常用以比喻自己的:攀岩. 刚刚加入奥运大家庭的攀岩运动,需要选手在陡峭的崖壁,甚至负角度情况下,在仅有的几个发力点支撑下向 ...

  8. 04_HUD_Qt_for_Python开发之路2

    欢迎来到我的博客,希望这篇文章对你有所帮助,如果觉得不错,请点赞搜藏哈. 文章目录 HUD_Qt_for_Python开发之路2 1 设置程序名称 2 隐藏窗口标题栏 3 设置窗口透明裁剪 4 修改下 ...

  9. 我的App开发之路:从零开始到上线赚钱

    我的App开发之路:从零开始到上线赚钱 背景介绍 本人从第一次写代码赚钱开始,到现在已经12年了,使用过多种操作系统.编程语言. 现在作为一名个人开发者,开发一些小应用. 本文就应用软件开发做个简单总 ...

最新文章

  1. 订阅了李笑来的“通往财富自由之路”栏目
  2. SQL Server 2008最直观的变化上(三)
  3. 类似飞秋的局域网软件_内网视频会议软件系统
  4. Spring IOC注解方式
  5. 性能测试报告模板_性能测试规范之测试报告
  6. GoogLeNet学习
  7. Thunder团队第三周 - Scrum会议6
  8. 浅析MySQL二进制日志
  9. [译] 搜索结果页的最佳实践
  10. 10. jQuery Callback 函数
  11. vue zxing 实现一维码、二维码扫描可移动端h5使用代码亲测可用
  12. Python爬虫获取PPT模板
  13. ESPRIT 2019初学到走心机编程视频教程
  14. STM32-ADC模数转换
  15. 水表188协议测试软件,水表下行通信规约标准188协议-V1.5标准版.pdf
  16. 解决navicat闪退
  17. MySQL 名次查询
  18. 那些惊艳的算法—时间轮任务调度(sunwind整理)
  19. Python基本环境配置
  20. microbit积木块菜单图标

热门文章

  1. 【安全牛学习笔记】COCAT
  2. UI4(事件,手势)
  3. 服務端的EIT造形+Socket代碼
  4. 【指针】C++中指针的使用艺术[转]
  5. python mongodb 设置密码前一篇ok,csv文件存入mongodb
  6. 【C++】accumulate函数的用法(STL)
  7. 蓝桥杯 ALGO-63 算法训练 乘法表
  8. 蓝桥杯ADV-172 算法提高 身份证排序
  9. python登录交换机执行命令_利用Python脚本登录交换机实现自动配置备份的方法
  10. Java 用HTTP的方式发送JSON报文请求