关闭

ARM寄存器

一、ARM工作状态下的寄存器组织 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态寄存器都是可访问的。 通用寄存器 通用寄存器包括R0~R15,可以分为3类: (1)未分组寄存器R0~...
阅读(40) 评论(0)

ARM 指令集版本和ARM 版本

常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表达。且在GCC编译中,常常要用到 -march, -mcpu等。他们分别表达什么涵义呢?Sam自己也不很清楚,只是大概有个模糊的概念。今天就仔细研究一下。 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,第一个ARM原...
阅读(42) 评论(0)

分支预测(Branch Prediction)

分支预测(Branch Prediction):   从P5时代开始的一种先进的,解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由CPU来判断程序分支的进行方向,能够加快运算速度。 当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕...
阅读(25) 评论(0)

ARM指令集与异常处理

一、ARM 微处理器的指令的分类与格式    ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中, 而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、 程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类。下面是ARM微处理器的基本指令。 助记...
阅读(37) 评论(0)

ARM指令集 VS Thumb指令集

1 thumb指令集概述 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集。 Thumb指令集是ARM指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。Thumb不是一个完整的体系结构,不能指望处...
阅读(37) 评论(0)

单发射与多发射

1流水线(pipeline)技术:是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流...
阅读(61) 评论(0)

C/汇编的混合编程

C和汇编的混合编程优势 C和汇编很容易的混合     可实现在C中无法实现的处理器功能     使用新的或不支持的指令     产生更高效的代码 直接链接变量和程序     确定符合程序调用规范     输入/输出相关的符号 编译器也可保留内嵌汇编     大多数arm指令都可实现     内嵌汇编代码可由编译器的优化器来传递   ATPCS(arm/thumb程序调用规范...
阅读(98) 评论(0)

ARM—I2C

S5PC100的RISC微处理器支持多主机I2C总线串行接口。一个专用的串行数据线(SDA)和一个串行时钟线(SCL)在总线主机和连接到I2C总线的外围设备之间传递信息。SDA和SCL线是双向的。   在多主机i2c总线模式中,多个微处理器发送到从机设备或从从机设备接收。主机S5PC100启动和终止一个在I2C总线上的数据传输。S5PC100上的I2C总线使用标准总线仲裁程序。  ...
阅读(32) 评论(0)

Android源码目录结构详解

Android 2.1 |-- Makefile |-- bionic                        (bionic C库) |-- bootable                (启动引导相关代码) |-- build                        (存放系统编译规则及generic等基础开发包配置) |-- cts                ...
阅读(90) 评论(0)

数据结构笔记

第一章 概  论 1.数据:信息的载体,能被计算机识别、存储和加工处理。 2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。 3.数据结构:数据之间的相互关系,即数据的组织形式。 它包括:1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机; 2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。 3)数据的运算,定...
阅读(34) 评论(0)

Linux下多进程编程

什么是一个进程?进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务。多进程编程的主要内容包括进程控制和进程间通信...
阅读(89) 评论(0)

进程上下文VS中断上下文

内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。...
阅读(29) 评论(0)

调试器GDB

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。它是一种强大的命令行调试工具。...
阅读(34) 评论(0)

内存空间的各个段

1.函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。 全局变量或静态变量,放在数据段, 局部变量放在栈中, 用new产生的对象放在堆中, 内存分为4段,栈区,堆区,代码区,全局变量区 BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 BSS是英文Block Started by ...
阅读(28) 评论(0)

数据结构

一、线性表 A.顺序表 数据结构设计 typedef struct {  DATATYPE buf[MAX];  int n; }SEQLIST; 1.插入元素(seq)  seq->buf[seq->n] = data; 2.按位置插入(seq,post,data)  mov_n = seq->n + 1 - post + 1  for(i = seq->n; mov_n...
阅读(31) 评论(0)

C语言排序算法总结

#define的使用...
阅读(30) 评论(0)

#define的使用

#define的使用...
阅读(33) 评论(0)

算法复杂度

时间复杂度  (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。  (2)时间复杂度 在刚才...
阅读(24) 评论(0)

C语言概念总结

C语言概念总结...
阅读(38) 评论(0)

C语言的关键字

C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。...
阅读(81) 评论(0)
24条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1260次
    • 积分:240
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档