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.

6747 SPI bootload 启动



6747采用spi1的flash方式加载程序,仿真器调试的时候没有问题,但是把程序下载到flash里面,启动后中断没有,那里的问题?

  • 如果仿真调试没有问题,自启动有问题。请将GEL文件中对板子进行初始化的代码,移植到Main函数开头。注意main中用c格式。

  • 多谢Titan的帮助,我一直没用gel文件,这个文件是必须要用的吗?另外您说的GEL文件中对板子进行初始化的代码是这个吗?

    OnTargetConnect( )
    {
    GEL_TextOut( "\nomap-l137 DSP Startup Sequence\n\n" );

    Setup_System_Config( ); // Setup Pin Mux and other system module registers
    Setup_PLL(); // Setup PLL0 (300MHZ ARM, 300MHz DSP, 133MHz EMIFs

    Setup_Psc_All_On( ); // Setup All Power Domains

    Setup_EMIFA(); // Async EMIF
    Setup_EMIFB(); // Setup SDRAM


    GEL_TextOut( "\nStartup Complete.\n\n" );
    }


  • 一直没有用GEL文件,仿真调也试没有问题,那么你程序中应该已经有了下面这部分功能的代码吧。

    GEL里面对板子初始化主要是下面两函数:

    Setup_System_Config( );
    Setup_Psc_All_On( );

    具体能将问题描述详细点吗?

  • 恩,程序里面这两个函数都有。这个是我程序的一个初始化过程,您看看有什么问题没:

    PSC_Init();           // Setup_Psc_All_On( )//电源管理寄存器配置
    SYSCFG_Init();   // Setup_System_Config( )//系统配置
    PLL_Init();           // Setup_PLL()//锁相环锁定过程 
    EMB_Init();         // Setup SDRAM
    GPIO_Init();       // 部分IO设置

    TIMER0_TCR=0x0; // 关定时器

    HPI_Init(); // HPI初始化
    UART0_Init(115200); // 串口0初始化
    UART1_Init(115200); // 串口1初始化
    SPI1_Init(); // SPI初始化
    Edma3Init(); // EDMA3初始化

    TIMER1_Init();
    MCASP1_Init();

    SetupINTC(); // 中断初始化
    asm(" NOP 2 ");
    CSR=CSR|0x1; // 开中断
    while(0==(CSR&0x1));

    while(1)

    {

    led延时闪烁

    }

    仿真器调试的时候,没有问题,所有中断都可用;把程序下载到flash后,led会闪烁,但是中断没有反应(我让串口中断输出数据),板子重新连接上后,发现CSR寄存器最后两位是1和0,是全局中断没有使能的意思吧?可是程序里面已经使能了

     

  • 你好,你的程序中是否使用下面的语句:

    清除所有中断标志位,然后开中断,开全局中断:

    /* clear all interrupts, bits 4 thru 15 */
    ICR = 0xFFF0;

    /* enable the bits for non maskable interrupt and */
    IER = 0xF2;

    /* enable interrupts, set GIE bit */
    _enable_interrupts();

  • 谢谢Titan,我的程序里面有这些设置,我也在初始化完毕的时候启动了全局中断,我再看看系统和中断的文档,也许有什么需要注意的地方我没有看到。

  • 这个问题,很奇怪,你试一下下面链接的提供的中断例子,看效果如何:

    http://processors.wiki.ti.com/index.php/QuickStartOMAPL1x_rCSL

  • 你的程序是在DDR里面跑还是内部RAM?如果是DDR里面,有可能DDR配置不正确引起的