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.

关于28035的API功能

Other Parts Discussed in Thread: TMS320F28035

请问论坛的高手,我在使用TMS320F28035的内部flash模拟EEPROM时,运用官方给的Example_2803xFlashProgramming例程,但是不能全速运行,请问是怎么回事啊?

  • 这个例程中添加有软件断点指令,把这些指令屏蔽掉就能全速运行。

  • 你好,程序进入了exit.c文件的

    void exit(int status)
    {
    /*-------------------------------------------------------------------*/
    /* MUST LOCK WHEN ACCESSING GLOBALS, like __TI_dtors_ptr, */
    /* __TI_cleanup_ptr */
    /*-------------------------------------------------------------------*/
    _lock();

    /*-------------------------------------------------------------------*/
    /* BOTH ATEXIT FUNCTIONS AND STATIC OBJECT DESTRUCTORS ARE */
    /* REGISTERED IN A LINK LIST POINTED BY __TI_dtors_ptr, NOW WALK */
    /* THROUGH THIS LIST TO CALL THEM. */
    /*-------------------------------------------------------------------*/
    if (__TI_dtors_ptr) (*__TI_dtors_ptr)(status);

    #if defined(_C_IN_NS)
    /*-------------------------------------------------------------------*/
    /* _C_IN_NS IS A FLAG WE SET ONLY IN DINKUMWARE HEADERS. SO US IT TO */
    /* TELL IF IT IS IN DINKUMWARE. */
    /* FOR DINKUMWARE LIBRARY, CALL CLOSEALL() TO CLOSE ALL IO STREAMS. */
    /* CLOSEALL() is a DINKUMWARE FUNCTION DEFINED IN FCLOSE.C TO CLOSE */
    /* ALL OPENED IOSTREAMS. */
    /*-------------------------------------------------------------------*/
    closeall();
    #else
    /*-------------------------------------------------------------------*/
    /* IF FILES ARE POSSIBLY OPEN, __TI_cleanup_ptr() WILL BE SETUP TO */
    /* CLOSE THEM. */
    /*-------------------------------------------------------------------*/
    if (__TI_cleanup_ptr) (*__TI_cleanup_ptr)();
    #endif

    abort();
    }

    /****************************************************************************/
    /* ABORT - ABNORMAL PROGRAM TERMINATION. CURRENTLY JUST HALTS EXECUTION. */
    /****************************************************************************/
    void abort(void)
    {
    /*-------------------------------------------------------------------*/
    /* SET C$$EXIT LABEL SO THE DEBUGGER KNOWS WHEN THE C++ PROGRAM HAS */
    /* COMPLETED. THIS CAN BE REMOVED IF THE DEBUGGER IS NOT USED. */
    /*-------------------------------------------------------------------*/
    __asm(" .global C$$EXIT");
    __asm("C$$EXIT: nop");

    for (;;); /* SPINS FOREVER */
    }

    这部分,软件断点说的是这部分吗?是直接将这个文件给屏蔽掉吗?

  • 软件断点指令指的是ESTOP0,程序进入exit.c说明程序运行完退出了。

  • 您好,谢谢你的回答,但是我在全速运行过后将程序停止的时候,程序出现一些提示,就不知道程序运行到哪儿了!

  • CCS的提示已经给出了一个地址,CPU目前执行到这个地址,你查看一下这个地址,这应该是boot rom的地址。

  • 这个例程不是个循环程序,你在例程的结尾加个while(1)死循环应该就不会跑到boot rom中了。

  • 您好!首先出现一个问题,在我下载了几次API的程序过后,我的板子不知道怎么就无法在向FLASH里面写程序了,出现一些提示C28xx: Flash Programmer: Error encountered when writing to flash memory C28xx: GEL: File: C:\Users\Administrator\Desktop\28035_work_book\Debug\28035.out: Load failed但是可以在RAM环境下在线调试。

    而且我换为别的板子调试的时候,在程序中也加入了while(1)死循环,把asm("    ESTOP0");都给屏蔽掉了,但是还是出现前面图片的那种情况,我感觉也是进入了BOOTROM,但是想不出怎么解决了,求救!!!!!!!!!!!

  • 第一个问题你试试连上板子,通过on-chip flash执行Depletion Recovery,然后再重新erase。

    第二个问题你先执行restart,然后再全速运行。

  • 我两块板子都出现了无法擦除程序了 请问是什么问题啊,是片子坏了还是怎么回事??????????