Cortex-A8处理器编程(上)

本文介绍了Cortex-A8处理器的编程,包括ARM编程语言的使用、处理器模式和状态、存储器组织以及寻址方式。Cortex-A8有ARM、Thumb和ThumbEE三种状态,支持数据类型的对齐和多种存储格式。此外,文章还详细讲解了处理器的寄存器组、异常处理机制以及寻址方式,如寄存器寻址、立即寻址和寄存器移位寻址等。
摘要由CSDN通过智能技术生成

3.1 ARM编程简介

在嵌入式系统开发中,目前使用的主要编程语言是C和汇编。很多地方,例如开机时硬件系统的初始化,包括CPU状态的设定、中断的使能、主频的设定、以及RAM的控制参数及初始化等都使用汇编语言。汇编语言是和CPU的指令集紧密相连的,作为涉及底层的嵌入式系统开发,汇编语言编程不可或缺的重要方法。

ARM嵌入式系统程序设计和所使用的ARM微处理器资源密切相关。只有了解ARM微处理器的工作模式、状态、存储器组织、寻址方式,并且掌握ARM的指令系统,才有可能写出适用的ARM程序。


3.2 Cortex-A8处理器模式和状态

一、处理器模式



二、处理器状态

Cortex-A8处理器有3种操作状态,这些状态由CPSR寄存器的T位和J位控制。
 ARM状态:执行32位字对齐的ARM指令,T位和J位为0。
 Thumb状态:执行16位或32位半字对齐的Thumb2指令,T位为1,J位为0。
 ThumbEE状态:执行为动态产生目标而设计的16位或32位半字对齐的Thumb2指令集的变体。T位和J位为1。


处理器的操作状态可以在以下几种状态间转换:
 ARM状态和Thumb状态之间转换
   使用BL和BLX指令,并加载到PC。
 Thumb状态和ThumbEE状态之间转换
   使用ENTERX指令和LEAVEX指令。
   异常会导致处理器进入ARM状态或Thumb状态。一般情况,当退出异常处理时,处理器会恢复原来的T位和J位的值。


3.3 Cortex-A8存储器组织

一、数据类型

Cortex-A8支持以下数据类型:
1)双字,64位;2)字,32位;3)半字,16位;4)字节,8位。
    当这些数据类型为无符号数据时,为普通二进制格式,N位数据值代表一个非负整数(范围为0~2N-1);当这些数据类型为有符号数据时,为二进制补码格式,N位数据值代表一个整数(范围为-2N-1~2N-1-1)。
    为了达到最好的性能,数据必须按照以下方式对齐:
 以字为单位时,按4字节对齐;
 以半字为单位时,按2字节对齐;
 以字节为单位时,按1字节对齐。
    Cortex-A8处理器支持混合大小端格式和非对齐数据访问。


二、存储格式

Cortex-A8处理器支

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值