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

TMS320F28377D: 串口烧写hex出现问题,一次bootloader怎么配置

Part Number:TMS320F28377D

你好,我在第一次使用TMS320F28377D芯片,想要利用C2PROG通过SCI串口将程序烧写进芯片中,将GPIO72置高,GPIO84置低,断电重启,照理说进入了SCI_Bootloader模式,但是烧写不成功,其中hex文件是由CCS生成的,串口也能正常通讯。以下是烧写的截图

在之前使用28335芯片时,可以烧写成功。

在这种情况下,我的问题如下:1、我这种行为应该称为一次Bootloader吧?应该不需要改动cmd文件吧?因为我记得28335不需要改动cmd配置即可烧写,还是说28335也需要改动cmd文件,只是因为我看书不认真,没注意?

2、烧写不成功的原因有哪些?比如:需要修改文件配置,而我没有做?如果是这种原因,我希望您能指导我如何配置;我将我的cmd代码附上,麻烦您看一下;

3、官方提供的例程中,有一个F2837xD_sci_flash_kernels的例程,这个例程的内容应该是二次bootloader吧?还是说它其实是一次bootloader,我应该按照这个例程学习?

我问的问题有点新手,麻烦您了,谢谢。

MEMORY
{
PAGE 0 :  /* Program Memory *//* Memory (RAM/FLASH) blocks can be moved to PAGE1 for data allocation *//* BEGIN is used for the "boot to Flash" bootloader modeIPCBootCPU*/BEGIN	: origin = 0x080000, length = 0x000002RAMM0	: origin = 0x000122, length = 0x0002DERAMD0	: origin = 0x00B000, length = 0x000800RAMLS0	: origin = 0x008000, length = 0x000800RAMLS1	: origin = 0x008800, length = 0x000800RAMLS2		: origin = 0x009000, length = 0x000800RAMLS3		: origin = 0x009800, length = 0x000800RAMLS4		: origin = 0x00A000, length = 0x000800RESET	: origin = 0x3FFFC0, length = 0x000002/* Flash sectors */FLASHA: origin = 0x080002, length = 0x001FFE	/* on-chip Flash */FLASHB: origin = 0x082000, length = 0x002000	/* on-chip Flash */FLASHC: origin = 0x084000, length = 0x002000	/* on-chip Flash */FLASHD: origin = 0x086000, length = 0x002000	/* on-chip Flash */FLASHE: origin = 0x088000, length = 0x008000	/* on-chip Flash */FLASHF: origin = 0x090000, length = 0x008000	/* on-chip Flash */FLASHG: origin = 0x098000, length = 0x008000	/* on-chip Flash */FLASHH: origin = 0x0A0000, length = 0x008000	/* on-chip Flash */FLASHI: origin = 0x0A8000, length = 0x008000	/* on-chip Flash */FLASHJ: origin = 0x0B0000, length = 0x008000	/* on-chip Flash */FLASHK: origin = 0x0B8000, length = 0x002000	/* on-chip Flash */FLASHL: origin = 0x0BA000, length = 0x002000	/* on-chip Flash */FLASHM: origin = 0x0BC000, length = 0x002000	/* on-chip Flash */FLASHN: origin = 0x0BE000, length = 0x002000	/* on-chip Flash */

PAGE 1 : /* Data Memory *//* Memory (RAM/FLASH) blocks can be moved to PAGE0 for program allocation */BOOT_RSVD: origin = 0x000002, length = 0x000120/* Part of M0, BOOT rom will use this for stack */RAMM1: origin = 0x000400, length = 0x000400/* on-chip RAM block M1 */RAMD1: origin = 0x00B800, length = 0x000800RAMLS5: origin = 0x00A800, length = 0x000800

	/**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**CPU1**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**/RAMGS0: origin = 0x00C000, length = 0x001000RAMGS1: origin = 0x00D000, length = 0x001000RAMGS2: origin = 0x00E000, length = 0x001000
// RAMGS3: origin = 0x00F000, length = 0x001000
// RAMGS4: origin = 0x010000, length = 0x001000
// RAMGS5: origin = 0x011000, length = 0x001000RAMGS345: origin = 0x00F000, length = 0x003000
//RAMGS6: origin = 0x012000, length = 0x001000RAMGS6_0: origin = 0x012000, length = 0x000100RAMGS6_1: origin = 0x012100, length = 0x000100RAMGS6_2: origin = 0x012200, length = 0x000800RAMGS6_3: origin = 0x012A00, length = 0x000080RAMGS6_4: origin = 0x012A80, length = 0x000040RAMGS6_5: origin = 0x012AC0, length = 0x000040RAMGS6_6: origin = 0x012B00, length = 0x000500RAMGS7: origin = 0x013000, length = 0x001000RAMGS8: origin = 0x014000, length = 0x001000RAMGS9: origin = 0x015000, length = 0x001000

	/**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**CPU2**↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓**/RAMGS10: origin = 0x016000, length = 0x001000RAMGS11: origin = 0x017000, length = 0x001000
//RAMGS12: origin = 0x018000, length = 0x001000/* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */RAMGS12_0: origin = 0x018000, length = 0x000800RAMGS12_1: origin = 0x018800, length = 0x000800RAMGS13: origin = 0x019000, length = 0x001000/* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */RAMGS14: origin = 0x01A000, length = 0x001000/* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */RAMGS15: origin = 0x01B000, length = 0x001000/* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */CPU2TOCPU1RAM: origin = 0x03F800, length = 0x000400CPU1TOCPU2RAM: origin = 0x03FC00, length = 0x000400
}

