Part Number:TMS320F280049Other Parts Discussed in Thread:C2000WARE
在我测试该Demo的时候,我先烧录了BANK0_LDFU的flashapi_ex2_kernel,
随后将buck_nonpowerSUITE_F28004x_lfu的BANK1_FLASH生成的“buck_nonpowerSUITE_F28004x_lfuBANK1FLASH.txt”
通过TI目录下的“serial_flash_programmer_appln.exe”烧录
串口能成功烧录一段时间
随后突然卡在某一段闪退了
我重新上电重新烧录等方法都试过了还是一直这样,这个在后台运行的任务也是一直占用串口但烧录不会完成,随后我又试过C2000Ware_DigitalPower_SDK_4_03_00_00,甚至5.0版本的还是会这样,请问这是什么原因?
YingJed Ying:
还有一个疑问,我在C2000Ware5.0的版本里看到了CAN的烧录工具但是没有F28004x的例程,我看手册芯片是应该是支持can烧写的呀
,
Ben Qin:
你好,我查看下相关资料,稍后回复您。
,
Ben Qin:
你查看过该用户手册了吗?
www.ti.com/…/tiduey4d.pdf
YingJed Ying said:我在C2000Ware5.0的版本里看到了CAN的烧录工具但是没有F28004x的例程,我看手册芯片是应该是支持can烧写的呀
请到该路径下查看一下:
C:\ti\c2000\C2000Ware_5_00_00_00\utilities\flash_programmers\can_flash_programmer
,
YingJed Ying:
是的但是这个CAN的不是只有一个F28003X的嘛
,
YingJed Ying:
看过了,我的步骤应该和你给的手册一样吧,但是我的闪退烧不进去嘛
,
Ben Qin:
好的,我看一下。
,
YingJed Ying:
关于demo程序烧不进去的事,我很抱歉,那个好像是我电脑的问题我更换了电脑后运行demo串口烧写后就解决了,然后我开始尝试像"buck_nonpower_SUITE_F28004x_lfu_control"配置CMD然后先烧录“flashapi_ex2_sci_kernel”的BANK0再利用"serial_flash_programmer_appln.exe"烧录我的代码即"b1.txt"但烧写还是会停下,但这次就没有闪退了。以我看手册的理解“flashapi_ex2_sci_kernel”烧写进去后它的串口写的应该是BANK1的区域那么只要我程序的CMD不涉及到BANK0就行,请问是我的理解有问题吗?
我的CMD配置如下没有任何涉及到BANK0为什么烧录不进去呢?
MEMORY { PAGE 0 :/* BEGIN is used for the "boot to Flash" bootloader mode*/BEGIN: origin = 0x09EFF0, length = 0x000002C_INT_LFU: origin = 0x09EFF4, length = 0x000100RAMM0: origin = 0x0000F5, length = 0x00030BRAMLS0LS1: origin = 0x008000, length = 0x001000RAMLS2LS3LS4LS5: origin = 0x009000, length = 0x002000RAMGS0GS1: origin = 0x00C000, length = 0x002000RESET: origin = 0x3FFFC0, length = 0x000002/* Flash sectors *//* BANK 0 */FLASH_BANK0_SEC0: origin = 0x080000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC1: origin = 0x081000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC2: origin = 0x082000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC3: origin = 0x083000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC4: origin = 0x084000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC5: origin = 0x085000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC6: origin = 0x086000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC7: origin = 0x087000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC8_9_10: origin = 0x088000, length = 0x03000 /* on-chip Flash */FLASH_BANK0_SEC11 : origin = 0x08B000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC12 : origin = 0x08C000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC13 : origin = 0x08D000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC14 : origin = 0x08E000, length = 0x001000 /* on-chip Flash */FLASH_BANK0_SEC15 : origin = 0x08F000, length = 0x001000 /* on-chip Flash *//* BANK 1 */FLASH_BANK1_SEC0: origin = 0x090000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC1: origin = 0x091000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC2: origin = 0x092000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC3: origin = 0x093000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC4: origin = 0x094000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC5: origin = 0x095000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC6: origin = 0x096000, length = 0x005000 /* on-chip Flash */ //FLASH_BANK1_SEC7: origin = 0x097000, length = 0x001000 /* on-chip Flash */ //FLASH_BANK1_SEC8_9_10: origin = 0x098000, length = 0x03000 /* on-chip Flash */FLASH_BANK1_SEC11 : origin = 0x09B000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC12 : origin = 0x09C000, length = 0x001000 /* on-chip Flash */FLASH_BANK1_SEC13 : origin = 0x09D000, length = 0x001FF0 /* on-chip Flash */ //FLASH_BANK1_SEC14 : origin = 0x09E000, length = 0x000FF0 /* on-chip Flash */FLASH_BANK1_SEC15 : origin = 0x09F0F4, length = 0x000F0C /* on-chip Flash */PAGE 1 :BOOT_RSVD: origin = 0x000002, length = 0x0000F3/* Part of M0, BOOT rom will use this for stack */RAMM1: origin = 0x000400, length = 0x000400/* on-chip RAM block M1 */RAMLS6: origin = 0x00B000, length = 0x000800RAMLS7: origin = 0x00B800, length = 0x000800RAMGS2: origin = 0x010000, length = 0x002000RAMGS3: origin = 0x012000, length = 0x002000 }SECTIONS {codestart: > BEGIN,PAGE = 0, ALIGN(4)c_int_lfu_bank1: > C_INT_LFU, PAGE = 0, ALIGN(4).text: >>FLASH_BANK1_SEC4 | FLASH_BANK1_SEC5 | FLASH_BANK1_SEC6,PAGE = 0, ALIGN(4).cinit: > FLASH_BANK1_SEC3,PAGE = 0, ALIGN(4).init_array: > FLASH_BANK1_SEC3,PAGE = 0, ALIGN(4).switch: > FLASH_BANK1_SEC3,PAGE = 0, ALIGN(4).const: > FLASH_BANK1_SEC3,PAGE = 0, ALIGN(4).reset: > RESET,PAGE = 0, TYPE = DSECT /* not used, */.stack: > RAMM1,PAGE = 1.data: > RAMLS0LS1, PAGE = 0.bss: > RAMLS0LS1, PAGE = 0.sysmem: > RAMGS2,PAGE = 1.TI.noinit: > RAMLS6PAGE = 1GROUP{.TI.ramfunc //{ //-l sfra_f32_tmu_eabi.lib //}ramfuncs} LOAD = FLASH_BANK1_SEC11,RUN = RAMGS0GS1,LOAD_START(RamfuncsLoadStart),LOAD_SIZE(RamfuncsLoadSize),LOAD_END(RamfuncsLoadEnd),RUN_START(RamfuncsRunStart),RUN_SIZE(RamfuncsRunSize),RUN_END(RamfuncsRunEnd),PAGE = 0, ALIGN(4)SFRA_F32_Data: > RAMLS0LS1, ALIGN = 64, PAGE = 0FPUmathTables: > FLASH_BANK1_SEC12,PAGE =0.scratchpad: > RAMLS0LS1,PAGE = 0.bss_cla: > RAMLS0LS1,PAGE = 0controlVariables : > RAMLS0LS1,PAGE = 0.const_cla:LOAD = FLASH_BANK1_SEC13,//RUN = RAMLS2LS3LS4LS5,RUN_START(Cla1ConstRunStart),LOAD_START(Cla1ConstLoadStart),LOAD_SIZE(Cla1ConstLoadSize),PAGE = 0GROUP{isrcodefuncsdclfuncs}LOAD = FLASH_BANK1_SEC13,//RUN =RAMLS2LS3LS4LS5,LOAD_START(isrcodefuncsLoadStart),LOAD_SIZE(isrcodefuncsLoadSize),LOAD_END(isrcodefuncsLoadEnd),RUN_START(isrcodefuncsRunStart),RUN_SIZE(isrcodefuncsRunSize),RUN_END(isrcodefuncsRunEnd),PAGE = 0, ALIGN(4)/* CLA specific sections */Cla1Prog: LOAD = FLASH_BANK1_SEC13,RUN = RAMLS2LS3LS4LS5,LOAD_START(Cla1ProgLoadStart),RUN_START(Cla1ProgRunStart),LOAD_SIZE(Cla1ProgLoadSize),PAGE = 0, ALIGN(4)}/* //=========================================================================== // End of file. //=========================================================================== */
,
YingJed Ying:
我是准备写这部分因此我尝试利用串口烧写我的代码,如果可以完成我再补充串口烧写的内容,我的代码即生成“b1.txt”的工程完全不涉及任何串口烧写的部分代码本身我利用烧录器将b1工程本身烧录进去是可以正常执行的,我已经在CMD把BANK0空出来,我认为用串口烧录的时候应该是可以把我这个只涉及BANK1的代码烧写进去,但现在烧写会停留,而且每次都是停在同一个地方,请问是我忽略了什么别的特性吗?
,
Ben Qin:
YingJed Ying said:用"serial_flash_programmer_appln.exe"烧录我的代码
用serial_flash_programmer.exe试一下。
,
YingJed Ying:
发了个“aa”就卡住了
,
Ben Qin:
你对CMD文件做出修改了是吗?
不做修改的情况下,只使用例程,按照user guide 第3.4章节中给出的步骤测试能否成功?
,
YingJed Ying:
只使用例程是可以的
,
Ben Qin:
YingJed Ying said:请问是我的理解有问题吗?
按照你的意思,bootloader在bank0,app在bank1.正如手册上提到的,
只能建议对照手册仔细检查步骤。
,
YingJed Ying:
好吧,感谢回复
,
YingJed Ying:
闪退:是我电脑问题
修改CMD烧录一半卡住了,是我程序CMD的配置RAM部分与例程"flashapi_ex2_kernel"的CMD配置有冲突,不能使用LS0和LS5
我的操作如下:
1、使用烧录器烧录例程"flashapi_ex2_kernel"的BANK0_LDFU部分(擦除所有FLASH)
2、使用串口烧录我的程序的BANK1部分
3、重启电路(断电再上电)验证BANK1部分运行正常
4、用烧录器烧录例程"flashapi_ex2_kernel"的BANK1_LDFU部分(仅擦除必要的扇区)
5、使用串口烧录我的程序的BANK0部分
6、重启电路(断电再上电)验证BANK0部分运行正常
7、使用串口烧录我的程序的BANK1部分
8、重启电路(断电再上电)验证BANK1运行
执行完第8步后我的电路运行不正常运行灯也不亮,随后我用烧录器烧录了例程"buck_nonpowerSUITE_F28004x"(擦除所有的FLASH)程序运行正常,但是断电后运行又不正常了运行灯也不亮。例程"buck_nonpowerSUITE_F28004x"我在之前也用烧录器烧录过断电重启后是可以正常运行的,然后我换了一个一样的电路用烧录器烧录例程例程"buck_nonpowerSUITE_F28004x"(擦除所有的FLASH)断电后是可以正常运行的,于是我又重复了上面的8个步骤,再用烧录器烧录例程例程"buck_nonpowerSUITE_F28004x"断电重启后又不能正常运行了。
我怀疑我的芯片现在断电后无法正常跳转到codestart的部分,但我又想不到该怎么验证,想请问一下,有没有方法能让芯片恢复到用烧录器烧录例程例程"buck_nonpowerSUITE_F28004x"断电重启后也能正常运行呢?