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.
我是做在线烧录器的,最近在给tms320f28374s开发烧录算法。发现在烧了某个客户程序后,重新上电,再烧录,就失败了。我写的烧录驱动程序无法正常运行,但是把flash内容清除,或者烧了别的程序,就正常。我看文档里有Debugger Reset,但是没有详细资料,TI官方可否提供相关信息?
您好,
您不是要烧录MS320F28374S吗?
请参考芯片的 设计手册 "Table 3-1. Reset Signals "和“3.3.10 Test Reset (TRST) ”
TMS320F2837xS Real-Time Microcontrollers Technical Reference Manual (Rev. H)
您好!
我现在是用我的设备向tms320f28374s烧了客户的程序。
重新上电后,准备再烧的时候,我的设备会先发一段要在tms320f28374s的ram区运行的驱动程序,这个驱动程序运行后没有重新halt住芯片。但是用uniflash和CCS都没有这个问题,我不知道是什么原因导致的。
我之前是猜测与SYSRS有关。你这边有没有一些排查的思路?
谢谢!
您好!
flash api我都已经跑通了,烧录别的程序都正常。但是烧客户的某一个程序,就遇到上述问题。我怀疑是客户程序启动后,某个寄存器被修改了,导致我的驱动程序无法正常运行。
你这边有什么关于uniflash初始化芯片的资料吗?
您好,
这边您好像没有理解我的问题。我现在要通过jtag去控制芯片的内核,执行一些特定操作。
现在这个芯片已被烧过程序且运行起来了,势必它的寄存器会被程序修改。这个时候,我用uniflash去重新烧录的话,uniflash连接芯片的时候,肯定会对芯片做一些类似复位和初始化的操作,让芯片处于一个干净的状态。比如会关闭看门狗,否则烧录到一半,看门狗溢出就会复位芯片了,导致烧录失败。
由于xds100用的14PIN接线是没有硬件复位脚的,所以uniflash烧录芯片,是不是发些jtag命令让芯片恢复到初始状态?
谢谢!
你的意思是通过jtag口发出复位命令吗?如果只想调用GEL的话有GEL_Reset()命令,7.9.8.70. GEL_Reset() — Code Composer Studio 12.7.0 Documentation
如果编写JTAG程序的话参考这个里面的spruf82_c28x.pdf:[FAQ] TMS320F28377D: Standalone Flash Programmer - C2000 microcontrollers forum - C2000︎ microcontrollers - TI E2E support forums
好的。
我这个问题已解决了,添加了CPU reset流程:
Set the reset bit in MF1
Execute a single step on the core (required to actually do the reset)
Check SSR until you see the reset acknowledged
Clear the reset bit in MF1
谢谢!