This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335 未初始化的全局变量不是自动给零 .bss : fill = 0x00 也没用

如题 ,查找资料 说是在cmd 文件中 .bss :fill = 0x00   .ebss : fill = 0x00

就可以初始化该段 但是使用后发现没有效果 内存里的变量并不是零。

然后还有问题就是 bss 和 ebss 段的差别是什么 貌似都是未初始化段 并且程序里面这两个段里面都是有数据

请高人解答

  • 会不会是这个原因:

    CMD在初始化的时候已经清零了,但是在程序里面,有使用这几个区,比如声明变量之类的操作,然后其值就不为零了?

    意思是,在程序运行时候,CMD初始化和划分部分最早被执行,程序中的变量声明啊,初始化数据之类的随后被加载进来?

  • .bss Global and static variables Low 64K
    .ebss Far global/static variables Anywhere in data

    现在TI提供的例程中CMD基本都是用ebss.

    没有初始化的变量,确实不会自动初始化为0,你可以在定义变量的时候定义初始值啊,这是一个好的习惯。

    Eric

  • 如果你想在段中定义变量初始值为0, 可以用以下方式

    cmd:

    .ebss               : > RAML2       PAGE = 1   fill = 0x00

    源文件中:

    Uint32 test;

    Eric