打印

PIC的学习笔记贴,堆栈!

[复制链接]
2353|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Ryanhsiung 于 2012-3-19 17:09 编辑

本文中大部分是从网络中截取的,特此说明!
此文为C18系列!
硬件堆栈:
   或许也可以称作系统堆栈,是位于片内RAM区。有人说,只要能使用PUSH,POP指令的单片机,都可以说含有硬件堆栈。这样的说法我个人觉得不是很全面。通过指令进行压栈和出栈操作只是系统堆栈中的一种操做。系统堆栈还可以被隐含调用。例如,当调用子程序时,系统会主动把断点压入堆栈,并不需要用户通过指令操作。系统堆栈可以用来保存数据,或在任务子程序间传递数据。通常,栈底设在内存的高端,也就是把内存的最高一段空间划作栈区。这些都是向下生长栈。栈指针可能是专用的寄存器,也可能借用一通用寄存器。也有单片机是在数据区里划一块作栈区,可能是向上生长,也可能是向下生长。


FSR0 指向返回值
FSR1 指向下一个可用值
FSR2 指向当前使用的可用值

软件堆栈:
    软件栈是你自己通过编码实现的。你在内存里划一块作栈区,用一个变量作栈指针。
   也可以说是用户堆栈。可以被定义在内部或外部 RAM中。它是用户为任务建立的专用数据堆栈,与系统堆栈的数据区是隔开的。它可以保存用户想保存的任何寄存器和状态字。

具体请查看C18编译器手册!
沙发
asspeed| | 2012-3-19 14:54 | 只看该作者
问题解决了?
-这个笔记写得太少了...

使用特权

评论回复
板凳
Ryanhsiung|  楼主 | 2012-3-19 17:08 | 只看该作者
问题解决了?
-这个笔记写得太少了...
asspeed 发表于 2012-3-19 14:54


停振的解决了,但没找到本质原因!

EEPROM 的提高了BOR的门限电压,但无法验证。
串口的问题,我加强了一下串口出错出理,但无法验证。
EEPROM 串口这两个问题不易出现,周六一下午,今天一上午都还没有出现过一次!!

使用特权

评论回复
地板
NE5532| | 2012-3-19 21:28 | 只看该作者
赞一个,这样积累基础是成功的开始。慢慢楼主就不会遇到莫名其妙问题了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:道阻且长,行则将至!

64

主题

4654

帖子

14

粉丝