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.

TMS320C6678: 上电复位问题,请教论坛里各位技术专家

Part Number: TMS320C6678


我们处理板的硬件架构是V7690T+C6678,由FPGA控制DSP进行复位操作,采用的是 手册中的Core-Before-IO Power Sequencing,DSP外挂NORFLASH,程序也存储在NORFLASH中,上电时FPGA通过GPIO管脚配置 DEVSTAT寄存器为EMIF16加载,以上为基本情况。

现象如下:在测试中发现,FPGA在完成复位操作(RESET拉高,POR拉高,RESETFULL拉高)后,监测DSP端RESETSTAT管脚状态由低变高,显示DSP已经被成功复位,但是此时程序并没有运行,连接仿真器发现指针卡在RBL的开头处(0x20B00000),反复测量现象一致(此时在CCS中点击resume,程序可以正常运行),开始怀疑是那几个CVDD上电时序问题,用示波器测量后发现上电时序和电平值完全满足要求。后来修改FPGA程序,将无关模块删除,仅保留给DSP复位的模块,再测试,DSP可以正常工作。此时由于FPAG程序规模变小,整个处理板电流降低了约1A左右(5.2V供电)。

问题如下:

1.DSP在完成复位后(RESETSTAT拉高),根据配置应该就开始执行RBL中的代码,为何会卡在0x20B00000处不执行呢,是否还需要其它操作?

2.删除FPGA无关模块后,DSP可以正常加载运行,与异常状态唯一区别在于FPGA程序规模的降低,那处理板供电能力不足会不会导致这种异常现象呢?若是的话应当从哪里排查呢?

多谢各位专家

  • 1. 接仿真器的话,PC指针停在ROM bootloader开始处是正常的,后面就可以通过用仿真器跟踪ROM bootloader的运行过程。现在的问题是单步也不能往下执行么?一定要resume才可以?

    2. FPGA和DSP用的是同一个供电模块?

  • 你好,我们是通过外部监测,发现程序没有运行起来的时候才去接的仿真器,发现指针是停在ROM bootloader开始处;如果程序运行起来再接仿真器,那指针就是停在正确的内部地址范围内。这是不是可以说明当程序没有运行起来的时候,就是卡在ROM bootloader开始处的地方呢?单步能否执行这个问题我们再测试一下。

    第二个问题,是同一个模块

  • 发现指针是停在ROM bootloader开始处;如果程序运行起来再接仿真器,那指针就是停在正确的内部地址范围内。

    这个是正常的。接仿真器,会停在ROM bootloader起始地址。