Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2510789
  • 博文数量: 319
  • 博客积分: 9650
  • 博客等级: 中将
  • 技术积分: 3881
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 21:05
文章分类

全部博文(319)

文章存档

2017年(5)

2016年(10)

2015年(3)

2014年(3)

2013年(10)

2012年(26)

2011年(67)

2010年(186)

2009年(9)

分类:

2011-10-31 17:19:17

转自:http://hi.baidu.com/ef_liang/blog/item/72cc9b3b7eafda2d97ddd8b3.html
导致COSMIC报告segment .ubsct overflow错误的根本原因是内存溢出, 相关原因分析如下:

1、变量存储空间结构

STM8S105系列CPU的RAM地址范围为0~0x7FF的2K空间,其中默认将高512字节分配给堆栈,剩下0~0x5FF字节为变量存储空间 。在0~0x5FF的空间范围内,低256字节被定义为Zero page,其中包括.bsct,.ubsct,.bit,.share,各段的含义如下:


可见, 当segment .ubsct overflow错误出现时, 应该是低0~FF段空间出现溢出

cosmic默认将所有变量存储在zero page段, 如要将变量置于0x100~0x5FF的空间里, 需要将变量前添加@near的申明, 如同idata的功能

通常将所有全局变量都加上@near申明, 以放置在zero page外的存储空间

阅读(9642) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~