![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式linux
文章平均质量分 80
南山墨客
这个作者很懒,什么都没留下…
展开
-
linux的阻塞非阻塞文件读写
1.概述 对于设备文件,我们可以用阻塞和非阻塞的方式读写。在阻塞方式下,若设备不可读写,则该进程休眠,释放CPU资源;若设备文件可读写,则对设备文件进行读写。在非阻塞方式下,若设备不可读写,进程放弃读写,继续向下执行;若设备文件可读写,则对设备文件进行读写。2.使用及实现原理 使用: 要使用非阻塞方式读写设备文件,则在调用open()函数时,添加O_NO...原创 2018-08-09 10:38:07 · 7774 阅读 · 0 评论 -
linux定时器的使用
1.概述 定时器(Timer)本来是硬件资源,但是由linux接管了所有的CPU资源,并对这些资源进行了抽象,那么我们对Timer的使用就应该按照linux的要求,使用linux提供的接口来使用Timer。2.使用初始化static struct timer_list buttons_timer;//内核定时器结构体static int Timer_init(){ ...原创 2018-08-09 11:48:13 · 248 阅读 · 0 评论 -
linux输入子系统
1.概述 linux的input子系统用来管理所有的输入类设备,对所有的输入类设备进行抽象,以便更简单的编写输入类设备的驱动程序。2.应用/*向内核注册一个只有4键的小键盘*/static int keyboard_init(){ /* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_device...原创 2018-08-10 10:51:46 · 300 阅读 · 0 评论 -
嵌入式linux中断浅解
本文简单理一下嵌入式linux对于ARM系列SoC的中断管理。 我将嵌入式linux的中断分为了3个级别,分别是: 1. CPU级: 嵌入式linux只使用了ARM的IRQ中断,当发生一个IRQ时,CPU会自动执行0x00000018(低端向量模式)或0xffff0018(高端向量模式)处的指令,此处一般放置了一条跳转指令b add...原创 2018-08-07 16:03:20 · 907 阅读 · 0 评论 -
对linux源码树中arch/arm/目录的理解
1.概述 linux是可以支持很多平台的,比如x86、MIPS、ARM,linux要支持这些不同的架构,就必须有各种架构相关的模块代码,这些不同模块代码的实现了对架构硬件资源的管理,而linux内核本身只关注进程调度、内存管理、网络管理、文件系统、设备驱动等内容,内核实现上述功能需要的数据结构,由arch/xxx目录下的程序来构造和注册到内核,arch/xxx目录下的程序使用标准的...原创 2018-08-07 17:51:29 · 7546 阅读 · 2 评论 -
linux的同步和异步
1.同步 笔者在本文只分析poll同步机制,首先看poll函数的用法: #include <poll.h> int poll(struct pollfd fds[], nfds_t nfds, int timeout); struct pollfd { int fd; /*文件描述符*/ short ev...原创 2018-08-08 15:50:04 · 2125 阅读 · 0 评论