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.

AM3358: Unhandled ADP_Stopped exception 0x81025D58

Part Number: AM3358

Hello,

i'm trying to test a simple GPIO_LedBlinking with target beaglebone black industrial (red soldermask).

At startup i get following error, how to investigate further??

CortxA8: Output: ****  AM335x BeagleBlack Initialization is in progress .......... 
CortxA8: Output: ****  AM335x ALL PLL Config for OPP == OPP100 is in progress ......... 
CortxA8: Output: Input Clock Read from SYSBOOT[15:14]:  24MHz
CortxA8: Output: ****  Going to Bypass... 
CortxA8: Output: ****  Bypassed, changing values... 
CortxA8: Output: ****  Locking ARM PLL
CortxA8: Output: ****  Core Bypassed
CortxA8: Output: ****  Now locking Core...
CortxA8: Output: ****  Core locked
CortxA8: Output: ****  DDR DPLL Bypassed
CortxA8: Output: ****  DDR DPLL Locked
CortxA8: Output: ****  PER DPLL Bypassed
CortxA8: Output: ****  PER DPLL Locked
CortxA8: Output: ****  DISP PLL Config is in progress .......... 
CortxA8: Output: ****  DISP PLL Config is DONE .......... 
CortxA8: Output: ****  AM335x ALL ADPLL Config for OPP == OPP100 is Done ......... 
CortxA8: Output: ****  AM335x DDR3 EMIF and PHY configuration is in progress......... 
CortxA8: Output: EMIF PRCM is in progress ....... 
CortxA8: Output: EMIF PRCM Done 
CortxA8: Output: DDR PHY Configuration in progress 
CortxA8: Output: Waiting for VTP Ready ....... 
CortxA8: Output: VTP is Ready! 
CortxA8: Output: DDR PHY CMD0 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY CMD1 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY CMD2 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY DATA0 Register configuration is in progress ....... 
CortxA8: Output: DDR PHY DATA1 Register configuration is in progress ....... 
CortxA8: Output: Setting IO control registers....... 
CortxA8: Output: EMIF Timing register configuration is in progress ....... 
CortxA8: Output: EMIF Timing register configuration is done ....... 
CortxA8: Output: PHY is READY!!
CortxA8: Output: DDR PHY Configuration done 
CortxA8: Output: ****  AM335x BeagleBlack Initialization is Done ****************** 


CortxA8: GEL Output: Timers 2-7 enabled for 32KHz.
CortxA8: Unhandled ADP_Stopped exception 0x81025D58

kind regards

Emanuele P.

  • Hello Emanuele P.

    Did the exception happen when you were trying to connect in CCS, or when you were trying to run the program? If it happened during connection, it likely has to do with the GEL file. Please make sure you configure CCS target properly.

    Regards,

    Jianzhong

  • Hello,

    It s not related to Gel, gel works properly. It s after gel and before main, if i uncheck run to main,the connection works. But running to main causes the error. What does it mean??

    Thank you

  • Sorry, but I don't understand what you meant by "uncheck run to main". You can't run to main before program is loaded. Usually what we do is:

    1. connect the target

    2. load the program

    3. run

    In which step of the above did the exception happen?

  • Ok,

    i mean, i have the error, after program loaded, while rurrning, and before the program could reach "main" routine.

    if i go to Debug Configuration -> 'Target' Tab -> device 'Cortex A8' -> Auto run and launch options -> uncheck the checkbox run to symbol main after program load or restart.

    i get no error, since there is no run. It 's only after hitting "run" that i have that error:

    but i don t know why and what does it mean??

    here is also call stack:

    thank you

  • Hello Emanuele,

    Thanks for the clarification. The error "Unhandled ADP_Stopped exception 0x81025D58" was likely caused by timers not be enabled. Please refer to this thread.

    What puzzled me was that your GEL file seemed enabling the timers. Can you double check if the timers are actually enabled? Go to CCS > View > Registers and find DMTIMER3 in the register view. If the registers are not accessible in CCS like below, it means the timers are not enabled. 

    On the contrary, if you can read the timer registers in CCS, that means the timers are enabled.

    I was able to build GPIO_LedBlink_bbbAM335x_armTestProject and run it on my BeagleBone black (not the industrial one). If the timers are properly enabled on your board and you still get the "Unhandled ADP_Stopped exception", then something else is missing in your setup

    Regards,

    Jianzhong

  • Hello,

    you are right, timers are NOT enabled!!

    But i already tryied to modify GEL to enable timers, in fact, without success. This is why you see the line:

    CortxA8: GEL Output: Timers 2-7 enabled for 32KHz.

    in console log.

    Now i spent a lot of time trying to properly configure timers, i am able to succesfully configure Timer2-7 with CLK_M_SRC, the clock main oscillator source, but i have difficult to configure with 32KHz source. I modified Gel file as attached.

    The problem now is that when i write 2 into CM_PER_TIMER2_CLKCTRL (0x44e00080 = 2), for example, the module can t go out of idle state. (CM_PER_TIMER2_CLKCTRL is 0x00030002 and not 0x00000002). Why i have this?? what am i doing wrong??

    i attached modified gel file i use. Could you give a look to find what s wrong, or could you provide a working gel file, for reference??

    8880.beagleboneblack_timers.gel

     i would like to know if writing CM_DPLL_CLKSEL_TIMER2_CLK with 2, is enought to deliver 32KHz clock source to DMtimer2, or if i need other additional configurations, to let 32KHz clock arrive to DMtimer, please give hint.

    i have also checked CLKOUT2 signal, i have run SYS_CLKOUT2->Osc32KHz from same gel, to test output, but i have no signal, while routing other clocks (SYS_CLKOUT2->PER_Clock for example) give a 90-95MHz signal on that pin, i can see that on the scope.

    Thanks al lot

    kind regards

    Emanuele P

  • I looked at your GELfile, but couldn't find where the following message is. This message was shown in your initial post:

    CortxA8: GEL Output: Timers 2-7 enabled for 32KHz.
    

    Attached is the GEL file that I used and it worked fine for my BeagleBone Black. Maybe you can try it out and see if it helps.

    beagleboneblack_timer_enable.gel

  • Thank you man, i finally got it.

    after a lot o attempts and many time spent, i finally made it work properly. Your suggestion to enable Timer 2 -7 was right, and guided me on the right way!

    // ***********************************************************************************

    On the other side, enabling those timers was very far from easy, and i d like to better understand, why your gel file, that performs same steps of the one i used at beginning of this post, is not sufficient for my system to resolve that error. To avoid ADP_exception error, i had to:

    1. Enable clocks for L3S, L3, L4, OCPWP and CLKDIV32.

    2. Then enable timers.

    If you can avoid explicit initialization of all these clocks at point 1, in gel file, it means that your system performs these initializations  somewhere else. (it is probably Sys BIOS that performs clock initialization at startup??? And this make me think that all my RTOS configuration has something wrong! Very scary.)

    Anyway thanks again for the right inputs and support!

    // ***********************************************************************************

    I attach gel file i used, that perform clocks enabling and timers initialization, just in case anyone else has the same problem:

    AM335x_Timer2_7_enable.gel

    it can be included in main gel file, just in the Startup routine, and routine    "EnableTimers_32KHz()" can be called after the board initialization.

    Kind Regards

    Emanuele Peruzzi