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.

关于下载到FLASH的问题

Other Parts Discussed in Thread: CONTROLSUITE

如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~

  • 请问您用的ti例程吗还是?

    下载flash调试使用的cmd文件呢?

  • 您好,Seven Han

        我用的程序是通过例程修改的,cmd文件使用的是下面两个文件,没有进行过里边语句的修改,直接从controlsuite里下载的:

        DSP2803x_Headers_nonBIOS.cmd

        F28035.cmd

        拷贝到Flash里的语句如下:    


       #pragma CODE_SECTION(MainISR, "ramfuncs");

       MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

       InitFlash(); 

       例程里好像就是这么写的~   

       

  • 您好,

    从您上面的描述,还是不能够一眼看出问题在哪,初步猜测应该是flash搬移到ram的问题。

    或者您可以把工程代码贴上吗?

  • 您好,Seven Han

       附件为我的工程和库文件,麻烦您了,感谢您在百忙之中抽出时间帮我解决问题~

    project.zip
  • 您好 SEVEN HAN:

    下面是我F28035.cmd文件的代码,我本来上传了整个工程好像没有通过审核。您看看贴这些代码可以判断出问题吗?

    感谢您在百忙之中抽出时间帮我解答问题~

    MEMORY
    {
        PAGE 0:    
        RAML0 : origin = 0x008000, length = 0x000800
        RAML1 : origin = 0x008800, length = 0x000400 
        OTP : origin = 0x3D7800, length = 0x000400
        FLASHH : origin = 0x3E8000, length = 0x002000 
        FLASHG : origin = 0x3EA000, length = 0x002000
        FLASHF : origin = 0x3EC000, length = 0x002000 
        FLASHE : origin = 0x3EE000, length = 0x002000
        FLASHD : origin = 0x3F0000, length = 0x002000
        FLASHC : origin = 0x3F2000, length = 0x002000 
        FLASHA : origin = 0x3F6000, length = 0x001F80 
        CSM_RSVD : origin = 0x3F7F80, length = 0x000076
        BEGIN : origin = 0x3F7FF6, length = 0x000002 
        CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 

        IQTABLES : origin = 0x3FE000, length = 0x000B50 
        IQTABLES2 : origin = 0x3FEB50, length = 0x00008C 
        IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA 

        ROM : origin = 0x3FF27C, length = 0x000D44 
        RESET : origin = 0x3FFFC0, length = 0x000002
        VECTORS : origin = 0x3FFFC2, length = 0x00003E

        PAGE 1 : 
        BOOT_RSVD : origin = 0x000000, length = 0x000050 
        RAMM0 : origin = 0x000050, length = 0x0003B0 
        RAMM1 : origin = 0x000400, length = 0x000400
        RAML2 : origin = 0x008C00, length = 0x000400 
        RAML3 : origin = 0x009000, length = 0x001000
        FLASHB : origin = 0x3F4000, length = 0x002000 

    }

    SECTIONS
    {

        .cinit : > FLASHA PAGE = 0
        .pinit : > FLASHA, PAGE = 0
        .text : > FLASHA PAGE = 0
        codestart : > BEGIN PAGE = 0
        ramfuncs : LOAD = FLASHA,
                          RUN = RAML0,
                          LOAD_START(_RamfuncsLoadStart), 
                          LOAD_END(_RamfuncsLoadEnd),
                          RUN_START(_RamfuncsRunStart),
                          PAGE = 0

        csmpasswds : > CSM_PWL_P0 PAGE = 0
        csm_rsvd : > CSM_RSVD PAGE = 0

        .stack : > RAMM0 PAGE = 1
        .ebss : > RAML2 PAGE = 1
        .esysmem : > RAML2 PAGE = 1

        .econst : > FLASHA PAGE = 0
        .switch : > FLASHA PAGE = 0


        IQmath : > FLASHA PAGE = 0 
        IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD

        .reset : > RESET, PAGE = 0, TYPE = DSECT
         vectors : > VECTORS PAGE = 0, TYPE = DSECT

    }