TI中文支持网
TI专业的中文技术问题搜集分享网站

2812 cmd 疑问

/*源程序*/

………

#pragma DATA_SECTION(SCIA_CCR,"sciaccrfile"); //    为SCIA的通信控制寄存器CCR新建一个段

unsigned int SCIA_CCR;

#pragma DATA_SECTION(a,"afile"); //    创建一个变量a

unsigned int a;

……..

void main()

{

……….

  SCIA_CCR = 1;

a=1;

………

}

/*cmd文件*/

MEMORY

{

……

  PAGE1: A:origin=0x3D8000,length = 0x000001

……

PAGE1:SCIACCR:origin=0x007050,length=0x000001

……

}

SECTIONS

{

……

afile:>A,PAGE = 1

sciaccrfile:>SCIACCR,PAGE=1

……

}

我的理解:经过该cmd文件链接,将程序烧入FLASH后,afile段被真正地烧在FLASH中,即FLASH中地址为0x3D8000的内容为1,且保持不变,而对于sciaccrfile段,只是使得SCIA_CCR代表地址0x007050,在程序上电瞬间,地址为0x007050的内容仍然是默认的复位值,只有等到程序执行到main函数中的  SCIA_CCR = 1语句后,地址为0x007050的内容才变成1,请问是这样的吗?

yong yan:

give me a hand please!

/*源程序*/

………

#pragma DATA_SECTION(SCIA_CCR,"sciaccrfile"); //    为SCIA的通信控制寄存器CCR新建一个段

unsigned int SCIA_CCR;

#pragma DATA_SECTION(a,"afile"); //    创建一个变量a

unsigned int a;

……..

void main()

{

……….

  SCIA_CCR = 1;

a=1;

………

}

/*cmd文件*/

MEMORY

{

……

  PAGE1: A:origin=0x3D8000,length = 0x000001

……

PAGE1:SCIACCR:origin=0x007050,length=0x000001

……

}

SECTIONS

{

……

afile:>A,PAGE = 1

sciaccrfile:>SCIACCR,PAGE=1

……

}

我的理解:经过该cmd文件链接,将程序烧入FLASH后,afile段被真正地烧在FLASH中,即FLASH中地址为0x3D8000的内容为1,且保持不变,而对于sciaccrfile段,只是使得SCIA_CCR代表地址0x007050,在程序上电瞬间,地址为0x007050的内容仍然是默认的复位值,只有等到程序执行到main函数中的  SCIA_CCR = 1语句后,地址为0x007050的内容才变成1,请问是这样的吗?

yong yan:

回复 Eric Ma:

thanks,Eric。

能再帮我看看下面两个帖子么?thank you so much!

http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/45757.aspx

http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/45755.aspx

赞(0)
未经允许不得转载:TI中文支持网 » 2812 cmd 疑问
分享到: 更多 (0)