字符设备驱动基础篇0——驱动开发初体验
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。
参考资料:http://www.cnblogs.com/biaohc/p/6575074.html
1、驱动开发的准备工作
(1)内核源码树,即经过配置编译之后的内核源码。
(2)将此内核源码为镜像,烧录至开发板,能正常运行。
(3)nfs挂载的rootfs,主机ubuntu中必须搭建一个nfs服务器,以便开发板能够下载rootfs。
2、驱动开发的步骤
(1)驱动源码编写,Makefile编写,编译;
(2)insmod装载模块,测试,rmmod卸载模块。
3、实践
(1)copy原来提供的x210kernel.tar.bz2,找一个干净的目录(/root/driver),解压之,并且配置编译。
- 编译完成后得到:内核源码树,和zImage。
(2)利用fastboot或tftp,将第1步中得到的zImage烧录到开发板中去启动。
(3)使用(1)中编译好的内核源码树编译驱动,就可以在开发板内核中去测试。
- 因为开发板内核和内核源码树是一伙的,所以驱动安装时版本校验不会出错。
- 所谓的测试,即insmod装载模块然后测试,最后rmmod卸载模块。
(4)步骤简述
- 先在虚拟机中用同一个内核(和开发板运行的内核一样)编译程序(应该在Makefile中指明内核的位置(顶层目录位置,如/root/driver/kernel),然后make),得到xxxxxxx.ko驱动文件;
- 再把此驱动文件复制到root/rootfs/t中,将来开发板启动后,在SCRT中进入该目录,使用insmod xxxxxxx.ko指令进行安装,然后查看、卸载等。
字符设备驱动基础篇0——驱动开发初体验相关推荐
- 字符设备驱动基础篇5——驱动如何操控硬件(动静态映射操作LED)
以下内容源于朱有鹏嵌入式课程的学习,,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6575074.html 这里的映射,是指物理地址和虚拟地址的对 ...
- 字符设备驱动基础篇2——用开发板来调试驱动模块的步骤
(1)设置bootcmd,使开发板通过tftp下载(使用内核源码树编译得到的)zImage set bootcmd 'tftp 0x30008000 zImage;bootm 0x30008000' ...
- I.MX6ULL_Linux_基础篇(7) 裸机开发流程
上一篇介绍了芯片的基本资源,本篇就开始学习怎么编程去使用芯片了(裸机,非系统).不过鉴于该芯片基本都使用linux开发,裸机仅介绍流程. 开发环境准备 服务器(ubuntu环境) 工具使用和开发方式可 ...
- 树莓派Linux内核编译、文件系统、Linux内核驱动基础框架、驱动测试步骤、总线地址
树莓派高阶开发课程 1. ubuntu18.04版本安装 让程序猿搭建环境太搞笑了,轻松easy! ========================================= ...
- Windows Embedded CE 6.0开发初体验(二)CE开发环境 收藏
上一篇<Windows Embedded CE 6.0开发初体验>之"嵌入式开发流程": http://blog.csdn.net/aawolf/archive/200 ...
- Windows Embedded CE 6.0开发初体验(三)设置Boot-loader
在Digi CC 9P开发板中已经预置了Boot-loader和一个CE 6.0的系统,所以,我们直接启动开发板,就可以运行一个CE 6.0的操作系统.不过,我们的最终目的是要开发一个自己的CE 6. ...
- Windows Embedded CE 6.0开发初体验(二)CE开发环境
CE开发环境 下面就要让今天的主角闪亮登场了--Digi CC 9P开发板.为了感谢Digi提供的开发板,还是给他们做个广告吧:这是一家以WiFi相关产品为主营业务的公司,也生产ARM架构的CPU,所 ...
- Windows Embedded CE 6.0开发初体验(一)Windows CE概述
这篇文章的目的并不是介绍Windows Embedded CE开发的方方面面,只是用一个初涉嵌入式领域的软件开发者的视角来介绍Windows CE开发中最常用的概念和知识,解决大家会在实际开发中碰到的 ...
- Windows Embedded Standard开发初体验(二)
支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...
最新文章
- MySQL面试题 | 附答案解析(一)
- 009_Raphael动画
- 爬虫工具——Selenium和PhantomJS
- C/C++ 之 C发展史及 各标准特性说明
- 资料分享 | 数学建模竞赛备战大全
- 蓝桥杯 n进制小数
- Keepalived详解之 - LVS(IPVS)管理工具ipvsadm使用指南
- python在数字后添加字符_Python在字符前后补字符
- java signal handler_JAVA优雅停机的实现
- 【计算机组成原理】零碎知识归纳总结
- CVPR 2020|开源实时“人手-物体”姿态估计算法HOPE-Net
- react-state状态
- Java程序员不容错过的开发趋势
- html缎带按钮,6款丝带蝴蝶结系法图解_乌托家家居网
- 解密腾讯前端技术体系
- 解决win10右击鼠标卡顿问题
- linux 命令 排查问题小技巧(博客来自:狂乱的贵公子)
- jstack问题定位分析
- 【转】一文带你了解ARM的发展历程
- 网易招财猫(内测版)
热门文章
- [No0000166]CPU的组成结构及其原理
- ionic3 隐藏子页面tabs
- 【C/C++开发】C++11 并发指南二(std::thread 详解)
- java 循环 基本类型
- struts2的namespace的问题
- 机器学习:最大似然估计与最大后验概率估计
- SqlServer 的IDENTITY_INSERT设置为OFF问题
- WEB/H5性能优化总结
- XMPP文件传输(XEP-0096协议说明)
- 面向对象编程从骨子里就有问题——看看名人大家是如何吐槽面向对象的