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.

纯软件问题导致DSP的复位脚周期性复位

Other Parts Discussed in Thread: CONTROLSUITE

板子用别人的代码复位脚很正常,用我的代码后复位脚就出现下面的情况,看门狗是关闭的,不会是看门狗复位。

  • kuntay,

    从这个周期性延时及时间来看,应该是看门狗导致的复位。

    看门狗默认是打开的。你的工程中是否有DSP28xxx_CodeStartBranch.asm代码,这个是用于关看门狗及跳转到用户程序的。

    Eric

  • 在代码开头加入下面这段后还是一样的情况

        SETC OBJMODE        ;Set OBJMODE for 28x object code
        EALLOW              ;Enable EALLOW protected register access
        MOVZ DP, #7029h>>6  ;Set data page for WDCR register
        MOV @7029h, #0068h  ;Set WDDIS bit in WDCR to disable WD
        EDIS                ;Disable EALLOW protected register access
        LB _c_int00         ;Branch to start of boot.asm in RTS library

     

  • 硬件的话,检查一下电源吧,看看电源供电是否不稳定,造成了反复复位,特别查看一下1.8V 引脚外面连接的2.2uf的电容,有没有问题

    软件估计就和看门狗有关系了。

  • Kuntay,

    请问你的工程中是否有CodeStartBranch.asm文件:

    CMD文件是使用TI的还是你自制的?如果单机运行,要使用在flash运行的cmd。参考controlsuite例程,如:C:\ti\controlSUITE\device_support\f2803x\v127\DSP2803x_examples_ccsv5\flash_f28035

     

    请下载ControlSUITE软件,在其中的例程上开始你的代码调试。建议使用TI标准定的CMD文件和例程结构。

    Eric

     

     

  • 用TI的例程不会有问题,用别人的代码也不会有问题。

    我的代码烧写进去后仿真没有问题,上电后就复位脚就周期性被拉低。这个问题一定是哪里配置不对。

  • 问题找到了。有一处调用子程序返回时程序跑飞了,把原先的CALL和RET改为LCR和LRETR就好了,但是前面几处调用子程序用CALL和RET是没事的。