赞
踩
内存里面是运行代码的
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),找到内核对应的设备号的驱动设备。内核需要创建设备号还有设备节点。用户态对内核里面设备驱动进行操作,驱动对硬件进行操作。内核承上启下<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。