Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

CCS5.4 + SpectrumDigital onboard USB Emulator, restart + reset

$
0
0

On SpectrumDigital OMAP-l137EVM board, using the onboard emulator.

Running applications from the C6748_starterware_1_20_03_03 ,

using restart and reset have a unexpected behavior.

Run the program to a breakpoint and use Restart makes the program entering a interrupt handler in Interupt.C

static void IntDefaultHandler (void)
{
    while(1);
}

using "Reset" the program go to address 00700000

00700000:   00000412            B.S2          0x700020 (PC+32 = 0x00700020)
00700004:   00008000            NOP           5
00700008:   30303864     [!B0]  LDW.D1T1      *--A12[A1],A0
0070000c:   3330306B     [!B0]  MVKH.S2       0x60600000,B6
00700010:   20090724 ||         .word         0x20090724
00700014:   00162602            MPYID.M2      -15,B5,B1:B0
00700018:   00700000            NOP           
0070001c:   02000200            MPYI.M1       A0,A0,A4
00700020:   0000A35A            MVK.L2        0,B0
00700024:   008003A2            MVC.S2        B0,CSR

and will not return to the application : timer_c674x_c6748_evmC6748 unless I start all over again. I was expecting the restart to enter "main" and be cached by my breakpoint if not stopping at "main". With the Reset I am not sure what shall happen  but some how the program should recover or ???

The text   UARTPuts("Tencounter: 9", -1); should come out on the UART but there is only    "¢2" and if i let it run and suspend it it is hanging in the while loop ending the application.

int main(void)
{
    /* Set up the UART2 peripheral */
    UARTStdioInit();

    /* Set up the Timer2 peripheral */
    TimerSetUp64Bit();

    /* Set up the AINTC to generate Timer2 interrupts */
    TimerIntrSetUp();

    /* Enable the timer interrupt */
    TimerIntEnable(SOC_TMR_2_REGS, TMR_INT_TMR12_NON_CAPT_MODE);

#ifndef _TMS320C6X
    /* Switch to non privileged mode; This is done for demonstration purpose */
    CPUSwitchToUserMode();
#endif

    /* Send the first String */
    UARTPuts("Tencounter: 9", -1);

    /* Start the timer. Characters from cntArr will be sent from the ISR */
    TimerEnable(SOC_TMR_2_REGS, TMR_TIMER12, TMR_ENABLE_CONT);

    /* make sure all the characters from cntArray from ISR */
    while(secCnt < 9)
    {
        /* Replace previous number each time the timer interrupt occurs */
        if(flagIsrCnt)
        {
            UARTPutc('\b');
            UARTPutc(cntArr[secCnt]);
            secCnt++;
            flagIsrCnt = 0;
        }
    }

    /* Disable the timer. No more timer interrupts */
    TimerDisable(SOC_TMR_2_REGS, TMR_TIMER12);

    /* Halt the program */
    while(1);
}

Running the UART application "uart_c674x_c6748_evmc6748" have similar behavior, have tried on different PC with same results.

Will a dedicated USB emulator like the 560 be a better choice?

Claus.


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>