摘要:
常用API: 1.struct clk *clk_get(struct device *dev, const char *id):从一个时钟list链表中以dev或者字符id名称查找一个时钟clk结构体 2.void clk_put(struct clk *clk):该函数与clk_get函数对应, 阅读全文
2017年2月17日
摘要:
1.总线驱动模型简介 - 在Linux2.6的设备驱动模型中,关心总线、设备和驱动三个实体。总线将设备和驱动绑定。 - 在嵌入式系统里,SOC系统中集成的独立的外设控制器、挂接在SOC内存空间的外设等却不依附于此类总线。基于该背景,Linux发明了一种虚拟总线,称为platform总线,相应的设备称 阅读全文
摘要:
1.概述 内核定时器是内核用来控制在未来某个时间点,调度执行某个函数的一种机制。 2.相关数据结构 struct timer_list 3.内核定时器函数 - DEFINE_TIMER:静态定义并初始化定时器 - TIMER_INITIALIZER(_function, _expires, _dat 阅读全文
摘要:
1.概述 Linux中的工作队列机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程,并可以根据当前系统cpu的个数创建线程的数量。工作队列是一中将工作推后执行的形式。把工作推后,交由一个内核线程执行。允许被重新调度,甚至是睡眠。共分为三种形式: - 共享工作队列:Lin 阅读全文
摘要:
1.简介 等待队列实现在事件上的条件等待:希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制权。可用于: - 中断处理 - 进程同步 - 定时 2.等待队列头数据结构 3.进程状态 - TASK_TUNNING:可运行状态 - TASK_INTERRUPTIBLE:可中断睡眠状态 - TAS 阅读全文
摘要:
1.中断概念 中断时一种电信号,由硬件设备产生,然后再由中断控制器向处理器发送相应的信号。处理器一经检测到该信号,便中断自己当前正在处理的工作,转而去处理中断。此后,处理器会通知操作系统已经产生中断。不同的设备,对应的中断不同,而每个中断都通过一个唯一的数字标识,这些值通常被称为中断请求线。 2.L 阅读全文