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.

关于C2000编译器.ebss : > RAML2 PAGE = 1 fill = 0x00不起作用与C6000编译器的区别,请指教!

各位大咖,我的程序不是特别大,28335核心,下载到flash里面,上电之后,全部搬运到ram里面吗,在cmd文件里面做了如下设置,.ebss   : > RAML2   PAGE = 1  fill = 0x00,发现上电后有很多未初始化变量不是0,而C6000的编译器,会全部清零,请问C2000如何保证做到上电之后,默认变量全部清零?谢谢。

  • restart之后会将全局变量清零,但对于没有给初始值的变量,reset后会保持默认值。
  • restart之后会将全局变量清零,这个全局变量是赋初值为0的变量吗?但对于没有给初始值的变量,reset后会保持默认值,默认值是随机的,是吗?那.ebss : > RAML2 PAGE = 1 fill = 0x00还有什么作用??
  • 没有初始化的变量,不会自动初始化为0,但您可以在定义变量的时候定义初始值

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

    cmd:

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

    源文件中:

    Uint32 test;


    e2echina.ti.com/.../101473
  • 是,我的问题就是,用了这种方式,就是cmd文件这种方式,cmd: .ebss : > RAML2 PAGE = 1 fill = 0x00,仍然有一部分变量不会自动定义初始值为零,为什么呢?我这样做了,但是还有一部分是非零值