摘要: 1.问题产生的原因: a.目前是多核架构,smp,会导致多个核,操作同一个数据,出现数据不一致的情况 b.单核,由于中断的存在,也有可能造成数据不一致 c.cpu代码,在编译可能乱序,不是人为的顺序执行,在执行的时候,也可能乱序,导致数据不同步 2.问题的存在,目前提出来的解决办法。 a.开关中断, 阅读全文
posted @ 2022-05-19 17:12 高山小路 阅读(42) 评论(0) 推荐(0)
摘要: 1.前面2篇文章,都是内存设备,没有操作具体的硬件设备,对于驱动开发来说,没有操作硬件的驱动,那都是假驱动。 2.设置驱动和设备不分开,也不符合linux驱动框架,对于总线,设备,驱动框架来说,必须分开。 3.对于平台设备,都是基于dts,来创建平台性的设备,用户dts里面的compatible和驱 阅读全文
posted @ 2022-05-19 16:41 高山小路 阅读(25) 评论(0) 推荐(0)
摘要: 前面一篇文章,自己记录了字符设备开发。实现内存数据的读写,但是有个问题,设备的创建,需要依靠手动的mknod来创建,有没有改进,直接加载驱动, 就可以完成设备的自动创建了,这里增加了class_create的创建,实现驱动的加载和设备创建,同步触发。对应平台性的设备来说,这样的创建,也是可以接受的。 阅读全文
posted @ 2022-05-19 15:56 高山小路 阅读(30) 评论(0) 推荐(0)
摘要: 本驱动笔记,都是记录宋宝华的驱动书籍,代码也是参考他的,撰写文章,主要记录学习心得 1.字符驱动,作者用globalmem这样的例子来讲解驱动。 问题1.insmod globalmem.ko驱动。如何和mknod 创建的设备绑定的。 答:通过主设备号来绑定。 问题2.insmod globalme 阅读全文
posted @ 2022-05-19 13:50 高山小路 阅读(79) 评论(0) 推荐(0)