第一范文网 - 专业文章范例文档资料分享平台

飞思卡尔单片机编程

来源:用户分享 时间:2025/5/17 11:41:42 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

例4 定义非自动清零的数据段

SEGMENTS ……

RAM = READ_WRITE DATA_NEAR TO 0x2FFF;

RAM_NO_INIT = NO_INIT DATA_NEAR TO 0x3FFF; …… END

PLACEMENT ……

DATA_PERSISTENT INTO RAM_NO_INIT; …… END

0x2000 0x3000

//源程序编写:

#pragma DATA_SEG DATA_PERSISTENT //定义复位时非自定清零数据段 byte sysState;

#pragma DATA_SEG DEFAULT

4 堆栈的设置

关于堆栈的设置,Codewarrior提供了两种方式:“STACKSIZE”命令方式和“STACKTOP”命令方式。这两种方式在同一个.prm文件中,不能同时存在。当用户只关心堆栈的大小而不关心堆栈的存放位置时,推荐使用STACKSIZE方式。

系统默认的方式为使用STACKSIZE方式。

STACKSIZE命令方式:

当使用STACKSIZE命令方式时,如果在PLACEMENT-END部分声明了“SSTACK INTO RAM”,这样的话,堆栈区就被放在RAM区域的起始部分,下面的例子说明了这种方式: 例5 SEGMENTS ……

RAM = READ_WRITE DATA_NEAR 0x2000 TO x3FFF; …… END

PLACEMENT ……

SSTACK, PAGED_RAM, DEFAULT_RAM INTO RAM; ……

0END

STACKSIZE 0x100

上面的例子将堆栈区域存放的地址为0x20FF-0x2000,初始的堆栈指针指向栈顶地址0x20FF。

相反,如果在PLACEMENT-END部分没有声明

“SSTACK INTO RAM”,则堆栈被分配在RAM区域中已分配空间的后面。请参见例6。 例6 SEGMENTS …… RAM =

READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF; …… END

搜索更多关于: 飞思卡尔单片机编程 的文档
飞思卡尔单片机编程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0rq7p0g3le1wxgu8jptf_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top