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.

[参考译文] TMS320F280025C:使用闪存.cmd 文件的 DCL 实现

Guru**** 2394305 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1273213/tms320f280025c-dcl-implementation-with-flash-cmd-file

器件型号:TMS320F280025C

尊敬的 Champ:  

我要求为我的客户提供服务。

正在尝试使用自定义的闪存.cmd 配置来实现 DCL 示例(NLPID)。 客户不修改示例中的主代码、只修改预定义_FLASH。

工程 已成功构建并正确编程到器件中、没有错误。 但是、一旦完成编程、就无法使用"恢复"按钮运行代码。

点击调试窗口中的 TI XDS110 USB Debug Probe、然后暂停代码。 它会跳出 ~μ\F280025_NLPID\CPU1_RAM\F280025_NLPID.out:{3}0xc057{4}"的"SYSCTL_DELAY ()无可用源。

下面是闪存.cmd。 来自客户的配置。

MEMORY
{

PAGE 0 :
   BEGIN           	: origin = 0x000000, length = 0x000002
   RAMM0           	: origin = 0x0000F5, length = 0x00030B
   RAMLS456   		: origin = 0x00A000, length = 0x001800
   RESET           	: origin = 0x3FFFC0, length = 0x000002

   /* BANK 0 */
   FLASH_BANK0_SEC0  : origin = 0x080000, length = 0x001000
   FLASH_BANK0_SEC1  : origin = 0x081000, length = 0x001000
//  FLASH_BANK0_SEC2  : origin = 0x082000, length = 0x001000
//  FLASH_BANK0_SEC3  : origin = 0x083000, length = 0x001000
//  FLASH_BANK0_SEC4  : origin = 0x084000, length = 0x001000
//  FLASH_BANK0_SEC5  : origin = 0x085000, length = 0x001000
   FLASH_BANK0_SEC2_5 : origin = 0x082000, length = 0x004000
   FLASH_BANK0_SEC6  : origin = 0x086000, length = 0x001000
   FLASH_BANK0_SEC7  : origin = 0x087000, length = 0x001000
   FLASH_BANK0_SEC8  : origin = 0x088000, length = 0x001000
   FLASH_BANK0_SEC9  : origin = 0x089000, length = 0x001000
   FLASH_BANK0_SEC10 : origin = 0x08A000, length = 0x001000
   FLASH_BANK0_SEC11 : origin = 0x08B000, length = 0x001000
   FLASH_BANK0_SEC12 : origin = 0x08C000, length = 0x001000
   FLASH_BANK0_SEC13 : origin = 0x08D000, length = 0x001000
   FLASH_BANK0_SEC14 : origin = 0x08E000, length = 0x001000
   FLASH_BANK0_SEC15 : origin = 0x08F000, length = 0x001000

  /* BANK 1 */
//   FLASH_BANK1_SEC0  : origin = 0x090000, length = 0x001000
//   FLASH_BANK1_SEC1  : origin = 0x091000, length = 0x001000
//   FLASH_BANK1_SEC2  : origin = 0x092000, length = 0x001000
   FLASH_BANK1_SEC3  : origin = 0x093000, length = 0x001000
   FLASH_BANK1_SEC4  : origin = 0x094000, length = 0x001000
   FLASH_BANK1_SEC5  : origin = 0x095000, length = 0x001000
   FLASH_BANK1_SEC6  : origin = 0x096000, length = 0x001000
   FLASH_BANK1_SEC7  : origin = 0x097000, length = 0x001000
   FLASH_BANK1_SEC8  : origin = 0x098000, length = 0x001000
   FLASH_BANK1_SEC9  : origin = 0x099000, length = 0x001000
   FLASH_BANK1_SEC10 : origin = 0x09A000, length = 0x001000
   FLASH_BANK1_SEC11 : origin = 0x09B000, length = 0x001000
   FLASH_BANK1_SEC12 : origin = 0x09C000, length = 0x001000
   FLASH_BANK1_SEC13 : origin = 0x09D000, length = 0x001000
   FLASH_BANK1_SEC14 : origin = 0x09E000, length = 0x001000
   FLASH_BANK1_SEC15 : origin = 0x09F000, length = 0x001000

PAGE 1 :
   BOOT_RSVD   : origin = 0x000002, length = 0x0000F3
   RAMM1       : origin = 0x000400, length = 0x000400
   RAMLS7a     : origin = 0x00B800, length = 0x000400
   RAMLS7b     : origin = 0x00BC00, length = 0x000400
   RAMGS0a     : origin = 0x00C000, length = 0x000400
   RAMGS0b     : origin = 0x00C400, length = 0x000400
   FLASH_BANK1_SEC0_1_2 : origin = 0x090000, length = 0x003000

}


SECTIONS
{
   codestart        : > BEGIN, ALIGN(8)
   .text            : > FLASH_BANK0_SEC2_5,   ALIGN(8)
   .cinit           : > FLASH_BANK0_SEC1,  ALIGN(8)
   .switch          : > FLASH_BANK0_SEC1,  ALIGN(8)
   .reset           : > RESET,                  TYPE = DSECT /* not used, */
   .stack           : > RAMM1

   .init_array      : > FLASH_BANK0_SEC1,  ALIGN(8)
   .bss             : > RAMGS0b
   .bss:output      : > RAMGS0b
   .bss:cio         : > RAMGS0b
   .const           : > FLASH_BANK0_SEC1,  ALIGN(8)
   .data            : > RAMGS0b
   .sysmem          : > RAMGS0b


  .TI.ramfunc      : LOAD = FLASH_BANK0_SEC1,
                  RUN = RAMLS456,
                  LOAD_START(RamfuncsLoadStart),
                  LOAD_SIZE(RamfuncsLoadSize),
                  LOAD_END(RamfuncsLoadEnd),
                  RUN_START(RamfuncsRunStart),
                  RUN_SIZE(RamfuncsRunSize),
                  RUN_END(RamfuncsRunEnd),
                  ALIGN(8)

	dclfuncs  		 : > FLASH_BANK0_SEC1, 		PAGE = 0	align(4)

	pDataLogSection	 : > FLASH_BANK1_SEC0_1_2,		PAGE = 1	align(4)
	qDataLogSection	 : > FLASH_BANK1_SEC0_1_2,		PAGE = 1	align(4)
	sDataLogSection	 : > FLASH_BANK1_SEC0_1_2,		PAGE = 1	align(4)
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/

.cmd 文件是否有任何问题? 是否有解决这一问题的建议?

谢谢。此致、

约翰尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Johnny、

    这是 F28002x、它只有1个闪存组 -组0。

    P、q 和 s DataLogSections 分配给闪存组1、F28002x 上不存在。 此问题应该已解决。

    谢谢。

    Sira

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sira:

    你是对的,我的错。

    我不知道这一点、因为原始.cmd 文件是在 F28002x 的 DCL 示例中通过2个存储体闪存给出的。

    谢谢。此致、

    约翰尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、Johnny。