![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式开发
文章平均质量分 79
lixuehui848
这个作者很懒,什么都没留下…
展开
-
USB包格式解析
数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定)包:由域构成的包有四种类型,分别是令牌包、数据包、握手包和特殊包,前面三种是重要的包,不同的包的域结构不同事务:分别有IN事务、OUT事务和SE...转载 2020-03-30 13:06:58 · 734 阅读 · 0 评论 -
android input子系统之三:事件层
四 事件层struct input_dev物理输入设备的基本数据结构,包含设备相关的一些信息structinput_handler 事件处理结构体,定义怎么处理事件的逻辑struct input_handle用来创建input_dev 和 input_handler 之间关系的结构体input_handler详细定义如下:struct input_handler {原创 2016-01-22 16:04:25 · 804 阅读 · 0 评论 -
android input子系统之二:核心层
本系列文章——三篇文章介绍linux系统的input子系统,分为驱动层,input核心层和input事件层。以sensor调试为主线介绍,从驱动产生事件,上报事件,到事件处理,流程清晰可读。结合源代码,容易理解。原创 2016-01-22 15:58:25 · 626 阅读 · 0 评论 -
android input子系统之一:驱动部分
本系列文章——三篇文章介绍linux系统的input子系统,分为驱动层,input核心层和input事件层。以sensor调试为主线介绍,从驱动产生事件,上报事件,到事件处理,流程清晰可读。结合源代码,容易理解。原创 2016-01-22 15:52:16 · 1085 阅读 · 0 评论 -
Linux系统启动之——u-boot启动
操作系统是人机交互的接口,其管理着计算机的硬件,例如内存,CUP,外设等。系统上电后,操作系统是怎么启动的呢?在嵌入式中,操作系统是由bootloader引导起来的,linux在嵌入式上应用时,其bootloader是u-boot。这篇文章讲述linux系统的启动,和大家一起学习学习。 U-boot的启动分成两个阶段:stage1和stage2。Stage1使用汇编语言编写,通原创 2013-12-08 10:36:25 · 945 阅读 · 0 评论 -
链表逆转的一个算法
今天想到一个链表逆转的简单算法,向大家介绍一下。链表的定义大家都十分熟悉,我们不再累述。链表分文单链表和双向链表,谈到链表逆转,这里仅仅需要考虑单链表即可。因为双向链表的每个节点都有指向其前驱和后继的指针,用不到对其逆转。如下图表示的单链表:只需要额外定义三个临时节点指针,分别为crrt, pre和tail, crrt表示当前节点指针,pre表示前节点的前驱节点,tail表示当前节点后原创 2012-12-22 13:53:15 · 1724 阅读 · 0 评论 -
编译与链接之三——动态链接
链接分为静态链接和动态链接,前面我们介绍了静态链接,本文将介绍动态链接。动态链接的基本原理与静态链接其实一样,也是把各个目标文件连接到一起生生一个可执行的文件。只是链接时机不同而已。动态链接的思想与优点动态链接是什么呢,简单的说,不把各个模块连接在一起,而分成各自独立的模块,在运行之前不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。也就是把链接的过程推迟到了运行时再链接,这原创 2012-11-18 15:34:15 · 520 阅读 · 0 评论 -
编译与连接之二——静态链接连接
连接通过编译过程,一个源文件(.c)就生成了一个对应的目标文件(.o)。一个工程,不可能是一个文件组成,从几十个到几百个,大的项目工程有成千上完个文件,这些文件通过编译,只是从源文件变成了目标文件,但是这些文件不能单独运行,各个文件(模块)之间存在一定的关系,要使工程正常工作,各个目标文件和库必须连接在一起,形成一个最终的可执行的文件。下面就详细介绍链接工作的过程。链接过程简单描述链接过程分为静态原创 2012-10-27 19:00:54 · 500 阅读 · 0 评论 -
volatile浅谈
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。volatile变量的几种情况:1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3转载 2012-05-10 23:35:41 · 313 阅读 · 0 评论