SECTIONS
{/* Allocate program areas: */.cinit: > FLASHBPAGE = 0, ALIGN(4).pinit: > FLASHB,PAGE = 0, ALIGN(4).text: >> FLASHB | FLASHC | FLASHD | FLASHEPAGE = 0, ALIGN(4)codestart: > BEGINPAGE = 0, ALIGN(4)/* Allocate uninitalized data sections: */.stack: > RAMM1PAGE = 1.ebss: >> RAMLS5 | RAMGS0 | RAMGS1PAGE = 1.esysmem: > RAMLS5PAGE = 1/* Initalized sections go in Flash */.econst: >> FLASHF | FLASHG | FLASHHPAGE = 0, ALIGN(4).switch: > FLASHBPAGE = 0, ALIGN(4).reset: > RESET,PAGE = 0, TYPE = DSECT /* not used, */Filter_RegsFile: > RAMGS0,PAGE = 1SHARERAMGS0		: > RAMGS0,		PAGE = 1SHARERAMGS1		: > RAMGS1,		PAGE = 1SHARERAMGS2		: > RAMGS2,		PAGE = 1
//SHARERAMGS3		: > RAMGS3,		PAGE = 1
//SHARERAMGS4		: > RAMGS4,		PAGE = 1
//SHARERAMGS5		: > RAMGS5,		PAGE = 1
//SHARERAMGS6		: > RAMGS6,		PAGE = 1SHARERAMGS7		: > RAMGS7,		PAGE = 1SHARERAMGS8		: > RAMGS8,		PAGE = 1SHARERAMGS9		: > RAMGS9,		PAGE = 1SHARERAMGS10		: > RAMGS10,	PAGE = 1SHARERAMGS11		: > RAMGS11,	PAGE = 1
//SHARERAMGS12		: > RAMGS12,	PAGE = 1SHARERAMGS13		: > RAMGS13,	PAGE = 1SHARERAMGS14		: > RAMGS14,	PAGE = 1SHARERAMGS15		: > RAMGS15,	PAGE = 1/* Allocate DMA-accessible RAM sections: */DMARAMGS345: >RAMGS345PAGE = 1GSRAM_SCOPE: >RAMGS8PAGE = 1		/* CPU1:R/WCPU2:R*/C1SHRAM_SETUP: > RAMGS6_0PAGE = 1C1SHRAM_RUNTIME: > RAMGS6_1PAGE = 1C1SHRAM_REAL: > RAMGS6_2PAGE = 1C1SHRAM_PWM: > RAMGS6_3PAGE = 1C1SHRAM_TASKTIME: > RAMGS6_4PAGE = 1C1SHRAM_OUTPUT: > RAMGS6_5PAGE = 1C1SHRAM_C1TOC2: > RAMGS6_6PAGE = 1/* CPU1:RCPU2:R/W*/C2SHRAM_USB: > RAMGS12_0PAGE = 1C2SHRAM_R12_RCV: > RAMGS12_1PAGE = 1


#ifdef __TI_COMPILER_VERSION__
	#if __TI_COMPILER_VERSION__ >= 15009000
	.TI.ramfunc : {} LOAD = FLASHD,RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,LOAD_START(_RamfuncsLoadStart),LOAD_SIZE(_RamfuncsLoadSize),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),RUN_SIZE(_RamfuncsRunSize),RUN_END(_RamfuncsRunEnd),PAGE = 0, ALIGN(4)
	#elseramfuncs: LOAD = FLASHD,RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,LOAD_START(_RamfuncsLoadStart),LOAD_SIZE(_RamfuncsLoadSize),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),RUN_SIZE(_RamfuncsRunSize),RUN_END(_RamfuncsRunEnd),PAGE = 0, ALIGN(4)#endif
#endif/* The following section definitions are required when using the IPC API Drivers */GROUP : > CPU1TOCPU2RAM, PAGE = 1{PUTBUFFERPUTWRITEIDXGETREADIDX}GROUP : > CPU2TOCPU1RAM, PAGE = 1{GETBUFFER :TYPE = DSECTGETWRITEIDX :  TYPE = DSECTPUTREADIDX :TYPE = DSECT}/* The following section definition are for SDFM examples */
//Filter1_RegsFile : > RAMGS1,	PAGE = 1, fill=0x1111
//Filter2_RegsFile : > RAMGS2,	PAGE = 1, fill=0x2222
//Filter3_RegsFile : > RAMGS3,	PAGE = 1, fill=0x3333
//Filter4_RegsFile : > RAMGS4,	PAGE = 1, fill=0x4444
//Difference_RegsFile : >RAMGS5, 	PAGE = 1, fill=0x3333
}

/*
//===========================================================================
// End of file.
//===========================================================================
*/

Green Deng:

你好,看一下datasheet,应该是72置低,84置高。

另外你看的例程确实是二次bootloader的,不适合你使用

,

user6242470:

您好,谢谢您的回答

应该是我描述错误,实际上的我把GPIO84置高、74置低了,但是还是没有烧写成功,我想确定一下,一次bootloader是不需要修改文件的吧?另外,我怀疑是C2prog的原因,请问您知道其他软件可以用来通过sci232串口烧写hex文件的吗?我想换个软件试试.

,

Green Deng:

不需要修改工程。可以试一下将SCI引脚直接连接到PC端的串口引脚进行烧写,有些RS-232转RS-485的接口工具并不能很好工作

,

user6242470:

明白了,谢谢您,我去试试

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: 串口烧写hex出现问题,一次bootloader怎么配置
分享到: 更多 (0)