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.

TMS320F28062F: 程序在RAM和Flash里用仿真器调试都没有问题,但是刷到flash里,单独运行就不行

Part Number: TMS320F28062F

1、程序在RAM和Flash里用仿真器都跑过了,一切正常

2、将程序通过串口bootloder刷进去,也刷成功了,可以看到中断触发的led灯在闪烁,但是部分功能比如串口、CAN通信功能异常;

3、将程序直接通过仿真器刷到Flash里,调试过程是没有问题的,但是重新上下电,通过供电电源,可以看出来,芯片没有正常工作,当然,中断触发的led灯也没有闪烁。

  • 最新进展:

    1、flash无法重新上电启动,是CMD文件配置问题,已解决;

    2、但经过bootloder跳转的程序,经排查,会卡死在定时器1的一条指令上,但是使用仿真器调试没有此问题。(因为一上电,sci那条消息可以发出来,can那条发不出来)

    SCI_DataFrame_Tx(&SCI_Frame.Data_Frame_B.Data_Frame1);

    //! 主循环定时
    while(TIMER_getStatus(halHandle->timerHandle[1]) == TIMER_Status_CntIsNotZero){}//TIMER_Status_CntIsNotZero

    ECanaBoxTxMsg(halHandle->canAHandle,&CAN_Frame.TX,0x05);

  • 程序中有没有涉及到函数的搬运?

    一般来说,仿真器连接时工作正常、而不连仿真器运行在FLASH时异常,大概率与函数或者代码的搬运有关。

  • 函数搬运您指的是哪种情况。现在问题原因基本锁定了,是定时器那个判断,死循环了。尝试了改变定时器周期、初始化让定时器置0等方式,还是没能跳过那个循环。

  • 函数搬运您指的是哪种情况。

    FlashAPI,usDelay函数等必须搬运到RAM中运行