遇到segment .ubsct size overflow的错误
2017-06-12 22:13
239 查看
遇到#error clnk Debug\roewe.lkf:1 segment .ubsct size overflow的错误。
原因:导致COSMIC报告segment .ubsct overflow错误的根本原因是内存溢出, 相关原因分析如下。
(1) 变量存储空间结构。
STM8系列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外的存储空间
(2) 具体解析请参考:http://www.waveshare.net/article/STM8-3-1-10.htm
解决方法:在“工程选项”(project settings)中,确定“Settings”下树状列表中工程被选中点选右边“C Compiler”选项卡,在C Compiler中有一个“Category”下拉列表,选此下拉列表中”General”会在下面显示Memory Models中把选项Short Stack[+mods0]选择更改为Long Stack[+modsl]
注:本文章内容来源网络,由博主整理。
原因:导致COSMIC报告segment .ubsct overflow错误的根本原因是内存溢出, 相关原因分析如下。
(1) 变量存储空间结构。
STM8系列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外的存储空间
(2) 具体解析请参考:http://www.waveshare.net/article/STM8-3-1-10.htm
解决方法:在“工程选项”(project settings)中,确定“Settings”下树状列表中工程被选中点选右边“C Compiler”选项卡,在C Compiler中有一个“Category”下拉列表,选此下拉列表中”General”会在下面显示Memory Models中把选项Short Stack[+mods0]选择更改为Long Stack[+modsl]
注:本文章内容来源网络,由博主整理。
相关文章推荐
- stm8使用总结--segment .ubsct size overflow
- 加密解密时报错:java.security.InvalidKeyException: Illegal key size(加密时遇到的错误)
- SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.
- Python3对字典操作时遇到错误:dictionary changed size during iteration
- 错误 java.lang.StackOverflowError: stack size 8MB
- HEW3工程链接错误(L2330 (E) Relocation size overflow )及解决
- Oracle错误:ORA-27121: unable to determine size of shared memory segment
- WAV文件导入Matlab遇到"incorrect chunk size"错误
- ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段(EXP-00056: 遇到 ORACLE 错误 1652 ORA-01652: unable to extend temp segment by 128 in tablespace TEMP)
- 遇到502错误,invalid request block size 解决方法
- Android 错误信息: java.lang.StackOverflowError: stack size 8MB
- stm8s使用问题总结1——segment .text size overflow
- STM8L编程问题之segment .text size overflow
- :"ORA-27121: unable to determine size of shared memory segment" 错误
- 遇到502错误,invalid request block size 解决方法
- HEW3工程链接错误(L2330 (E) Relocation size overflow )及解决
- java.lang.StackOverflowError: stack size 8MB. 使用Edittext 监听方法 时候 出现的错误
- SensorTag编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.
- Android 错误信息: java.lang.StackOverflowError: stack size 8MB
- Android出现错误java.lang.StackOverflowError stack size 8MB