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.

dsp2812 flash 固化后,在0x3d8000地址上已经改动了,为什么每次只有插上仿真器才能运行,试了好多天了,就有一次莫名其妙好使了,不插仿真器也好使,现在怎么弄都不行?



dsp2812 flash 固化后,在0x3d8000地址上已经改动了,为什么每次只有插上仿真器才能运行,试了好多天了,就有一次莫名其妙好使了,不插仿真器也好使,现在怎么弄都不行?急求。谢谢。

  • 请检查一下硬件配置,确定是否已经处于微控制器模式。

  • 我的是学习开发板,硬件应该没问题,我昨天晚上也没弄啥,今天早上莫名其妙的就好使了。但是我重新下载以后又不好使了。真是奇怪了。

  • weihang gao 说:

    我的是学习开发板,硬件应该没问题,我昨天晚上也没弄啥,今天早上莫名其妙的就好使了。但是我重新下载以后又不好使了。真是奇怪了。

    那可以实际测量一下MP/MC#引脚,看一下到底是不是低电平

  • 我的这个引脚是接地的DGND,怎么弄才好那?

  • 如果是低电平,那应该是可以启动的。

    不知道你的程序是什么样的,你是不是应该使用一个最简单的小程序来测试,比如点亮一个LED来看看会不会有问题。

  • 还是不行,真是莫名其妙的,


    MEMORY /* Program Memory */
    {
    PAGE 0 :
    FLASH : origin = 0x3D8000, length = 0x01FF80 /* on-chip FLASH */
    BEGIN : origin = 0x3F7FF6, length = 0x000002
    ROM : origin = 0x3FF000, length = 0x000FC0
    RESET : origin = 0x3FFFC0, length = 0x000002

    VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of Boot ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */
    RAML0 : origin = 0x008000, length = 0x001000

    PAGE 1 :
    RAMM0 : origin = 0x000000, length = 0x000400 /* on-chip RAM block M0 */
    RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
    RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */
    RAMH0 : origin = 0x3F8000, length = 0x002000 /* on-chip RAM block H0 */

    DEV_EMU : origin = 0x000880, length = 0x000180 /* device emulation registers */
    PIE_VECT : origin = 0x000D00, length = 0x000100 /* PIE Vector Table */
    FLASH_REGS : origin = 0x000A80, length = 0x000060 /* FLASH registers */
    CSM : origin = 0x000AE0, length = 0x000010 /* code security module registers */
    XINTF : origin = 0x000B20, length = 0x000020 /* external interface registers */
    CPU_TIMER0 : origin = 0x000C00, length = 0x000008 /* CPU Timer0 registers */
    CPU_TIMER1 : origin = 0x000C08, length = 0x000008 /* CPU Timer1 registers */
    CPU_TIMER2 : origin = 0x000C10, length = 0x000008 /* CPU Timer2 registers */
    PIE_CTRL : origin = 0x000CE0, length = 0x000020 /* PIE control registers */
    ECANA : origin = 0x006000, length = 0x000040 /* eCAN control and status registers */
    ECANA_LAM : origin = 0x006040, length = 0x000040 /* eCAN local acceptance masks */
    ECANA_MOTS : origin = 0x006080, length = 0x000040 /* eCAN message object time stamps */
    ECANA_MOTO : origin = 0x0060C0, length = 0x000040 /* eCAN object time-out registers */
    ECANA_MBOX : origin = 0x006100, length = 0x000100 /* eCAN mailboxes */
    SYSTEM : origin = 0x007010, length = 0x000020 /* System control registers */
    SPIA : origin = 0x007040, length = 0x000010 /* SPI registers */
    SCIA : origin = 0x007050, length = 0x000010 /* SCI-A registers */
    XINTRUPT : origin = 0x007070, length = 0x000010 /* external interrupt registers */
    GPIOMUX : origin = 0x0070C0, length = 0x000020 /* GPIO mux registers */
    GPIODAT : origin = 0x0070E0, length = 0x000020 /* GPIO data registers */
    ADC : origin = 0x007100, length = 0x000020 /* ADC registers */
    EVA : origin = 0x007400, length = 0x000040 /* Event Manager A registers */
    EVB : origin = 0x007500, length = 0x000040 /* Event Manager B registers */
    SCIB : origin = 0x007750, length = 0x000010 /* SCI-B registers */
    MCBSPA : origin = 0x007800, length = 0x000040 /* McBSP registers */
    CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations. */
    }

    /*------------------------------------------*/
    /*描述:设置堆栈值 */
    /*------------------------------------------*/
    -stack 400

    /*------------------------------------------*/
    /*描述:通过SECTION伪指令来分配段到存储空间 */
    /*------------------------------------------*/

    SECTIONS
    {
    .reset : > RESET, PAGE = 0, TYPE = DSECT
    vectors : > VECTORS, PAGE = 0, TYPE = DSECT
    .cinit : > FLASH, PAGE = 0
    .text : > FLASH, PAGE = 0
    codestart : > BEGIN, PAGE = 0

    ramfuncs: LOAD=FLASH, PAGE=0
    RUN=RAML0,PAGE=0
    LOAD_START(_RamfuncsLoadStart),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart)

    .const : > FLASH, PAGE = 0
    .econst : > FLASH, PAGE = 0

    .data2 : > RAMM1, PAGE = 1
    .stack : > RAMM0, PAGE = 1
    .bss : > RAML1, PAGE = 1
    .ebss : > RAML1, PAGE = 1
    .sysmem : > RAMH0, PAGE = 1
    .esysmem : > RAMH0, PAGE = 1

    /* Allocate IQ math areas: */
    IQmath : > FLASH, PAGE = 0 /* Math Code */
    IQmathTables : > ROM, PAGE = 0, TYPE = NOLOAD /* Math Tables In ROM */


    PieVectTableFile : > PIE_VECT, PAGE = 1

    /*** Peripheral Frame 0 Register Structures ***/
    DevEmuRegsFile : > DEV_EMU, PAGE = 1
    FlashRegsFile : > FLASH_REGS, PAGE = 1
    CsmRegsFile : > CSM, PAGE = 1
    XintfRegsFile : > XINTF, PAGE = 1
    CpuTimer0RegsFile: > CPU_TIMER0, PAGE = 1
    CpuTimer1RegsFile: > CPU_TIMER1, PAGE = 1
    CpuTimer2RegsFile: > CPU_TIMER2, PAGE = 1
    PieCtrlRegsFile : > PIE_CTRL, PAGE = 1

    /*** Peripheral Frame 1 Register Structures ***/
    ECanaRegsFile : > ECANA, PAGE = 1
    ECanaLAMRegsFile : > ECANA_LAM PAGE = 1
    ECanaMboxesFile : > ECANA_MBOX PAGE = 1
    ECanaMOTSRegsFile: > ECANA_MOTS PAGE = 1
    ECanaMOTORegsFile: > ECANA_MOTO PAGE = 1

    /*** Peripheral Frame 2 Register Structures ***/
    SysCtrlRegsFile : > SYSTEM, PAGE = 1
    SpiaRegsFile : > SPIA, PAGE = 1
    SciaRegsFile : > SCIA, PAGE = 1
    XIntruptRegsFile : > XINTRUPT, PAGE = 1
    GpioMuxRegsFile : > GPIOMUX, PAGE = 1
    GpioDataRegsFile : > GPIODAT PAGE = 1
    AdcRegsFile : > ADC, PAGE = 1
    EvaRegsFile : > EVA, PAGE = 1
    EvbRegsFile : > EVB, PAGE = 1
    ScibRegsFile : > SCIB, PAGE = 1
    McbspaRegsFile : > MCBSPA, PAGE = 1

    /*** Code Security Module Register Structures ***/
    CsmPwlFile : > CSM_PWL, PAGE = 1

    }

    这是我的CMD文件,

    有人告诉

     RAMH0起始地址改成0x3F8002 ,也不好使。
    还有说flash解保护才能运行。
    我现在都迷茫了。
  • cmd用官方的就好,别乱改,flash中仿真可以,就应该不是它的问题。