历史上的今天
返回首页

历史上的今天

今天是:2025年03月29日(星期六)

2020年03月29日 | 初始化ARM处理器各模式下的堆栈指针SP(R13)

2020-03-29 来源:eefocus

程序设计思路:通过状态寄存器与通用寄存器之间数据传输指令MRS/MSR实现,修改时应采用“读取-修改-写回”三个步骤来实现。每次只需修改相应的域即可,如本次程序只修改C控制域。同时应注意系统模式与用户模式共用SP,只需初始化其一即可。


程序代码如下:

(1)在GNU ARM开发环境下编程:

 

.equ _ISR_STARTADDRESS, 0xC7FF000   @设置栈的内存基地址

.equ UserStack, _ISR_STARTADDRESS   @用户模式堆栈地址0x7FF000

.equ SVCStack, _ISR_STARTADDRESS+256   @管理模式堆栈地址0x7FF100

.equ UndefStack, _ISR_STARTADDRESS+256*2

.equ AbortStack, _ISR_STARTADDRESS+256*3

.equ IRQStack, _ISR_STARTADDRESS+256*4

.equ FIQ Stack, _ISR_STARTADDRESS+256*5

.equ USERMODE, 0x10

.equ FIQMODE, 0x11

.equ IRQMODE, 0x12

.equ SVCMODE, 0x13

.equ ABORTMODE, 0x17

.equ UNDEFMODE, 0x1B

.equ SYSMODE, 0x1F

.equ MODEMASK, 0x1F

 

.global _start

.text

_start:

     MRS R0, CPSR                @读取当前CPSR

     BIC R0, R0, #MODEMASK       @清除模式位

 

     #设置用户模式下的SP

     ORR R1, R0, #SYSMODE

     MSR CPSR_c, R1

     LDR SP, =UserStack

 

     #设置未定义模式下的SP

     ORR R1, R0, #UNDEFMODE

     MSR CPSR_c, R1

     LDR SP, =UndefStack

 

     #设置终止模式下的SP

     ORR R1, R0, #ABORTMODE

     MSR CPSR_c, R1

     LDR SP, =AbortStack

 

     #设置管理模式下的SP

     ORR R1, R0, #SVCMODE

     MSR CPSR_c, R1

     LDR SP, =SVCStack

 

     #设置IRQ模式下的SP

     ORR R1, R0, #IRQMODE

     MSR CPSR_c, R1

     LDR SP, =IRQStack

 

     #设置FIQ模式下的SP

     ORR R1, R0, #FIQMODE

     MSR CPSR_c, R1

     LDR SP, =FIQStack

Stop:

     B Stop

.end


(2)程序执行结果如下:

     SP_usr=0xC7FF000

     SP_svc=0xC7FF100

     SP_und=0xC7FF200

     SP_abt=0xC7FF300

     SP_irq=0xC7FF400

     SP_fiq=0xC7FF500

推荐阅读

史海拾趣

杰力(EMC)公司的发展小趣事

杰力(EMC)公司成立于XXXX年,由一群具有丰富电子行业经验的专业人士创立。公司初期专注于功率组件和集成电路(IC)的设计与开发,以满足不断增长的电子市场需求。通过引进先进的生产设备和工艺,杰力迅速建立起一条高效的生产线,并开始为一些小型电子厂商提供定制化的产品。随着产品质量的不断提升和客户口碑的积累,杰力逐渐在市场中树立了良好的品牌形象。

Honda Tsushin Kogyo Co Ltd公司的发展小趣事

为了进一步扩大市场份额,Honda Tsushin Kogyo可能实施了全球化战略。公司积极寻求国际合作机会,与全球范围内的电子产品制造商建立了稳定的合作关系。同时,公司还可能在海外设立生产基地或销售网点,以便更好地服务当地市场。通过全球化战略的实施,Honda Tsushin Kogyo不仅提升了品牌知名度,还增强了企业的国际竞争力。

Defense Logistics Agency公司的发展小趣事

