linux device model kobject kset学习笔记

这份资料是本人利用业余时间学习Linux的一个总结。学习Linux的知识点相当零碎,怕忘记,所以随时做好笔记。学Linux的主要原因是想彻底搞透嵌入式领域底层,以前玩过几种单片机和RTOS,也练习写过微型调度器和微型FAT,主要是为了解整个RTOS和FAT32的工作过程,相当于给学习Linux做了些铺垫吧,学习Linux是一个漫长的过程。该笔记因时间仓促,难免有错误之处,还希望大家给予批评指正。(注:该笔记综合参考了LDD3和设备驱动开发详解)几个重要的概念:Linux设备模型就是一栋规模宏大的建筑,为了构建它,需要基本的建筑材料钢筋:kobject、若干钢筋组成的钢架结构:kset,还...

早期博文 2019-10-07 PM 18℃ 0条

linux 等待队列

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型的域作为"连接件"。它通过一个双链表和把等待tast的头,和等待的进程列表链接起来。从上图可以清晰看到。所以我们知道,如果要实现一个等待队列,首先要有两个部分。队列头和队列项。下面看他们的数据结构。view plaincopyprint? struct list_head { struct ...

早期博文 2019-10-07 PM 13℃ 0条

FirePrime RK3128底板原理图简要分析

原始博文链接: http://chinaunix.net/uid-22547469-id-5172439.htmlFirePrime_Baseboard_SCH_v10.pdf本文是笔者根据fireprime的底板电路图做了一个简单的梳理,一方面是学习prime的硬件设计,另一方面熟悉一下资源,也好在项目中使用起来。难免有疏漏之处,还请大家不要吝啬。P4,电源输入电路U10用来低压检测,也就是F1不焊接的情况,当输入电压高时,U9起到LDO的作用,输出5V,一旦DC降低于5.5V左右,U10输出低电平导致Q1导通,此时U9已不能正常工作,但DC_5V仍能保持接近5V输出。但实际焊接仅仅有...

早期博文 2019-10-07 AM 20℃ 0条

Widora开源硬件的由来

打小就是个电子爱好者,有一些无线电情怀,玩电子这些年,从模拟到数字,从单片机到Linux,越难的技术就越想掌控,技术癌附体~~个人认为软硬应该是相辅相成,不可分割的。所以这几年有个打造廉价、小巧、极致、跑Linux的开源硬件平台的想法。带着这个想法我试用过不少板子,例如Nano Pi、Fire prime、Beaglebone black、Raspberry Pi、Arduino等,这些平台确的确很棒,但在我眼里,始终离完美有那么一点距离。于是乎我有个很“大胆”的想法:干脆我自己打造一个极简开源硬件吧。也可能运气好,碰巧联发科在推广面向于IoT领域的MT7688芯片,当时看到芯片参数,眼...

随笔 2019-09-29 PM 56℃ 2条

用CXA20106制作2CM-400CM的超声波(已出实物)

用CXA20106制作2CM-400CM的超声波(已出实物)小弟最近玩超声波,最初参考网上最常用的CXA20106电路制作信号接收回路,发现以下典型问题:1.CXA20106接收增益很大,导致发射探头衍射的波会第一个到达接收电路,示意图如下由于发射和接收探头距离大约是5mm到10mm左右,导致发射探头输出8个超声波后,会由于衍射作用(很微弱)直接进入接收探头,导致接收到如图r1一样的回波,但这个波不是我们所需要的,我们需要测量的是t1到r2之间经过的时间。R1的存在也导致了cxa20106制作接收有很大盲区的问题(笔者按这种方法制作的盲区大约在10cm--25cm左右)。如果测量物体很近...

早期博文 2019-09-29 PM 20℃ 0条