我们先来看看程序映像。
通常,Cortex-M0处理器的程序映像时从地址0x00000000处开始的。
程序映像开始处时向量表,其中包含了异常的其实地址(向量),每个中断向量的地址都等于“异常号*4”,比如,外部IRQ0的异常类型为16,因此其向量地址为16*4=0x40。这些向量的最低位都被置为1,以表示使用thumb指令。向量表的大小由实际使用的中断个数决定。
向量表中包含了MSP的初始值,它存储在向量表的头四个字节。
复位时,处理器首先读取向量表的前两个字(8个字节),第一个字为MSP的初始值,第二个字为复位向量,它表示程序执行的起始地址。
例如,如果启动代码位于地址0x000000C0,需要在复位向量处写入这个地址,并且将地址的最低位置为1,以表明当前为thumb代码,因此,地址0x00000004处的值为0x000000C1。在取得复位向量值后,处理器开始从这个地址处执行程序代码。
复位流程也会初始化MSP,假设内存位于0x20000000~0x20007FFF,可以将0x20008000写在地址0x00000000处,这样就实现了把主栈指针置于内存的顶部。
如果要使用PSP,在配置CONTROL寄存器切换栈指针前,必须首先通过软件代码将其初始化,因为复位流程只初始化MSP,不初始化PSP。
关键字:Cortex-M0 体系结构 程序映像 启动流程
引用地址:
《Cortex-M0权威指南》之体系结构---程序映像和启动流程
推荐阅读最新更新时间:2024-03-16 15:26
《Cortex-M0权威指南》之绪论
1.1 为什么要选择Cortex-M0 为了满足现代超低功耗微控制器和混合信号设备的需要,ARM推出了Cortex-M0处理器。Cortex-M0在保持低功耗,延长电池寿命的同时,还提高了运行效率。 Cortex-M0优点 能耗效率高 代码密度高 使用了基于thumb2指令集, 代码密度高,节省flash空间。由于在整机功耗中,flash曹祖哦的占比很大,所以这样既节省了成本,也能降低功耗。 易于使用 适合使用C语言,被多编译器支持 指令集只有56个指令,学习汇编很简单 内置中断控制器,中断优先级控制方便 中断响应快,高优先级中断 高效的thumb指令集,较高的代
[单片机]
S3C2440 启动流程及汇编代码知识
1、框架 2、启动过程 大多数ARM芯片从0地址启动 NOR启动:NOR Flash 基地址为0,片内 RAM 地址为 0X4000,0000 CPU 读出Nor上第一个指令(前四个字节),执行 CPU继续读出其他指令执行 Nand启动:片内 4K RAM 基地址为0,Nor Flash 不可访问 2440硬件把Nand前4K内容复制到片内 RAM 然后 CPU 从0地址取出第一条指令 例如:(汇编代码) ldr sp, =4096 /* nand启动 */ ldr sp, =0x40000000+4096 /* nor启动 */ 3、几条常用汇编指令 LDR: 读内存 LDR R0, 读取地
[单片机]
谈ETC收费系统的体系结构及其特点
1 电子收费系统的体系结构及运行方式
电子收费系统的基本原理是使安装在车辆上的专门装置 (车上单元)通过无线信号与安装在收费口上的天线进行信息交换,根据该专门装置中保存的与收费相关的数据,可以即时算出并征收通行费用。费用征收不用现金,而使用电子货币式的系统(如IC卡)。一套完整的电子收费系统是由识别、通信等多个子系统和设备构成的。
整个电子收费系统运行的大致过程是:首先用户前往发行安装部门,申请安装车上单元,预缴通行费或设立事后付费账户,相应的信息被存入车上单元中,然后该车辆便可以上路行驶。在进入收费站时,车辆按规定限速通过电子收费车道。识别子系统识别出该车辆所属的类型。报告控制单元。通信子系统通过天线与车上单元进行双向通
[嵌入式]
SZICC取得ARM Cortex-M0技术授权 扶持物联网产业发展
国家集成电路设计深圳产业化基地(National IC Design Shenzhen Industrial Centre, SZICC)今日宣布取得ARM Cortex -M0技术授权,并将用于培育华南地区科技行业发展,助力新兴企业掌握物联网趋势。 基于这项协议,SZICC预计将可协助10家新兴企业,通过ARM Cortex-M0的技术,开发新产品。Cortex-M0来自ARM Cortex-M处理器产品线,该系列IP强调低功耗,主要应用范围包括家用电器、医疗监控、电子测量、照明设备以及功耗与汽车控制器件等各种广泛应用的智能传感器与智能控制系统。 SZICC主任兼中国半导体行业协会设计分会(CSIA-ICCAD)副
[单片机]
基于S3C4510B系统的启动流程及重映射的实现过程
近年来,随着32位芯片制造技术的不断完善,制造成本不断降低,国内的32位MCU市场也开始火爆起来。越来越多的工程师开始将开发目光从8位转移到32位微处理器上,基于32位MCU的产品如雨后春笋般层出不穷,应用领域涵盖了掌上设备、家用电器、网络设备、无线通信、工业控制等。在32位微控制芯片领域,ARM架构的芯片占了近70%的市场。本文中所用到的处理器正是Samsung公司生产的基于ARM架构的S3C4510B。 1 S3C4510B简介 S3C4510B是一款基于以太网系统的高性价比、高性能的16/32位RISC微处理器。芯片部集成了8KB的Cache/SRAM和Ethernet控制器,减少了整个系统的成本。片外可扩展ROM、Fl
[单片机]
S5PV210开发 -- 启动流程
讲完启动模式、烧写更新,接下来我们看一下启动流程。 参看:S5PV210开发 -- 烧写/启动模式 参看:S5PV210开发 -- 通过 SD 卡烧写 参看:S5PV210开发 -- 通过 DNW、fastboot 烧写 参看:DM368开发 -- Bootloader 开发(转毕设) 学习S5PV210 启动流程部分,需要查看芯片手册和相关的文档。 下载:相关文档 一、iROM启动方式简介 在讲烧写/启动模式的时候其实已经提到,S5PV210 采用 iROM 启动方式进行启动,支持从MoviNAND/iNand, MMC/SD Card ,pure Nand, eMMC, eSSD, UART and U
[单片机]
ARM体系结构下的程序设计经验
很多基于ARM的高效代码的程序设计策略都源于RISC 处理器。和很多 RISC 处理器一样,ARM 系列处理器的内存访问,也要求数据对齐,即存取 字(Word) 数据时要求四字节对齐,地址的bits ==0b00;存取 半字(Halfwords) 时要求两字节对齐,地址的bit ==0b0;存取 字节(Byte) 数据时要求该数据按其自然尺寸边界(Natural Size Boundary)定位。 ARM 编译程序通常将全局变量对齐到自然尺寸边界上,以便通过使用 LDR和 STR 指令有效地存取这些变量。这种内存访问方式与多数 CISC (Complex Instruction Set Computing)体系结构不同,在CISC体
[单片机]
虚拟仪器测试环境软件总线体系结构
虚拟仪器测试环境(Visual Instrument Test Environment, VITE)是支持IEEE 1226广域测试环境(A Broad Based Environment for Test)标准的开放式通用测试软件平台产品,它采用软总线(对象总线)的结构形式,利用对象模型驱动的原理,在各个对象模型组件之间,以及组件的使用者和提供者之间,建立透明的通信通道。其目的是实现自动测试系统测试程序集(Test Program Set)开发与硬件平台无关性,体现系统设计的方便性、灵活性、安全性和先进性。在软件信息模型的设计上,强调系统重构或重组,能够根据被测对象或测试流程的不同而动态地进行重组,降低系统重组的费用。 一
[嵌入式]