上一页 1 ··· 5 6 7 8 9 10 11 下一页

2012年4月5日

ARM详细指令集

摘要: 算术和逻辑指令ADC : 带进位的加法(Addition with Carry)ADC{条件}{S} <dest>, <op 1>, <op 2> dest = op_1 + op_2 + carryADC 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样就可以做比 32 位大的加法。下列例子将加两个 128 位的数。128 位结果: 寄存器 0、1、2、和 3第一个 128 位数: 寄存器 4、5、6、和 7第二个 128 位数: 寄存器 8、9、10、和 11。ADDS R0, R4, R8 ; 加... 阅读全文

posted @ 2012-04-05 13:33 n哖苡逅 阅读(10910) 评论(0) 推荐(2) 编辑

ARM寻址方式

摘要: 所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。ARM处理器的寻址方式目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。1. 立即数寻址也叫立即寻址,是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数叫做立即数,对应的寻址方式叫做立即寻址。例如:MOV R0,#64 ;R0 ← 64ADD R0, R0, #1 ; R0 ← R0 + 1SUB R0, R0, #0X3D ; R0 ← R0 – 0X3D在立即数寻址中,要求立即数以“ 阅读全文

posted @ 2012-04-05 13:10 n哖苡逅 阅读(11244) 评论(2) 推荐(3) 编辑

ARM寄存器

摘要: 一、ARM工作状态下的寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态寄存器都是可访问的。通用寄存器通用寄存器包括R0~R15,可以分为3类:(1)未分组寄存器R0~R7(2)分组寄存器R8~R14(3)程序计数器PC(R15)1.未分组寄存器R0~R7在所有运行模式下,未分组寄存器都指向同一个物理寄存器,它们未被系统用作特殊的用途.因此在中断或异常处理进行运行模式转换时,由于不 阅读全文

posted @ 2012-04-05 08:56 n哖苡逅 阅读(7085) 评论(1) 推荐(1) 编辑

2012年4月4日

ARM工作模式

摘要: 1. 工作状态从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:1)第一种为ARM状态,此时处理器执行32的字对齐ARM指令,绝大部分工作在此状态;2)第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM微处理器有32位的ARM指令集和16位的Thumb指令集,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。2. 存储器格式ARM体系结构将存储器看作从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,依 阅读全文

posted @ 2012-04-04 20:59 n哖苡逅 阅读(3020) 评论(0) 推荐(1) 编辑

ARM裸机开发环境搭建

摘要: 1. 安装Uboot到开发板“Hit any key to stop autoboot"使ARM不进入操作系统2. Jlink软件安装使用的是402d版本,对6410稳定。3. Jlink与ok6410连接转接板与开发板的缺口要一致,打开J-link GDB Server,检查:1)J-link:connected2)Target:ARM11...4. ARM汇编程序结构 AREA Example,CODE,READONLY ;声明代码段Example ENTRY ;标识程序入口 CODE32 ;声明32位ARM指令S... 阅读全文

posted @ 2012-04-04 19:01 n哖苡逅 阅读(2831) 评论(0) 推荐(0) 编辑

多线程程序设计

摘要: 一、线程理论基础1. 多线程线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT、Linux。2.为什么有了进程,还要引入线程呢?使用多线程到底有哪些好处?使用多线程的理由之一是:和进程相比,它是一种非常“节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是 阅读全文

posted @ 2012-04-04 14:14 n哖苡逅 阅读(3502) 评论(0) 推荐(0) 编辑

进程间通信程序设计2

摘要: 一、消息队列1. 定义unix早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列(也叫做报文队列)则克服了这些缺点。2. 发展消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式。进程可以向中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。3. 分类目前主要有两种类型的消息队列:POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用。4. 持续性:系统V消息队列是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除。5. 键值:消息队列的内核持续性要求每个消息队列都在系统范围内 阅读全文

posted @ 2012-04-04 09:33 n哖苡逅 阅读(646) 评论(0) 推荐(0) 编辑

2012年3月31日

进程间通信程序设计1

摘要: 一、进程间通讯概述1. 目的(为什么进程间需要通信?)1)数据传输:一个进程需要将它的数据发送给另一个进程。2)资源共享:多个进程之间共享同样的资源。3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。4)进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变。2. 发展Linux进程间通信(IPC)由以下几部分发展而来:1)UNIX进程间通信2)基于System V进程间通信3)POSIX进程间通信POSIX(Portable Operating System Interface) 阅读全文

posted @ 2012-03-31 21:25 n哖苡逅 阅读(2381) 评论(0) 推荐(2) 编辑

Linux man命令的使用方法

摘要: Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。Linux的man手册共有以下几个章节:1 Executable programs or shell commands2 System calls (functions provided by the kernel)3 Library calls (functions within program libraries)4 Special files (usually found in /dev)5 File formats and conventions eg /etc/passwd6 Games 阅读全文

posted @ 2012-03-31 18:45 n哖苡逅 阅读(475) 评论(0) 推荐(0) 编辑

void及void *的理解

摘要: 许多初学者对 C/C++语言中的 void 及 void 指针类型不甚理解,因此在使用上出现了一些错误。本文将对 void 关键字的深刻含义进行解说,并详述 void 及void指针类型的使用方法与技巧。 void 的含义 void 的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void 几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void 变量,让我们试着来定义:void a; 这行语句编译时会出错,提示“illegal use of type ’void’”。不过,即使 void a的编译不会出错,它也没有任何实际意义。 void 阅读全文

posted @ 2012-03-31 17:51 n哖苡逅 阅读(825) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 下一页

导航