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

[复制链接]
968|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

评论

怎么做到不别忽略呢  发表于 2019-5-8 19:07
香水城 发表于 2019-5-9 16:45 | 显示全部楼层
被删掉, 说明你只是定义它,程序里没用它。

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

要不你用EERPOM变量得了,复位/上电都不会影响它。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

150

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部