自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (5)
  • 收藏
  • 关注

转载 USB包格式解析

数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定)包:由域构成的包有四种类型,分别是令牌包、数据包、握手包和特殊包,前面三种是重要的包,不同的包的域结构不同事务:分别有IN事务、OUT事务和SE...

2020-03-30 13:06:58 698

原创 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 796

原创 android input子系统之二:核心层

本系列文章——三篇文章介绍linux系统的input子系统,分为驱动层,input核心层和input事件层。以sensor调试为主线介绍,从驱动产生事件,上报事件,到事件处理,流程清晰可读。结合源代码,容易理解。

2016-01-22 15:58:25 619

原创 android input子系统之一:驱动部分

本系列文章——三篇文章介绍linux系统的input子系统,分为驱动层,input核心层和input事件层。以sensor调试为主线介绍,从驱动产生事件,上报事件,到事件处理,流程清晰可读。结合源代码,容易理解。

2016-01-22 15:52:16 1076

原创 Linux系统启动之——u-boot启动

操作系统是人机交互的接口,其管理着计算机的硬件,例如内存,CUP,外设等。系统上电后,操作系统是怎么启动的呢?在嵌入式中,操作系统是由bootloader引导起来的,linux在嵌入式上应用时,其bootloader是u-boot。这篇文章讲述linux系统的启动,和大家一起学习学习。         U-boot的启动分成两个阶段:stage1和stage2。Stage1使用汇编语言编写,通

2013-12-08 10:36:25 923

原创 链表逆转的一个算法

今天想到一个链表逆转的简单算法,向大家介绍一下。链表的定义大家都十分熟悉,我们不再累述。链表分文单链表和双向链表,谈到链表逆转,这里仅仅需要考虑单链表即可。因为双向链表的每个节点都有指向其前驱和后继的指针,用不到对其逆转。如下图表示的单链表:只需要额外定义三个临时节点指针,分别为crrt, pre和tail, crrt表示当前节点指针,pre表示前节点的前驱节点,tail表示当前节点后

2012-12-22 13:53:15 1703

原创 编译与链接之三——动态链接

链接分为静态链接和动态链接,前面我们介绍了静态链接,本文将介绍动态链接。动态链接的基本原理与静态链接其实一样,也是把各个目标文件连接到一起生生一个可执行的文件。只是链接时机不同而已。动态链接的思想与优点动态链接是什么呢,简单的说,不把各个模块连接在一起,而分成各自独立的模块,在运行之前不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。也就是把链接的过程推迟到了运行时再链接,这

2012-11-18 15:34:15 512

原创 编译与连接之二——静态链接连接

连接通过编译过程,一个源文件(.c)就生成了一个对应的目标文件(.o)。一个工程,不可能是一个文件组成,从几十个到几百个,大的项目工程有成千上完个文件,这些文件通过编译,只是从源文件变成了目标文件,但是这些文件不能单独运行,各个文件(模块)之间存在一定的关系,要使工程正常工作,各个目标文件和库必须连接在一起,形成一个最终的可执行的文件。下面就详细介绍链接工作的过程。链接过程简单描述链接过程分为静态

2012-10-27 19:00:54 492

原创 编译与连接——编译

一个项目为什么就可以按照其设计思想运行,一个小的程序为什么就可以正确执行,一个printf()函数为什么就能打印出我们想要的东西……这一切究竟是什么样的过程?计算机都是做了什么工作?有写过程序的都会说:编写的程序编译成二进制代码,然后连接成可执行文件,计算机运行的可执行文件啊。流程是这样,但是有没有对这个过程感觉好奇呢?这究竟是一个什么样的过程呢,C程序究竟怎么变成的二进制文件?目标文件究竟怎样变

2012-09-09 22:47:11 771

原创 字符串,字符指针和字符数组的sizeof和strlen

