学习ARM寻址方式的时候,里面有种寻址为堆栈寻址。
ARM7中的寄存器R13就是作为堆栈指针SP的。堆栈内容的增减,就会影响堆栈指针的移动。这个移动方向与堆栈的生长方向有关。
ARM7的有两种堆栈生长方向。
1.向上生长 在像堆栈写入数据后,堆栈指针的值变大,也就是向高地址方向生长,这种是递增堆栈。
2.向下生长 在像堆栈写入数据后,堆栈指针的值变小,也就是向低地址方向生长,这种是递减堆栈。
要注意的问题不仅仅是堆栈增长方向。还要考虑到堆栈指针指向的存储单元是否已经保存有堆栈数据,或者说入栈时是否可以直接向堆栈指针指向的存储单元写入数据。这就是“满堆栈”与“空堆栈”。
1.满堆栈 堆栈指针指向最后压入栈的有效数据项,称为满堆栈。此时堆栈入栈操作要先调整指针再写入数据;
2.空堆栈 堆栈指针指向下一个待压入数据的空位置,称为空堆栈。此时堆栈的入栈操作的入栈操作要先先写入数据再调整指针。
综合以上叙述,就可以得到四种堆栈类型,分别为满递增,空递增,满递减,空递减。
然后我想到了uc/OS-II中就有与堆栈类型密切相关的东西,移植ucOS-II到相应平台上,就要考虑到堆栈类型。我看书上说到ADS1.2堆栈类型只支持满递减。此时我的问题就出来了,堆栈类型具体应该是跟MCU有关,而不同的编译器又支持不同的类型,是不是这样呢,最后我在ADS1.2文件的一个讲ATPCS的PDF中找到了答案,原来就是这样,ADS1.2只能满递减。一下就是PDF中的截图。
关键字:ARM 堆栈 连续空间
引用地址:
关于ARM堆栈的一些问题
推荐阅读最新更新时间:2024-03-16 14:51
基于ARM和DM9000的网卡接口设计与实现
最基本的开关电容电路是由电子开关和电容组成的,主要应用是构成各种低通、高通、带通、带阻等开关电容滤波器(Switched-Capacitor Filter,SCF)。将开关电容电路与运算放大器结合,组成的开关电容有源滤波器具有很多奇特的性质,但由于引入了电子开关,对电路特性进行严密分析变得异常困难,目前已有的分析方法都只是在一定条件下从一个侧面进行近似分析,本文立足于最基本的电路理论,借助计算机系统对其进行复杂而严格的分析计算,最终得到了具有普遍意义的结论,上述文献的结果只是该普遍性结论的特例。 1 SCF电路 开关电容有源滤波器电路如图1(a),其中S1和S2是由周期为2T的方波信号控制的理想电子开关,方波控制信号p(t)波
[单片机]
Atmel针对ARM A5处理器扩大第三方工具和软件生态系统
据最新消息,爱特梅尔针对最新的基于ARM Cortex-A5处理器产品系列扩大第三方工具和软件合作伙伴的生态系统。设计人员可以利用Android、嵌入式Linux或实时操作系统,快速访问各种易于使用的工具,以加快上市速度。
微控制器及触摸技术解决方案的厂商爱特梅尔公司(Atmel Corporation)日前宣布,已经针对最新的基于ARM Cortex-A5 处理器产品系列而扩大第三方工具和软件合作伙伴的生态系统,其合作伙伴企业包括ARM、Timesys、Express Logic和IAR。
根据UBM进行的2012年嵌入式技术研究,61%的受访者表示微处理器(MPU)生态系统(软件、工具支持等等)是其MPU设计的最关键方
[单片机]
嵌入式操作系统UC/OSII的内核实现
引言 以前在我们一般所使用的系统中,任务没有优先级之分。应用程序是一个无限的循环,任务函数按在代码中的顺序运行,处理相应的事务。时间相关性强的任务处理使用中断机制,但是当系统比较复杂、中断资源有限时,中断程序只能将处理该任务的信息条件准备好后返回。当程序按顺序没有执行到该任务时,该任务的执行必须等待,所以将会造成任务每次的执行时间间隔不定,不能及时处理紧急事务,影响系统的运行。这种情况在要求限定时间内周期性处理事务的系统中是不允许发生的,而且只由应用者编写的复杂程序很可能会出现 Bug 。 嵌入式操作系统是实时操作系统,运行于特定的硬件平台上,一般包括处理器、存储器及外设器件和 I/O端口,包括操作系统软件,
[嵌入式]
快速学Arm(23)--lpc2300系统时钟2
接着上一篇,我们来看看PLL的设置步骤: 1.如果PLL已经连接,我们先将其断开,方法就是用一个馈送系列断开与PLL的连接,馈送序列当然是通过写入馈送寄存器PLLFEED来实现的.馈送序列机制被用于避免PLL正在使用的相关参数被意外修改的情况.LPC2300系列ARM从硬件上提供了保护,只有先网PLL馈送寄存器写入0xAA,再写入0x55,PLL的相关参数才能有效更改. 2.用一个馈送序列禁止PLL,也就是说停止了流控振动器CCO的工作. 3.通过时钟源选择寄存器CLKSRCSEL来选择PLL输入时钟源. 4.写PLL配置寄存器PLLCFG,并用一个馈送序列使其生效,PLL配置寄存器只有在PLL被禁止时才有效. 5
[单片机]
ARM S3C2440 时钟初始化流程
1.设置lock time 2.设置分频系数 3.设置CPU到异步工作模式 4.设置 FCLK 了解 芯片的时钟原理图,以及寄存器的作用 了解芯片的晶振频率,锁相环,分频系数,以及有哪些时钟
[单片机]
格力“混改”高瓴的突然加入,是“陪跑”还是蓄谋已久?
令投资人惊奇的是,在厚朴的追爱“后半程”,却还杀出来另一个实力雄厚的竞争对手——高瓴资本,相比于厚朴的高调,高瓴资本在前期一直“不动声色”。 “(对这次征集结果)我觉得是略超预期的,之前没想到高瓴进来。”9月3日,北京一家私募机构人士对记者如此说道。 9月2日晚,格力电器披露了控股股东所持公司股权转让进展,公开征集期内,共有两家意向受让方向格力集团提交了受让申请材料,并足额缴纳63亿元缔约保证金。 这两家机构分别是,高瓴资本旗下的珠海明骏投资合伙企业(有限合伙),以及厚朴投资旗下的格物厚德股权投资(珠海)合伙企业(有限合伙)与GENESIS FINANCIAL INVESTMENT COMPANY LIMITED组成的
[嵌入式]
左拥台积右抱GF ARM忙扩事业版图
继日前与台积电延伸合作至20奈米(nm)以下制程,安谋国际(ARM)再于14日宣布与格罗方德(GLOBALFOUNDRIES)签订合约,双方将合推采用格罗方德20奈米制程与鳍式场效电晶体(FinFET)技术的ARM核心系统单晶片(SoC),并携手发展新一代Mali绘图处理器(GPU)核心。 格罗方德全球行销暨业务执行副总裁Mike Noonen认为,格罗方德20奈米LPM技术极具成本效益,且相较于28奈米,可提升40%效能及两倍闸极密度。 ARM执行副总裁暨处理器部门与实体矽智财(IP)部门总经理Simon Segars表示,此次合作将同步优化ARM与格罗方德技术,为智慧型手机、平板装置与个人电脑提供高效能ARM处理
[手机便携]
arm7和arm9的区别
ARM7内核是0.9MIPS/MHz的三级流水线和冯 诺伊曼结构; ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。 arm7没有mmu,arm720T是MMU的;arm9是有mmu的,arm940T只有Memory protection unit.不是一个完整的MMU。 ARM7TDMI提供了非常好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的内核。ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线。
[单片机]