当前位置:   article > 正文

嵌入式内核及驱动开发(初级)_嵌入式内核开发

嵌入式内核开发

嵌入式内核及驱动开发(初级)


一、设备环境的搭建

在这里插入图片描述

内存里面是运行代码的

dtb文件(设备树:描述设备信息 )在加载内核的时候也会加载到内存DDR里面,内核在运行的时候会读取设备树,知道产品开发板有哪些设备,供驱动驱使
在这里插入图片描述

tfftp加载内核文件传输

nfs挂载根文件系统(文件共享)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置uboot参数,内核启动方式。
1 先将服务器ip和客户端ip设置

2 tftp是服务器将主机上面的UImage和.dtb文件下载到后面的对应地址。bootm是启动内核,启动后面的地址里面的程序 -是预留位置不是之间的地址

3 挂载根文件系统,内核才能启动否则崩溃
在这里插入图片描述

二、驱动开发

在这里插入图片描述
驱动代码的编写主要是对uImage和KO模块的编写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述首先对内核和设备树进行相关配置和修改,内核在make menuconfig图形界面里面进行配置。相关驱动信息的修改在设备树种去配置,然后Makefile之后再复制到tftpboot里面去

在这里插入图片描述
module_init是ko模块嵌入驱动
module_exit是ko模块撤销驱动

在这里插入图片描述
主要是内核源码的位置和指定编译的代码

装载KO到内核中insmod hello.ko

卸载rmmod hello(文件夹)

lsmod显示有哪些装载的ko
在这里插入图片描述
内核传参的时候需要加入传参函数

在这里插入图片描述
驱动代码在应用层写好然后在insmod装载到内核层。但是内核驱动的装载和卸载是有很多的,所以需要统一的一个对ko模块驱动的管理库。用链表做一个可以到处,删除,查询的独立模块用于维护和管理

三、字符设备驱动开发

在这里插入图片描述

字符设备:数据传输快,字符流,小而快
块设备:大而慢

用户空间对驱动操作其实就是文件io,open,read,write打开设备节点(/dev),找到内核对应的设备号的驱动设备。内核需要创建设备号还有设备节点。用户态对内核里面设备驱动进行操作,驱动对硬件进行操作。内核承上启下<

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号