在ARM嵌入式当中,需要硬件和软件的双重配合。硬件能够随意更换,但软件要随着硬件的更新而进行初始化。而嵌入式的初始化需要从多个方面来进行,本文就将为大家介绍堆栈的初始化的过程,感兴趣的朋友快来看一看吧。
初始化堆栈
由于ARM微处理器有7中运行模式,每一种模式的堆栈指针(SP)都是独立的(其中系统模式和用户模式使用相同的SP)。因此,需要对每一种模式的SP进行初始化。
采用的方法是:改变当前程序状态寄存器(CPSR)内的状态位,使处理器切换到不同的状态,然后初始化SP。但是对用户模式下SP的初始化应该放在最后,因为ARM微处理器进入用户模式之后就无法再切换到其他模式。
设置堆栈应该注意的问题是:堆栈的大小根据需要确定,要尽可能给堆栈分配高速存储器(例如片内的SRAM)。堆栈性能的提高对提高系统整体性能的影响非常显著。
初始化堆栈的代码如下:
MRSR0,CPSR
BICR0,R0,#MODEMASK
ORRR1,R0,#IRQMODE
MSRCPSR_c,R1
LDRSP,=IRQStack
BICR0,R0,#MODEMASK
ORRR1,R0,#FIQMODE
MSRCPSR_c,R1
LDRSP,=FIQStack
.........
这里需要提醒大家注意的是,在进行ARM嵌入式初始化的过程中,ARM堆栈的大小要根据需要进行确定,并且要尽量为堆栈分配高速存储器,这样能够有效的提高软件系统的性能。希望大家在阅读过本文之后能够有所收获。
声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。