1 基本定义          字符是构成源程序的基本要素。每个程序都是由一系列组合在一起有意义的字符构成的。字符常量是以单引号括起来的字符表示的整数值,即该字符在计算机字符集中的整数值。字符指针,是指向字符的指针。字符串是作为一个整体对待的一系列字符串,可以包含字母,数字和各种专门的字符;注意字符串常量是用双引号标识的。字符数组,即存储字符的数组,也就是数组的存储类型为字符。

2012-08-12 18:34:16 1451

转载 linux内存管理之三——slab分配器

slab分配器所谓尺有所长,寸有所短。以页为最小单位分配内存对于内核管理系统物理内存来说的确比较方便,但内核自身最常使用的内存却往往是很小(远远小于一页)的内存块——比如存放文件描述符、进程描述符、虚拟内存区域描述符等行为所需的内存都不足一页。这些用来存放描述符的内存相比页面而言,就好比是面包屑与面包。一个整页中可以聚集多个这种这些小块内存;而且这些小块内存块也和面包屑一样频繁地生成/销毁。

2012-07-07 17:38:22 659

转载 linux系统启动时的内存操作之二——伙伴算法

1。算法原理Buddy System是一种经典的内存管理算法。在Unix和Linux操作系统中都有用到。其作用是减少存储空间中的空洞、减少碎片、增加利用率。避免外碎片的方法有两种:a.利用分页单元把一组非连续的空闲页框映射到非连续的线性地址区间。b.开发适当的技术来记录现存的空闲连续页框块的情况,以尽量避免为满足对小块的请求而把大块的空闲块进行分割。基于下面三种原因,内核选择第二种

2012-07-07 14:32:04 753

转载 linux系统启动时的内存操作(一)

1。pg0的位置和尺寸当系统刚刚启动时,在分页功能未打开前,线性地址和物理地址是一一对应的。刚开启分页功能时,pg0的内存地址是 在编译内核时定义好的,见arch\i386\kernel\vmlinux.lsd.S,大小为4096字节,启始地址紧跟内核在内存中物理地址。由于 内核保护模式代码启始位置为0x100000,所以pg0地址=0x100000+内核保护模式代码尺寸。对pg0的操作主

2012-06-14 23:26:04 1838

原创 linux实时性分析与改进

