硬件堆栈:或许也可以称作系统堆栈,是位于片内RAM区。有人说,只要能使用PUSH,POP指令的单片机,都可以说含有硬件堆栈。这样的说法我个人觉得 不是很全面。通过指令进行压栈和出栈操作只是系统堆栈中的一种操做。系统堆栈还可以被隐含调用。例如,当调用子程序时,系统会主动把断点压入堆栈,并不需 要用户通过指令操作。系统堆栈可以用来保存数据,或在任务子程序间传递数据。通常,栈底设在内存的高端,也就是把内存的最高一段空间划作栈区。这些都是向下生长栈。栈指针可能是专用的寄存器,也可能借用一通用寄存器。也有单片机是在数据区里划一块作栈区,可能是向上生长,也可能是向下生长。
软件栈是你自己通过编码实现的。你在内存里划一块作栈区,用一个变量作栈指针。
软件堆栈:也可以说是用户堆栈。可以被定义在内部或外部 RAM中。它是用户为任务建立的专用数据堆栈,与系统堆栈的数据区是隔开的。它可以保存用户想保存的任何寄存器和状态字。
MPLAB C18的软件堆栈是向上生长的堆栈数据结构,编译器把函数参数和auto存储类别的局部变量放入软件堆栈中。软件堆栈与 PICmicro 单片机用于保存函数调用返回地址的硬件堆栈不同。
栈指针 (FSR1)始终指向下一个可用的堆栈地址。 MPLAB C18 使用 FSR2 作为帧指针,这样可以快速访问局部变量和参数。函数被调用时,其基于堆栈的参数以自右向左的顺序压入堆栈,然后再调用这个函数。进入函数时,最左端的函数 参数位于软件堆栈的顶端。
帧指针指向堆栈中把基于堆栈的参数和基于堆栈的局部变量分隔开的地址。基于堆栈的参数位于帧指针的下方,而基于堆栈的局部变量位于帧指针的上方。刚进入C 函数时,被调用函数把 FSR2 的值压入堆栈,并把 FSR1的值复制到 FSR2,从而保存了调用函数的现场并初始化了当前函数的帧指针。然后函数基于堆栈的局部变量的总长度被加到栈指针,并为这些变量分配堆栈空间。基于堆栈 的局部变量和基于堆栈的参数则根据其相对于帧指针的偏移量来引用。
关键字:PIC 硬件堆栈 软件堆栈
引用地址:
PIC硬件堆栈与软件堆栈
推荐阅读最新更新时间:2024-03-16 15:07
基于PIC单片机及图像处理技术设计的智能台球机器人
设计摘要 台球源于英国,它是一项在国际上广泛流行的高雅室内体育运动。随着各种运动的兴起发展,台球以其内涵高雅、放松身心的特点越来越受大家欢迎。依靠单片机技术的日益成熟,基于单片机的小型化高精度控制过程的广泛应用,色度学、先进光电成像技术、计算机技术和图像处理技术的飞速发展和电机驱动技术、传感器技术以及控制技术的不断发展,我们计划设计可以与人对打的台球智能机器人,使人们可以在即使一个人的情况之下也可以享受台球带来的娱乐、休闲。 我们这次设计的智能台球机器是以PIC单片机为核心的控制系统,结合了图像处理技术,PIC单片机控制电机系统,以及机械机构设计技术等方面的知识,利用了各种芯片来实现对台球系统的图像采集处理技术,同时,使用各种
[单片机]
针对PIC微控制器的设计窍门
除了可在广泛应用的Microchip公司PIC微控制器芯片中挤出更多特性外,本文探讨的诸如增加额外串口以及在8位芯片上进行32位运算等技巧,也可适用于其它微控制器。 图1:作为异步串行数据的ASCII码字母“Q”(0x51)。 尽管Microchip公司不断为其日益扩大的PIC微控制器产品线增加更多功能,但有时设计工程师只需其中一小部分功能。也许设计工程师还需要目前尚不存在的一组特性,或者继承了一种设计但不能升级,或者可能只想进行试验并打破以往传统限制。本文将介绍一些挖掘各种PIC产品极限的应用方法,其中一些技巧也适用于其它微控制器,但这里只介绍用于PIC的源代码与具体示例。本文还将分析一些方法,它们是关于
[单片机]
用PIC单片机实现50Hz锁相信号发生器
摘要: 在UPS不间断电源系统的设计中,与外部交流电压锁相的50Hz正弦信号发生器是十分关键的一部分,本文介绍了一种利用数字信号处理技术通过PIC单片机实现此电路的方法。
关键词: 单片机 信号发生器 数字信号处理
引言
不间断电源(UPS)通过逆变向用电设备提供纯净、稳定的电能,保证设备的正常运行,50Hz锁相正弦信号发生器则是其中的关键部分,作为系统输出电压的基准,不但要求它的输出信号频率和幅度稳定,还要与外部交流电的电压相位同步。
传统的交流信号发生方式采用反馈振荡电路,利用电路的自激振荡和选频作用输出正弦波,但是低频模拟振荡器有一个缺点:受电压和温度影响大,输出信号的频率和幅度
[工业控制]
基于PIC单片机的测温网络的开发
简介:介绍一种利用PIC单片机和DS18B20构造单总线测温网络的方法,文章给出了系统硬件结构和软件流程图。 本测温网络应用在磁致伸缩液位传感器上,利用附在不锈钢管内壁的不同位置上的三个DS18B20,测量不同液位层的温度 。 1硬件设计 整个系统由上位机和下位机组成。上位机用PC机,下位机用PIC16C63(原理框图见图1)。系统硬件部分主要有PIC16C63、AT24C01、DS18B20、显示电路、电源电路、时钟电路和通信电路。用户需要时可通过上位机下达测量命令,下位机进行测量并把结果送给上位机或显示在液晶显示模块上。三个温度点任何一路发生故障,都会传给上位机一个默认值,用户可以据此在线更换新的温度传感器,系统能够自
[单片机]
PIC单片机相比其他单片机有什么优势
本人从事单片机应用系统的开发已有多年,使用过多种型号的PIC单片机,深感PIC单片机使用起来确实很方便: 1、PIC单片机采用精简指令集,中档产品仅需35条指令,入门门槛低,而在使用过程中绝不会感到不方便。 2、PIC单片机的数据线和指令线各自独立,代码效率高,是传统51系列单片机的2-3倍,除几个跳转类指令外均为单周期指令,在计算延时时间时非常方便。 3、PIC单片机外围接口十分丰富,能满足绝大部分应用系统的需求;比如PIC16F877A包含8路ADC,1个CCP、PWM、USART、SSP、I2C/SPI,3个定时/计数器,1个硬件WDT等接口,8K FLASH程序存储器、256字节EEPROM,能满足较复杂测控系统的
[单片机]
以汇编语言写的PIC18Fxxxx的LCD驱动程序
;************************************************ ;* 18F_LCD.asm * ;* Microchip Taiwan * ;* Date : Sept. 24 2002 * ;* Version : v1.00 * ;************************************************ ;* Contains subroutines to control an external * ;* lcd panel in 4-bit mode. These routines * ;* were designed s
[单片机]
Microchip推出两个全新PIC®单片机系列,集成独立于内核的外设
PIC16F18877为首款配备ADC计算的单片机以及首款具备新型低功耗模式的PIC16系列产品; PIC16F1579为首款配备4个16位独立时基PWM的8位PIC单片机 全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商 Microchip Technology Inc.(美国微芯科技公司)近日在硅谷嵌入式系统博览会(ESC Silicon Valley)发布了两个全新8位PIC 单片机系列,扩展了其不断丰富的具有 独立于内核的外设 (CIP)的创新PIC MCU产品。新系列将更多智能化、互连的CIP结合于一体,可在没有内核干预的情况下实现自主的功能运作,因而应用广泛。由于这些功能是通过硬件而非软件进
[单片机]
PIC单片机设计的SPWM控制技术
本文采用软硬件结合设计的方法,利用面积等效法,并且基于PIC单片机实现对试验逆变系统的SPWM控制。 目前SPWM的产生方法很多,汇总如下: 1)利用分立元件,采用模拟、数字混和电路生成SPWM波。此方法电路复杂,实现困难且不易改进; 2)由SPWM专用芯片SA828系列与微处理器直接连接生成SPWM波,SA828是由规则采样法产生SPWM波的,相对谐波较大且无法实现闭环控制; 3)利用CPLD(复杂可编程逻辑器件)设计,实现数字式SPWM发生器; 4)基于单片机实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,受外界干扰小。 在UPS等电力电子设备中,控制方法是核心技术。早期的控制方
[单片机]