在全球化和信息化的大背景下,DLA面临着诸多挑战,如跨国采购的风险、网络安全威胁等。然而,DLA始终坚持创新驱动、持续发展的理念,通过加强国际合作、完善法律法规等方式积极应对挑战。同时,DLA还注重人才培养和团队建设,打造了一支高素质、专业化的后勤保障队伍。这些努力为DLA的持续发展提供了有力保障。

启攀微电子(Chiphomer)公司的发展小趣事

在技术创新方面,启攀微电子一直致力于提升产品的性能和可靠性。公司拥有一支技术骨干团队,他们拥有丰富的芯片设计开发和批量生产的经验。通过不断的技术创新和优化,公司成功推出了多款高性能、低成本的芯片产品,并在通讯、智能家电及个人消费类等高速成长的电子信息领域取得了广泛的应用。同时,公司还积极拓展海外市场,成功将产品打入韩国等国家和地区,进一步提升了公司的国际影响力。

Custom Electronics Inc公司的发展小趣事

在市场竞争日益激烈的背景下,CEI意识到品牌建设的重要性。公司加大了对品牌形象的宣传力度,通过广告、展览、研讨会等多种方式,提高了品牌知名度和美誉度。同时,CEI还注重产品质量的提升和售后服务的完善,赢得了广大客户的信赖和支持。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

FTDI的创立可以追溯到1992年3月13日,由弗雷德·达特(Fred Dart)领导创建。初期,公司专注于为个人电脑市场提供服务,特别是针对主板芯片组的解决方案。FTDI的首发产品就得到了IBM等知名企业的青睐,这些芯片被成功应用于AMBRA和PS/2系列个人电脑中,为当时快速发展的计算机技术贡献了重要力量。这一早期成功奠定了FTDI在电子行业中稳固的基础。

问答坊 | AI 解惑

工控定义

工控即工业控制计算机,是一种采用总线结构,对生产过程及其机电设备、工艺装备进行检测与控制的工具总称。它具有重要的计算机属性和特征,如:具有计算机CPU、硬盘、内存、外设及接口、并有实时的操作系统、控制网络和协议、计算能力,友好的人机 ...…

查看全部问答>

基于嵌入式PC的PIII计算机系统设计与实现

目前嵌入式计算机系统应用呈现多样化、小型化、多层次的趋势,在工业现场和军事用途中扮演着越来 越重要的角色。随着各种应用对操作系统和软件要求的日益提高,使得具有广泛适应性的PC构架的嵌入 式计算机系统倍受青睐。尤其是Compact PCI总 ...…

查看全部问答>

一个免费的DSP/FPGA讲座,有感兴趣的坛友么?

现场会有很多DSP/FPGA相关行业工程师参加,欢迎参加交流哈~~~ 内容:1、C6000 DSP软件开发环境CCS介绍)             2、FPGA典型应用领域及解决方案            ...…

查看全部问答>

orcad training PPT 01

orcad training PPT 01…

查看全部问答>

6410硬件解码和Directshow

平台:三星6410 + wince6.0 如何将三星的硬件解码加到Directshow里面. 三星提供的MFCDecoderFilter加了上去好像没用. 请各位指点.…

查看全部问答>

OK2440开发板上电后进不了系统

求教 什么ok2440开发板上电后进不了系统,触摸屏上只有几种颜色在变化。前阶段开发板还可以用的,放了一段时间后怎么会出现上面的问题?我该怎么做? 谢谢了…

查看全部问答>

请给推荐一款STM32的开发板

我想用STM32f103的芯片, 有必要买块开发板吗? 请给推荐一款不错的开发板!…

查看全部问答>

STM3210B-MCKIT的代销商

                                 版主,可否提供STM3210B-MCKIT的代销商的联系方式。…

查看全部问答>

USB2.0 学习板原理图(ad文件)

由于我用adobe reader看不了论坛里下的那个电路图,就按照下的说明书上的图画了一个,顺便把原理图库也发上来。有于画的时间比较仓促,有错误的地方请大家多包涵!封装库我有时间再弄!     本人用的是designer6.8版本。…

查看全部问答>