1 引言 嵌入式Linux(Embedded Linux)是指对桌面型 Linux经过小型化裁剪后,能够固化在容量只有几百K 字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合、为嵌入式应用程序提供操作系统服务的专用Linux 操作系统。“实时性”是指计算机系统在确定的时间内完成规定的功能,并能够对外部的异步事件做出正确响应的能力。实时性又可分为软实时(Soft Real-time

2012-06-06 21:49:35 4518

转载 菜鸟与大神成员的区别

这是转载分享别人写的文章,很不错的一篇文章。算是作为自己的收藏也罢,算是为方便其他人看到这篇文章,而增加的一篇文章来源也罢,总之这是不错的文章,我看完后想了很多。为什么自己技术不如人而在公司得不到重用,为什么自己成不了大神级的程序员,这篇文章分析的很透彻——没有把自己的思想融入程序!!“菜鸟”和“大神”刚刚走出就业的程序员,技术是刚刚起步的基点。那下面我们就聊一聊有关技术的东西。首先请您先

2012-06-03 21:52:06 973

转载 虚函数

二、虚函数在类的继承层次结构中,在不同的层次中可以出现同名同参(类型、个数)都相同的函数。在子类中调用父类的成员方法,可以使用子类对象调用时使用父类的作用域实现。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。举一个实例来说明使用虚函数与不使用虚函数的区别,基类和派生类中都有同名函数。不使用虚函数:Student.

2012-05-30 23:43:10 358

原创 多态 重载与覆盖

覆盖:在基类中定义了一个非虚拟函数,然后在派生类中又定义了一个同名同参数同返回类型的函数,这就是覆盖了。在派生类对象上直接调用这个函数名,只会调用派生类中的那个。有一下特点:1、覆盖时,方法名、参数列表、返回值都相同。2、子类方法不能缩小父类方法的访问权限。3、子类方法不能 抛出比父类方法更多的 异常(子类方法可以不抛出异常)4、被覆盖的方法不能为private,否则在其子类中

2012-05-30 23:39:57 429

转载 typede与define 区别

typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedefint INTEGER; 这以后就可用INTEGER来代替int作整型变量的类型说明了,如:  INTEGER a,b;

2012-05-27 13:26:00 705

转载 堆与栈

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。3、全局区(静态区)(static)—,全局

2012-05-25 22:36:20 268

翻译 struct内存对齐 详解

结构体的对齐在sizeof计算一个结构体的大小时,经常得到的值比结构体内部成员所占内存总和要大,这就是因为在结构体内部,成员在存储时有对齐的规则。结构体对齐指的是:编译器向结构体插入无用内存的能力,插入无用内存使得结构体成员以最佳方式对齐,从而得到更高的效能。当基本数据类型以字节地址(几倍于自身大小)存储时,很多处理器能够获得最佳效能。以下是几个例子:Struct x{

2012-05-23 23:30:56 751

原创 大端模式与小端模式

什么是大端模式和小端模式在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。大端模式(big-endian):对于非char类型,例如整型和长整型,低地址存放数据的的高字节,高地址存放的是数据的低地址。小端模式(little-endian):对于整型、长整型,低地址存放的是数据的低位,高地址存放的是数据的高位。

2012-05-19 22:12:12 875

原创 linux segmentation浅谈

Segmentation fault 是什么Segmentation fault 常常被称为SIGSEGV,是操作计算机软件时在特定条件下发生的错误。当程序试图使用不能使用的内存,或者以不正确的方式访问一块内存时产生的错误。Segmentation是一种内存管理和操作系统的保护机制。现在都是用页管理内存,一些操作系统虽然用页作为内存管理的主要策略,但是在逻辑层面仍然有segmentat

2012-05-16 23:20:44 450

原创 fork()函数

函数定义:  pid_t fork( void );  (pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中)  返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1  函数说明:  一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child

2012-05-14 23:56:17 377

原创 静态链接(库)与动态链接(库)

静态链接与动态链接静态链接是指:把库里面的函数在链接时就链接到执行文件中,即在可执行文件中嵌入了该文件所用到的库文件代码。在可执行文件运行时,链接的库文件代码会加载到内存。动态链接是指:库函数不会嵌入到可执行文件中,可执行文件获取库函数指针,在运行时才去链接库函数。简单的说,静态库和应用程序编译在一起,在任何情况下都能运行,而动态库是动态链接,顾名思义就是在应用程序启动的时候才会链接,

2012-05-12 22:51:24 510

转载 volatile浅谈

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。volatile变量的几种情况:1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3

2012-05-10 23:35:41 310

openjdk1.0

这是我另一资源的链接文件,本不想需要资源分呢,设定里面没有0。这个有可能没用,可以只下载那个资源安装测试

2018-05-14

openjdk1.7

orcale官网已经不维护jdk1.7及以下版本,为了给大家方便,特意把该资源放到网上。jdk1.7已经可以下载(csdn上其他人的资源中有),但是openjdk1.7不同于jdk1.7,openjdk1.7很难找到。所以拿出来供有需要的人用。注意最好两个资源一起下载。

2018-05-14

Xilinx ISE 9.2设计指南——实例

本文通过一个实例,来教授初学者使用Xilinx ISE 9.2 的使用。图形并茂,形象快捷。20分钟学会ISE 的使用

2009-07-04

evc程序(城市邮编)

本软件在evc下面开发的城市邮编系统,只是做的前台界面,后台数据库的连接本程序没做(否则太大,不容易上传);已经烧录到了开发板上运行,我在这里上传整个系统和开发源代码,希望对学习嵌入式的初学者有一点帮助。

2009-06-25

使用embedde visual c++做的画图板

本资源时使用embedde visual c++做的画图板,程序短小,很适合初学者查看学习。

2009-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除