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.

dm365 开发板自带RTC没有启动?



我们想要使用365内的RTC时钟,但在内核启动时在初始化RTC时会挂起,于是看驱动中发现停在下面红色标注的地方:

Rtc-davinci-dm365.c:

static int rtcss_write_rtc(unsigned long val, u8 addr)
{
   u32 new_ctrl, int_ena, int_flg;
   int retval = 0;

   int_ena = rtcif_read(DM365_RTCIF_INT_ENA_REG);
   int_ena |= (DM365_RTCIF_INT_ENA_RTCSS_INTENA | 
   DM365_RTCIF_INT_ENA_RTCIF_INTENA);
   rtcif_write(int_ena, DM365_RTCIF_INT_ENA_REG);

   int_flg = rtcif_read(DM365_RTCIF_INT_FLG_REG);
   int_flg |= (DM365_RTCIF_INT_FLG_RTCSS_INTFLG |
   DM365_RTCIF_INT_FLG_RTCIF_INTFLG);
   rtcif_write(int_flg, DM365_RTCIF_INT_FLG_REG);

   new_ctrl = rtcif_read(DM365_RTCIF_DMA_CMD_REG);
   new_ctrl &= ~DM365_RTCIF_DMA_CMD_SIZE_2WORD;
   new_ctrl &= ~(DM365_RTCIF_DMA_CMD_BYTEENA0_MASK | 
   DM365_RTCIF_DMA_CMD_BYTEENA1_MASK);
   new_ctrl |= (DM365_RTCIF_DMA_CMD_BYTEENA0_LSB | addr);

   if (new_ctrl & DM365_RTCIF_DMA_CMD_BUSY) {
   while (rtcif_read(DM365_RTCIF_DMA_CMD_REG) &
   DM365_RTCIF_DMA_CMD_BUSY) ;}

   rtcif_write(new_ctrl, DM365_RTCIF_DMA_CMD_REG);
   rtcif_write(0,DM365_RTCIF_INT_ENA_REG);
   while (rtcif_read(DM365_RTCIF_INT_ENA_REG) &
   DM365_RTCIF_INT_ENA_RTCIF_INTENA) ;
   rtcif_write(val, DM365_RTCIF_DMA_DATA0_REG);
   return retval;
}

貌似是PRTCIF没有产生中断,PRTCSS没有起来? 但具体原因是什么没有查到,板子上时钟电池都没问题。

另外在sprufj0b.pdf中查到PRTCSS Normal Mode 启动过程要设置PWRST和PWRCNTON,这个设置对于开发板也不是太清楚,不知道是不是和这个有关?

很着急!希望TI专家帮忙解决下!