![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
smart210
曾经smart210学习过程中零碎的记录暂且留着吧。
evanGOGO
这个作者很懒,什么都没留下…
展开
-
FriendlyARM内核编译
0 找到配置文件作为模板,在内核文件中有一个专门文件夹用来存放相应的配置文件1 编译环境的搭建,先安装交叉编译环境 这时候问题来了,这么内核这么多版本,交叉编译环境这么多版本,怎么对应起来呢,linux内核已经告诉我们了 查看Documenttation/Changes 文档中会变数交叉编译器最小的版本号和make的最小版本号 通过 arm-linux-gcc -v 来看当前的版本是否符条件...原创 2018-04-23 22:10:56 · 877 阅读 · 0 评论 -
DECLARE_MUTEX宏定义
Linux可以使用互斥信号量来表示互斥锁,那就是通过宏DECLARE_MUTEX来定义一个互斥信号量,因为DECLARE_MUTEX这个宏, Marcin Slusarz在08年提交的了一个patch,邮件地址为:https://lkml.org/lkml/2008/10/26/74,Marcin Slusarz认为DECLARE_MUTEX宏会误导开发者,所以建议将DECLARE_MUTEX修改...转载 2018-05-02 13:58:03 · 984 阅读 · 0 评论 -
printk打印无输出是的解决方法
1.基本解决方法(如果这种方法不行,结尾处说明另一种小众原因)用到的命令cat /proc/sys/kernel/printk,查看控制台日志级别echo 8 > /proc/sys/kernel/printk 设置当前的日志级别使用printk时,Linux内核根据日志级别,可能把消息打印到当前控制台上,这个控制台是一个字符设备。这些消息从终端输出的前提是日志输出级别小于console_l...原创 2018-04-27 22:13:11 · 10828 阅读 · 1 评论 -
smart210 字符驱动之led(手动创建节点)
主要用到的内容1.注册函数采用 register_chrdev(250, "king", &first_drv_fops); // 注册, 告诉内核2.open函数的重写 int open(const char *pathname,int flags);使用例子: fd = open("/dev/xyz", O_RDWR);3.write函数的重写 write(int fd,co...原创 2018-04-28 11:25:18 · 870 阅读 · 0 评论 -
驱动中使用class_device_create()报错的原因,自动创建设备节点文章末尾附关键代码
之前写的字符类设备驱动,没有自动创建设备节点,因为只使用了register_chrdev()函数,只是注册了这个设备。然后在系统启动后,就要自己创建设备节点mknod,这样虽然是可行的,但是比较麻烦。于是想在__init函数里面,自动创建设备节点。经过查阅资料,发现创建设备节点使用了两个函数 class_create()和class_device_create(),当然在__exit()函数里,...原创 2018-04-28 13:42:45 · 796 阅读 · 0 评论 -
nandflash驱动
mtd------memory technology deviceslc------single level cell mlc------multi level cellnandflash驱动框架从驱动框架图可知,编写驱动需要提供:1 提供nand_chip结构体2 设置这个结构体3 硬件相关设置(io设置和寄存器设置)4 用nand_scan/add_mtd_partions和nand_chi...原创 2018-05-20 15:29:11 · 434 阅读 · 0 评论 -
块设备驱动(内存模拟硬盘)
搜索“blk_init_queut()”参考“drivers\block\xd.c”和“drivers\block\z2ram.c”两个文件。看一个驱动程序从“入口函数”开始看。处理函数>>放到队列>>放到gendisk其他属性()>>gengdisk最终效果,文件系统通过处理函数来实现相应的功能.块设备驱动框架之前分析把“文件读写”转成“扇区读写”,对“扇区的...原创 2018-05-20 17:14:08 · 809 阅读 · 0 评论 -
USB驱动(mouse as key)
USB 驱动程序框架:app:-------------------------------------------USB 设备驱动程序 // 知道数据含义内核 --------------------------------------USB 总线驱动程序 // 1. 识别, 2. 找到匹配的设备驱动, 3. 提供 USB读写函数 (它不知道数据含...原创 2018-05-20 21:59:14 · 585 阅读 · 0 评论