当前位置:文档之家› 1 - 系统及开发环境介绍

1 - 系统及开发环境介绍

Irq 0 to 31 Clear-Enable Register Irq 0 to 31 Set-Pending Register Irq 0 to 31 Clear-Pending Register Irq 0 to 3 Priority Register
Type
R/W
R/W R/W R/W R/W
System
system segment including the PPB, XN
Note 1 : Event entry points (vectors), system control, and configuration 都定义在物理地址 Note 2 : 穿过0.5G地址边界的多字节访问是UNPREDICTABLE的
名字
ACTLR CPUID ICSR VTOR AIRCR SCR CCR SHPR2 SHPR3 SHCSR DFSR
功能
Auxiliary Control Register CPUID Register Interrupt Control State Register Vector Table Offset Register Application Interrupt/Reset Control Register System Control Register (optional) Configuration and Control Register System Handler Priority Register 2 System Handler Priority Register 3 System Handler Control and State Register DebugFault Status Register (Debug Extension only)
Reset Value
0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0xE000E404
0xE000E408
NVIC_IPR1
NVIC_IPR2
Irq 4 to 7 Priority Register
Irq 8 to 11 Priority Register
SP’ xPSR ReturnAddress LR
H
在异常返回时加载到PC中
r12
r3 r2
r1
SP r0 L 13
Cortex-M0 地址映射
0x00000000 – 0x1FFFFFFF 0x20000000 – 0x3FFFFFFF
Code SRAM Peripheral
Typically ROM or flash memory, WT Typically used for on-chip RAM, WBWA
拥有32-bit 运算能力,16-bit 芯片面积和功耗 可以将M0用于超低功耗的场合 Binary and tools 向上和 ARM Cortex-M3 处理器兼容
Reference from ARM
4
Cortex-M0 性能
Reference from ARM
5
Cortex 微处理器编程标准
7
Program Register
所有的寄存器都是 32-bit 的
13 个通用目的寄存器
寄存器 r0 – r7 (Low registers) 寄存器 r8 – r12 (High registers)
3 个特别用途寄存器
r13 - Stack Pointer (SP) r14 - Link Register (LR) r15 - Program Counter (PC)
状态寄存器 (xPSR)
APSR : 可以由某些指令设定标志位 IPSR : 在异常进入和退出的过程中被写.
在thread 模式, 它的值是 0 在handler模式,它的值是 异常号
EPSR : 包含T-bit ,不能由指令正常读写
9
异常模型
每个异常有异常号, 优先级和向量地址
向量表基地址固定在0x00000000 地址 0 的内容用来初始化SP_main(MSP)寄存器 Word 1(地址0x00000004) 是异常号 1 的处理函数的起 始地址, 以此类推
17
System Control Space – cont.
Application Interrupt and Reset Control Register (AIRCR)
18
System timer - SysTick
SysTick 提供一个简单的24-bit,写清零, 递减, 自装载计数器. 使能之后,定时器开始倒数,到0之后 COUNTFLAG 状态位将被置. 参考时钟可以是CPU 时钟或者外部时钟.
20
NVIC – cont.
NVIC registers
Address
0xE000E100
0xE000E180 0xE000E200 0xE000E280 0xE000E400
Name
NVIC_ISER
NVIC_ICER NVIC_ISPR NVIC_ICPR NVIC_IPR0
Function
Irq 0 to 31 Set-Enable Register
属性
R/W RO R/W RO R/W R/W RO R/W R/W R/W R/W
复位值
IMPLEMENTATION DEFINED IMPLEMENTATION DEFINED 0x00000000 0x00000000 bits [10:8] = ’000’ bits [4,2,1] = ’000’ bits [9,3] = ’1’ SBZ SBZ 0x00000000 0x00000000
支持 byte (8-bit), halfword (16-bit) 和 word (32-bit), 每种类型 的数据在访问的时候要求地址对齐. 处理器有两种模式:Thread 和 Handler.
总是在privilege模式 支持硬件上下文切换 (ISR周围不需要汇编代码).
内嵌定时器(SysTick)和中断控制器 (NVIC) I/O是Memory mapped的 32-bit 寻址空间 ARMv6-M不支持虚拟地址. 取指令总是halfword对齐
R/W
R/W
0x00000000
0x00000000
0xE000E40C
0xE000E410 0xE000E414 0xE000E418 0xE000E41C
NVIC_IPR3
NVIC_IPR4 NVIC_IPR5 NVIC_IPR6 NVIC_IPR7
Irq 12 to 15 Priority Register
0x00000000 0x00000000 0x00000000 0x00000000
21
System Rgement
NUC1xx支持3种操作模式
Normal 模式 Idle 模式(__WFI();) Power down 模式
Power down
关闭
Sytem clock:包括 CPUCLK, HCLKx, PCLKx, are all OFF。 一切以HCLK和PCLK为clock source的IP都被disable 12M, 22M 关闭PLL 关闭Flash memory
Stack registers
Main stack – SP_main
Thread 和 Handler 模式都可以用 在系统复位的时候被初始化, 从地址0处加载
Process stack – SP_process
只在Thread模式使用(CONTROL/EXC_RETURN).
8
Program Register – cont.
19
Nested Vectored Interrupt Controller (NVIC)
最多支持32个外部中断 (IRQ[31:0]) 可以是levelsensitive 或者 pulse-sensitive. NVIC 中断可以enabled/disabled, pended/unpended 并且可以通过设定NVIC寄存器来区分优 先次序
0xE000E000 - 0xE000E00F 0xE000E010 - 0xE000E0FF 0xE000E100 - 0xE000ECFF 0xE000ED00 - 0xE000ED8F 0xE000EDF0 - 0xE000EEFF
Auxiliary Control register
System Timer
14
Keil设定
Example for building execution binary
15
System Control Space (SCS)
由下面几部分组成
CPUID 空间. 系统控制, 配置和状态. SysTick 系统定时器 Nested Vectored Interrupt Controller (NVIC)
系统及开发环境介绍
2010, 3
1
ARM 架构发展路线图
Reference from ARM
2
Cortex-M 处理器发展路线图
Reference from ARM
3
Cortex-M0 处理器
ARM有史以来最低功耗的处理器
只有ARM7TDMI-S™ 处理器1/3的面积和功耗 最小配置, 180ULL 工艺只有12K gates count,47 μA/MHz功耗 运算能力可以达到 0.9 DMIPS/MHz
Reference from ARM
6
Cortex-M0 架构概述
ARMv6-M (ARMv7-M的子集, 向上兼容)
只支持Thumb 指令集. 不需要Interworking 代码. 总共有56 条指令. 6条是32-bit长, 其它的都是16-bit长
相关主题