![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux驱动
文章平均质量分 60
sinat_35346588
这个作者很懒,什么都没留下…
展开
-
Linux driver--知识点总结
1.内核的大部分配置文件都在arch/arm/configs/xxx_defconfig:默认配置文件的位置。 2.配置内核的方式make ARCH=arm XXX_defconfig 3.编译内核的方式:make ARCH=arm zImage,其中如果ARCH这个环境变量已经导出过,可以不用再次设置。 4.编译模块的方式:make ARCH=arm modules 5.编译好的内核,...原创 2018-09-22 11:43:30 · 265 阅读 · 0 评论 -
Makefile简易教程
obj-$(CONFIG_TTYPRINK) += ttyprink.o 这里的CONFIG_TTYPRINK就是前面的Kconfig的配置文件中定义的信息。 在Makefile中,除obj-以外,还有lib-形式生成lib库,及hostprogs-生成主机程序。 2.针对多文件的模块: obj-$(xxxx) += exit.o exit-y += xxx.o xxx.o xxx.o ...原创 2018-09-22 11:55:44 · 139 阅读 · 0 评论 -
Kconfig的简易教程
1.大多数的配置文件形式: config DEVPORT ---配置选项 532 bool "/dev/port character device" ---配置的指定类型 533 depends on ISA || PCI ----配置的依赖关系 534 default y ---配置的默认属性 535 help ----配置的帮助...原创 2018-09-22 12:30:51 · 1013 阅读 · 0 评论 -
驱动--小知识点
可以通过unsigned int iminor(struct inode *inode); unsigned int imajor (struct inode * inode);从inode结构中获取主次设备号。并且可以在/proc/device下面显示 列举一下常规的位置: /sys/module和/proc/module :查看相应的模块信息 /proc/kallsyms :查看内核的...原创 2018-09-22 13:47:25 · 165 阅读 · 0 评论 -
字符驱动的API总结
由设备号获取主次设备号: MAJOR(dev_t dev) MINOR(dev_t dev) 字符驱动的常用的API: void cdev_init(struct cdev *, struct file_operations *) struct cdev * cdev_alloc(void) void cdev_put(struct cdev *p) int cdev_add(str...原创 2018-09-22 14:06:38 · 135 阅读 · 0 评论 -
linux driver-并发问题的研究
1.解决乱序的问题:通过barrier()编译屏蔽进行。 2.读写屏障:mb() ; rmb() ; wmb();以及作用于寄存器的__iormb(); __iowmb() ;读写寄存器readl_relaxed()和readl()的区别,主要在于有没有屏障。 --------------------------- 中断屏蔽:--使用方式 local_irq_diable() xxxx...原创 2018-09-22 15:02:48 · 174 阅读 · 0 评论