[STM8]

没人用STM8吗?

[复制链接]
2140|8
手机看帖
扫描二维码
随时随地手机跟帖
gangdou|  楼主 | 2009-5-26 15:56 | 显示全部楼层 |阅读模式
STM8, IDE, AN, ce, tv
全是STM32的贴子.

为什么我的全局变量不会被初始化为0?有人知道吗,指点一下,谢谢了。

我用STM8,C编译器为Raisonance,IDE为STVD
gangdou|  楼主 | 2009-5-26 16:10 | 显示全部楼层

我顶

使用特权

评论回复
gangdou|  楼主 | 2009-5-26 16:39 | 显示全部楼层

我再顶

使用特权

评论回复
myfaith| | 2009-5-26 16:55 | 显示全部楼层

启动代码会自动清零啊

使用特权

评论回复
McuPlayer| | 2009-5-26 19:17 | 显示全部楼层

“全局变量不会被初始化为0”不是C编译器的义务

除非你声明的时候,同时是一个赋值为0的语句。

尽量减少对编译器增强特性的依赖,因为各家的C编译器对增强的侧重点有差异。

使用特权

评论回复
gangdou|  楼主 | 2009-5-26 21:44 | 显示全部楼层

回4楼

我知道启动代码会自动清零,正是因为启动代码没有把我的全局变量清零,所以我找不到原因啊.

使用特权

评论回复
香水城| | 2009-5-27 01:30 | 显示全部楼层

最好不要对启动代码或编译器的行为作任何假设

始终通过程序初始化程序变量,这样保证程序的可移植性和可靠性。

使用特权

评论回复
gangdou|  楼主 | 2009-5-27 08:13 | 显示全部楼层

刚用STM8,请问香水域

编译器为Raisonance是不是自动会把下面的启动程序段编译进去???不是把全局变量初始化为0?

CST7_START:
CST7_START_V:
CST7_START_Z:
CST7_START_V_Z:


; Comment out the following line if your project does not use any
; 0-initialized C global variables initialization.
; ?C?ZeroData must be called BEFORE ?C?InitData
    CALL    ?C?ZeroData                ; Initialize null global variables

; Comment out the following line if your project does not use any C global
; variables initialization. If you are unsure, just leave it as it is.
    CALL    ?C?InitData                ; Initialize global variables.

    JP      main                       ; Call the user entry point (main)
                                       ; main must NEVER return!

使用特权

评论回复
gangdou|  楼主 | 2009-5-27 08:21 | 显示全部楼层

解决了

要添加一个INITSTATICVAR编译选项

使用特权

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

本版积分规则

138

主题

167

帖子

1

粉丝