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.

Infinite loops after restarting a F28335



I am now using the ezdsp28335 , when I running and excuting this example{ DSP2833x_examples/cpu_TImer }


I got stuck
at address 3FF9FA.

3FF9F6 B9C0 MOVZ       DP,#448
3FF9F7 2829 MOV        @41,#0x0028
3FF9F9 761A EDIS      
3FF9FA 6F00 SB         0,UNC
3FF9FB FFFF ITRAP1    
3FF9FC FFFF ITRAP1    
3FF9FD FFFF ITRAP1    


I have already changed sw1 to the location 0100 (refer to the DSP2833x_HeaderFiles_QuickStart_Readme )


But the error remains.


so what direction i can do to solve this problem




  • Jang-Yang Li,

     

    Address 0x3FF9FA corresponds to BOOT ROM. I believe you are stuck in booting process itself. From your 0100 configuration, you are trying to boot to SARAM.

     

    Procedure to try check whether BOOT to SARAM works correctly

    -------------------------------------------------------------------------------------

     1) Connect to the device

     2) Set a breakpoint at 0x0

     3) Make sure GPIO87, GPIO84, GPIO85 are pulled low and GPIO86 is pulled up.

     4) Hit Run

     5) If it hit the breakpoint at 0x0000, boot to SARAM works as expected

     

    If the above doesn't work, I recommend you to load the BOOT ROM symbols from (TMS320x2833x, 2823x Boot ROM Reference Guide (Rev. A) and single step through the BOOT ROM code to understand what would be reason.

     

    Since you are trying to load the code to SARAM, all you have to do is load the example .out file and run.

    Hope this helps.

    Regards,

    Manoj

  • thank you for reply

    i try to the way that you recommand and it still can't work

    i have observed something at your suggestion

    when i set the breakpoint at 0x000000 , it really run to the address but occurring two case

    case 1 :
      section1
    000000 9EAC SUB        AL,@T
    000001 2706 MOV        PL,@6
    000002 0004 PUSH       RPC
    000003 2322 MOV        IER,@34
    000004 2DE4 MOV        T,*+XAR4[4]
    000005 9954 OR         *-SP[20],AH
    000006 0000 ITRAP0 

      section2:
    3FF9F4 561F SETC       OBJMODE
    3FF9F5 7622 EALLOW    
    3FF9F6 B9C0 MOVZ       DP,#448
    3FF9F7 2829 MOV        @41,#0x0028
    3FF9F9 761A EDIS      
    3FF9FA 6F00 SB         0,UNC
    3FF9FB FFFF ITRAP1 

    the code run to 0x000000 to 0x000006 and jumping to 0x3FF9F4 and getting stuck at 0x3FF9FA finally

    case2:
      section1:
    000000 9EAC SUB        AL,@T
    000001 2706 MOV        PL,@6
    000002 0001 ABORTI    
    000003 2322 MOV        IER,@34
    000004 29E4 CLRC       TC,DBGM,PAGE0,VMAP
    000005 995C OR         *-SP[28],AH
    000006 0000 ITRAP0 

      section2:
    000000 9EAC SUB        AL,@T
    000001 2706 MOV        PL,@6
    000002 0001 ABORTI    
    000003 2322 MOV        IER,@34
    000004 29E4 CLRC       TC,DBGM,PAGE0,VMAP
    000005 995C OR         *-SP[28],AH
    000006 0008 BANZ       0,AR0--
    000008 0000 ITRAP0 

    the code still run to 0x000000 to 0x000006 , when it run to 0x000006 and return address 0x000000
    and finally get suck at 0x000006

    i try these way at same condition
    such as
    1.the BOOT ROM set to  boot to SARAM.
    2.the code i used is from example_cpu_timer by ti.com supply

    i have try to load .out file , but it error when i load
    the error message : data verification failed at address 0x8000. Please verity target memory and memory map
    gel output message : ADC Calibration not complete, device is secure
                                         XINTF x16 enabled by GEL

    thank you for reply ^^

  • Jang Yang Li,

    Okay, in both cases it looks like you are able to successfully BOOT to SARAM. This is good !

    Explanation for Case 1 behavior

    =========================

    When you execute the opcode at address 0x0006, you are executing 0x0000 (ITRAP0) which is an illegal instruction. This triggers Illegal ISR interrupt located at 0x3FF9F4. This the reason why the execution jumps to 0x3FF9F4 and ends up in an infinite loop at 0x3FF9FA.

     

    Explanation for Case 2 behavior

    =========================

    The same explanation as case 1 hold good for case2 behavior. The illegal ISR routine enables the watchdog before it enters infinite loop. When the watchdog times out, it resets the device and since the device is in BOOT to SARAM configuration, it hit the breakpoint at 0x0.

     

    Inferences from your error message

    ============================

    The device is secure state. This can be easily confirmed by checking the contents of 0x33FFF8 to 0x33FFFF. If the contents are read back as 0x0000's then the device is locked (or) secure. When the device is locked (or) secure, L0SARAM (0x8000 - 0x8FFF) is also locked and any read / write will be disabled and memory will always read back as 0x0000. So, in short, you have to unlock the device before you proceed with any examples.

    Regards,

    Manoj