打印
[STM8]

COSMIC STM8如果定义一个不被初始化的变量

[复制链接]
805|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Fish1888|  楼主 | 2019-5-8 11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,COSMIC C如何定义一个不被复位初始化的变量

使用特权

评论回复
沙发
香水城| | 2019-5-8 17:33 | 只看该作者
你使用COSMIC编译环境的话,如果定义时不给赋初始值,且数据在00-ff内,默认为非初始化变量,会放到 .ubsct 域。

你定义变量时可以使用 tiny界定,[url=]比如[/url]:@tiny char variable;

使用特权

评论回复
板凳
Fish1888|  楼主 | 2019-5-8 19:05 | 只看该作者
本帖最后由 Fish1888 于 2019-5-8 19:07 编辑
香水城 发表于 2019-5-8 17:33
你使用COSMIC编译环境的话,如果定义时不给赋初始值,且数据在00-ff内,默认为非初始化变量,会放到 .ubsct ...

这个不行,早就试过了,编译器会忽略。
Debug\main.o:
start 00000ab0 end 00000ab3 length     3 section .bss
start ******** end ******** length     0 section .ubsct *** removed ***
start 0000592e end 00005d49 length  1051 section .debug
start 0000e5e7 end 0000e5f1 length    10 section .text
start 0000e5f1 end 0000e60e length    29 section .text
start ******** end ******** length     0 section .text *** removed ***
start 0000e60e end 0000e663 length    85 section .text
start 0000e663 end 0000e67a length    23 section .text
start 0000e67a end 0000e6ff length   133 section .text
start 0000e6ff end 0000e738 length    57 section .text
start 0000e738 end 0000e73e length     6 section .text
start 0000e73e end 0000e79e length    96 section .text
start ******** end ******** length     0 section .text *** removed ***
start 0000e79e end 0000e7a0 length     2 section .text
start 00009558 end 00009593 length    59 section .const

使用特权

评论回复
评论
Fish1888 2019-5-8 19:07 回复TA
怎么做到不别忽略呢 
地板
香水城| | 2019-5-9 16:45 | 只看该作者
被删掉, 说明你只是定义它,程序里没用它。

@tiny uint8_t variable;
_variable                           00000001   defined in Debug\main.o section .ubsct

要不你用EERPOM变量得了,复位/上电都不会影响它。

使用特权

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

本版积分规则

13

主题

150

帖子

3

粉丝