历史上的今天
返回首页

历史上的今天

今天是:2025年02月21日(星期五)

正在发生

2020年02月21日 | stm8使用总结--segment .ubsct size overflow

2020-02-21 来源:eefocus

导致COSMIC报告segment .ubsct overflow错误的根本原因是内存溢出, 相关原因分析如下:

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

# .bsct段服务于定义在0页(地址小于0x100)以内需要初始化的全局变量(如@tiny char a = 9;)
+seg .bsct -b 0x0 -m 0x100 -n .bsct
# .ubsct段服务于定义在0页(地址小于0x100)以内不需要初始化的全局变量(如@tiny char b;)
+seg .ubsct -a .bsct -n .ubsct 
# .bit表示位域段,定义后即可在程序中使用_Bool变量(如_Bool c = 1;),-id表示该段需要初始化。
+seg .bit -a .ubsct -n .bit -id
# 这是ST7时代(STM8是基于ST7发展而来的)由于物理堆栈小,速度慢,使用内存来模拟堆栈的变通手段。
+seg .share -a .bit -n .share -is
# .data段服务于定义在0页(地址大于0xFF)以外需要初始化的全局变量(如@near char d = 8;)
+seg .data -b 0x100 -m 0x1300 -n .data
# .bss段服务于定义在0页(地址大于0xFF)以内不需要初始化的全局变量(如@ near char e;)
+seg .bss -a .data -n .bss
# 段定义结束,下面放置的库及Obj文件中的变量、常量、程序就按照上面的规定进行分配。


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


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


推荐阅读

史海拾趣

ANOVA公司的发展小趣事

ANOVA公司的全球扩张步伐迅速而稳健。在成功创立之后不久,ANOVA便通过收购ISA,进一步增强了其在全球市场的竞争力。这次收购不仅使ANOVA在全球超过70个国家拥有了监控超过70万台设备的能力,更在北美、南美、欧洲和亚太等关键地区设立了办公室,为公司的全球化战略打下了坚实的基础。ANOVA始终坚持本地化服务,无论客户身处何地,都能享受到最高级别的服务和支持。

AIC [Analog Intergrations Corporation]公司的发展小趣事

ANOVA公司的故事始于2018年,当时四个在物联网领域颇具影响力的品牌——Dataonline、Wikon、Wesroc和Itank,看到了工业远程监控领域的巨大潜力和商机,于是决定联手共创未来。这四个品牌都拥有超过一个世纪的工业监控经验,它们的联合不仅仅是资源的整合,更是技术与智慧的融合。ANOVA的创立,标志着电子行业中一个新的力量正在崛起。

GTM公司的发展小趣事

ANOVA深知,成功的关键在于与合作伙伴的紧密合作。因此,公司始终与客户保持紧密的合作关系,共同开发特定的解决方案,协助制定部署策略。ANOVA的服务团队以客户的需求为导向,以十几种语言提供个性化的服务,确保每一位客户都能得到满意的解决方案。此外,ANOVA还积极与商业伙伴合作,共同开拓市场,实现共赢。

CYMBET公司的发展小趣事

在电子行业中,技术的更新换代速度极快。为了保持竞争力,CYMBET公司始终将创新作为核心驱动力。公司不断投入研发资金,引进先进设备和技术人才,对EnerChip技术进行持续的优化和升级。例如,公司成功研发出了更高能量密度、更长寿命的EnerChip电池芯片,进一步提升了产品的性能和市场竞争力。同时,CYMBET还积极探索新的应用领域,将EnerChip技术应用于可穿戴设备、物联网等新兴领域,为公司带来了新的增长点。

Aplus Flash Technology Inc公司的发展小趣事

随着电子行业的快速发展,Aplus Flash Technology Inc公司意识到单凭自身的力量难以应对市场的快速变化。于是,公司积极寻求与其他企业的战略合作,共同开发新产品、拓展新市场。通过与一家知名手机制造商的合作,Aplus Flash Technology Inc公司的闪存芯片成功应用于多款热销手机中,大大提高了公司的知名度和市场份额。此外,公司还与多家芯片设计公司和半导体制造商建立了紧密的合作关系,共同推动电子行业的发展。

DIALIGHT公司的发展小趣事

DIALIGHT公司一直专注于工业LED照明领域的发展。他们深入了解工业空间照明的需求和挑战,设计了一系列专为工业应用而定制的LED照明产品。这些产品不仅易于安装和维护,而且能在恶劣的环境下持续使用。此外,DIALIGHT还提供集成系统解决方案,帮助客户降低能源成本、维护成本和碳足迹,同时提高设施的安全性和生产力。通过不断创新和优质服务,DIALIGHT在工业LED照明领域赢得了广泛的认可和信赖。

问答坊 | AI 解惑

usb

对usb感兴趣的同学注意了啊…

查看全部问答>

新闻早班车:节能的照明级、中性白光和暖白光LED

cree公司的LED技术方面还处于世界领先地位。 来看看新闻: Cree公司日前宣布色温介于2600 K-5000 K CCT之间的暖白光与中性白光 XLamp XP-G LED开始商用 。 暖白光 (3000 K) XLamp XP-G在 350 mA 的驱动电流下,可提供高达 114 lm的光通量和 1 ...…

查看全部问答>

WinCE上运行的安装盘能否将文件安装到 NandFlash上?

WinCE上运行的安装盘能否将文件安装到 NandFlash上?…

查看全部问答>

关于USB加载描述符,主机识别的问题

大家好,我调了SEED开发板上的的USB测试程序,运行正常。它的USB有两种枚举,一是EEPROM,一个是DSP枚举。都可以实现。现在我没弄清楚两种枚举是怎么实现的?也就是说开发板上EEPROM中写的是什么?(例如0xC4,IFCONFIG,POLAR,等等),加载描述符成功 ...…

查看全部问答>

高手帮忙介绍下嵌入式操作系统wince,uc/os2,linux的比较吗?

我正在学嵌入式,看了好几个嵌入式操作系统,想知道他们的区别和联系,以及主要偏向的应用,麻烦高手帮忙介绍下嵌入式操作系统wince,uc/os2,linux的比较,谢谢!…

查看全部问答>

请问WAVECOM Q2358C的AT指令可以访问WAP页面吗

问题如题,如果可以访问都用什么AT指令呢?…

查看全部问答>

新手求关于智能家居的问题

  我在和老师一起做智能家居的课题,大家认为好不好!有没有什么建议要是有技术支持那更好.小弟在这里先谢了!! 我们初步研究使者样的,通过INTERNET来实现对家电的控制.我们想通过一台电脑上网加载一个制作好的网页,网页存在网络中的服务器 ...…

查看全部问答>

wm5.0 ppc直接连网络上sql server2005不成功,怎么回事?

帮忙很急! 不用RDA 好像要sql2005上做配置, 现在conn.open()连接报登陆失败! 尝试了各种连接串 Standard Security: \"Data Source=Aron1;Initial Catalog=pubs;User Id=sa;Password=asdasd;\" - or - \"Server=Aron1;Database=pubs;User ...…

查看全部问答>