ARM Cortex-M0系统简介

如何独自搭建一个CM0系统

在用keil调试开发时我们会见到如下界面
ARM Cortex-M0系统简介_第1张图片
下面则是一些具体含义

处理器模式

Thread mode模式用于执行应用软件。当复位结束时,处理器进入线程模式。

Handler mode异常处理模式。处理器在完成所有异常处理后返回到Thread模式。

Stack

处理器使用完整的降序堆栈。这意味着堆栈指针指示堆栈内存中最后一个堆叠项。当处理器将一个新项压入堆栈时,它会减少堆栈指针,然后将该项写入新的内存位置。处理器实现了两个栈,主栈和进程栈,它们有独立的栈指针副本

核心寄存器

ARM Cortex-M0系统简介_第2张图片

Name Description
R0-R12 R0-R12是用于数据操作的通用寄存器
MSP (R13) PSP (R13) 堆栈指针(SP)是寄存器R13。在线程模式下,控制寄存器指示要使用的堆栈指针,主堆栈指针(MSP)或进程堆栈指针(PSP)
LR (R14) 链路寄存器(LR)是寄存器R14。它存储子例程、函数调用和异常的返回信息
PC (R15) 程序计数器(PC)是寄存器R15。它包含当前程序地址
PSR 程序状态寄存器(PSR)包括:应用程序状态寄存器(APSR) •中断程序状态寄存器(IPSR)•执行程序状态寄存器(EPSR)
CONTROL 当处理器处于线程模式时,控制寄存器控制使用的堆栈

AHB-Lite 部分接口

AHB-Lite实现了高性能、高时钟频率系统所需的功能,包括

•突发传输
•单时钟边缘操作
•非三态实现
•宽数据总线配置,64、128、256、512和1024位。

最常见的AHB-Lite从机是内部内存设备、外部内存接口和高带宽外设。
虽然低带宽外设可以作为AHB-Lite从设备,但由于系统性能的原因,它们通常位于AMBA高级外设总线(APB)上。
这个高级总线和APB之间的桥接是通过一个AHB-Lite从机完成的,这个从机被称为APB桥接。

因为AHB-Lite是一个单一的主总线接口,所以如果需要一个多主系统,系统设计者必须包含一个组件来隔离所有主系统。为了实现这个隔离功能,可以将每个主服务器视为在自己的层上,因此组件必须创建一个多层互连,其中所有主服务器彼此隔离,但可以共享对从服务器的访问。从仲裁必须由多层互连组件执行

ARM Cortex-M0系统简介_第3张图片

Memory model

介绍Cortex-M0设备的内存映射和内存访问行为。处理器有一个固定的内存映射,提供高达4GB的可寻址内存。内存映射是:
ARM Cortex-M0系统简介_第4张图片
内存区域、类型和属性

内存映射被分割成多个区域。
每个区域都有一个已定义的内存类型,有些区域还有额外的内存属性。
内存类型和属性决定了访问该区域的行为。

内存类型有:
Normal
为了提高效率,处理器可以对事务重新排序,或者执行投机读操作
Device
处理器相对于设备或强顺序内存的其他事务保持事务顺序。
Strongly-ordered
处理器保持相对于所有其他事务的事务顺序。

ARM Cortex-M0系统简介_第5张图片
地址区域参数确定到主接口的布线。
当定义了多组地址区域参数时,每个主接口可以有多个非连续地址区域。然而,不同主机的地址区域接口不得重叠。mem_lo参数定义下限地址和mem_hi参数定义主接口的上限地址。

<slave_interface name="SI1">
<address_region interface="MI0" mem_lo="40000000" mem_hi="4fffffff" remapping="move"/>
<address_region interface="MI0" mem_lo="70000000" mem_hi="7fffffff" remapping="alias"/>
<address_region interface="MI1" mem_lo="80000000" mem_hi="9fffffff" remapping="none"/>
<address_region interface="MI2" mem_lo="a0000000" mem_hi="bfffffff" remapping="move"/>
<address_region interface="MI3" mem_lo="00000000" mem_hi="1fffffff" remapping="move"/>
<remap_region   interface="MI0" mem_lo="00000000" mem_hi="1fffffff" bit="0"/>
<remap_region   interface="MI1" mem_lo="50000000" mem_hi="5fffffff" bit="0"/>
<remap_region   interface="MI2" mem_lo="60000000" mem_hi="6fffffff" bit="1"/>
<remap_region   interface="MI3" mem_lo="c0000000" mem_hi="dfffffff" bit="0"/>
slave_interface>

重映射配置参数定义了支持地址重映射的主接口的行为。当相关的REMAP信号被设置时,它就会被激活。有两种类型的地址重映射行为:

•如果将重映射参数设置为alias或none,则在新地址空间中创建该区域的别名。

•如果将remapping参数设置为move,地址区域将从原地址空间中移除,主接口将出现在新地址空间中由remap区域定义的位置上

传输类型编码

ARM Cortex-M0系统简介_第6张图片
传输一次即为NONSEQ

突发编码

突发传输,一般也称为数据突发,其在通信领域中一般指在短时间内进行相对高带宽的数据传输
ARM Cortex-M0系统简介_第7张图片
ARM Cortex-M0系统简介_第8张图片
在cortexm0ds_logic中有如下关系
ARM Cortex-M0系统简介_第9张图片
即在传输和突发关系中有
空闲和非连续传输
突发传输只为单一传输

响应
ARM Cortex-M0系统简介_第10张图片

HREADY

HREADY信号用来扩展一次AHB传输的数据部分。当HREADY信号为低时表示传输将被扩展而当其为高时表示传输完成。

在官方的AHB-Lite中多为如下关系
ARM Cortex-M0系统简介_第11张图片
连续读写操作时序图↓
ARM Cortex-M0系统简介_第12张图片

你可能感兴趣的:(ARM杯,arm,嵌入式硬件,c语言,fpga开发)