Hello,
I am developing a bare-metal application on Beaglebone Rev6A using Starterware 02.00.01.01 and I am facing the following problem:
When using the Sysdelay function after having used the SysDelayTimerSetup the application hangs.
Studying the source code(platform/beaglebone/sysdelay.c)) the Sysdelay function uses the DMTimer7.
Debugging the code I show that the Counter Register (TCRR) of the DMTimer7 receives the proper value show
that after x milisecs it will overflow. But when the DMTimerEnable(SOC_DMTIMER_7_REGS) is invoked instead of setting the TCLR _ST bit of the TCLR register, the value of the TCRR is cleared and the value of TCLR remains zero.
This results in never starting the timer and the Sysdelay function to get stuck at the
while(FALSE == flagIsr) ;
As the Timer never started and now overflow occurs to trigger an interrupt.
Since the TCRR receives the proper value , I assume that the timer is configured properly.
Then what is the problem?
Thank you.