2017年2月17日

摘要: 1.概述 内核定时器是内核用来控制在未来某个时间点,调度执行某个函数的一种机制。 2.相关数据结构 struct timer_list 3.内核定时器函数 - DEFINE_TIMER:静态定义并初始化定时器 - TIMER_INITIALIZER(_function, _expires, _dat 阅读全文
posted @ 2017-02-17 15:20 Mr_ox 阅读(131) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 Linux中的工作队列机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程,并可以根据当前系统cpu的个数创建线程的数量。工作队列是一中将工作推后执行的形式。把工作推后,交由一个内核线程执行。允许被重新调度,甚至是睡眠。共分为三种形式: - 共享工作队列:Lin 阅读全文
posted @ 2017-02-17 11:37 Mr_ox 阅读(331) 评论(0) 推荐(0) 编辑
 
摘要: 1.简介 等待队列实现在事件上的条件等待:希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制权。可用于: - 中断处理 - 进程同步 - 定时 2.等待队列头数据结构 3.进程状态 - TASK_TUNNING:可运行状态 - TASK_INTERRUPTIBLE:可中断睡眠状态 - TAS 阅读全文
posted @ 2017-02-17 11:03 Mr_ox 阅读(178) 评论(0) 推荐(0) 编辑
 
摘要: 1.中断概念 中断时一种电信号,由硬件设备产生,然后再由中断控制器向处理器发送相应的信号。处理器一经检测到该信号,便中断自己当前正在处理的工作,转而去处理中断。此后,处理器会通知操作系统已经产生中断。不同的设备,对应的中断不同,而每个中断都通过一个唯一的数字标识,这些值通常被称为中断请求线。 2.L 阅读全文
posted @ 2017-02-17 11:03 Mr_ox 阅读(190) 评论(0) 推荐(0) 编辑

2017年2月16日

摘要: 1.原子操作 - 概念:该操作绝不会在执行完毕前被任何任务或事件打断 - 使用注意:在原有的字符设备驱动的open函数中增加原子操作判断相关的代码,在关闭函数中释放原子操作。其余不变。也可以放在write中 - 相关api省略 2.信号量 - 概念:信号量在创建时初始化,表示同时有几个任务访问该信号 阅读全文
posted @ 2017-02-16 21:06 Mr_ox 阅读(82) 评论(0) 推荐(0) 编辑
 
摘要: 1.硬件原理图 由图可知,led1,led2,led3,led4,分别对应GPB5,GPB6,GPB7,GPB8,由s3c2440芯片手册可得到如下图所示,分别配置GPBCON和GPBDAT即可 2.open接口 int first_chrdev_open(struct inode *inode, 阅读全文
posted @ 2017-02-16 19:50 Mr_ox 阅读(174) 评论(0) 推荐(0) 编辑
 
摘要: 1.Linux设备驱动特点 在Linux系统中,一切硬件、软件设备都视为文件。 设备驱动程序功能: - 初始化和释放设备 - 把数据从内核传递到硬件和从硬件读取数据 - 读取应用程序传送给设备文件的数据和回送应用程序请求的数据 - 检测和处理设备出现的错误 2.Linux系统3大类设备特点 - 字符 阅读全文
posted @ 2017-02-16 18:22 Mr_ox 阅读(127) 评论(0) 推荐(0) 编辑
 
摘要: 1.模块加载程序结构 - 模块加载函数: static int _init init_function(void); module_init(init_function); - 模块卸载函数: static void _exit exit_function(void); module_exit(ex 阅读全文
posted @ 2017-02-16 16:04 Mr_ox 阅读(111) 评论(0) 推荐(0) 编辑
 
摘要: 1.常用命令 - pwd:显示当前工作目录的绝对路径 - cd:改变工作目录 - ls:查看文件或目录 - mkdir:创建一个目录 - cp:给出的文件或目录复制到另一文件或目录中 - mv:为文件或目录改名或移动文件位置 - rm:删除文件 - chmod:改变文件或目录的访问权限 - find 阅读全文
posted @ 2017-02-16 15:42 Mr_ox 阅读(89) 评论(0) 推荐(0) 编辑

2017年2月15日

摘要: 1.线性表:存储空间连续 - 创建:表头,数据空间 - 销毁 - 增 - 删 - 改 - 查 2.链表: - 创建 - 销毁 - 增:插入操作,分为头插和尾插 - 删:需要使用两个指针进行辅助操作,遍历找到后面的元素,完成交接后删除 - 改 - 查 3.双向链表:在链表基础上增加前向指针,删除时不必 阅读全文
posted @ 2017-02-15 09:45 Mr_ox 阅读(78) 评论(0) 推荐(0) 编辑