⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 triton_functions.c

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 C
📖 第 1 页 / 共 3 页
字号:
	SERI_Send("\r\n CARKIT event detected \r\n");
	return(CARKIT);
      }
    if ((int2_reg_lsb>>4) && 0x01) 
      {
	SERI_Send("\r\n MADC conversion from P2 \r\n");	
	return(MADC2);
      }
    if ((int2_reg_lsb>>3) && 0x01)
      {
	SERI_Send("\r\n MADC conversion from P1 \r\n");
	return(MADC1);
      }
    if ((int2_reg_lsb>>2) && 0x01)
      {
	SERI_Send("\r\n BCI watchdog \r\n");
	return(BCI_WATCHDOG);
      }
    if ((int2_reg_lsb>>1) && 0x01)
      {
	SERI_Send("\r\n VBUS precharge \r\n");
	return(VBUS_PRECHG);
      }
    if (int2_reg_lsb && 0x01)
      {
	SERI_Send("\r\n CHARGE stop \r\n");
	return(CHARGE_STOP);
      }
    if ((int2_reg_msb>>7) && 0x01) 
      {
	SERI_Send("\r\n HEADSET detected \r\n");
	return(HSDET);
      }
    if ((int2_reg_msb>>6) && 0x01)
      {
	SERI_Send("\r\n HOOK press detected \r\n");
	return(HOOKDET);
      }
    if ((int2_reg_msb>>5) && 0x01)
      {	
	SERI_Send("\r\n HOTDIE condition \r\n");
	return(HOTDIE);
      }
    if ((int2_reg_msb>>4) && 0x01) 
      {
	SERI_Send("\r\n VBUS event detected ");
	read_value = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_STS_HW_CONDITIONS);
	read_value =((read_value>>3) & 0x01);
	if (read_value) SERI_Send("\r\n HIGH \r\n");
	else SERI_Send("\r\n LOW \r\n");
	return(VBUS);
      }
    if ((int2_reg_msb>>3) && 0x01) 
      {
	SERI_Send("\r\n VBATLOW condition detected \r\n");
	return(VBATLOW);
      }
    if ((int2_reg_msb>>2) && 0x01) 
      {
	SERI_Send("\r\n RTC event detected \r\n");
	return(RTC);
      }
    if ((int2_reg_msb>>1) && 0x01) 
      {
	SERI_Send("\r\n VAC event detected ");
	read_value = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_STS_HW_CONDITIONS);
	read_value =((read_value>>2) & 0x01);
	if (read_value) SERI_Send("\r\n HIGH \r\n");
	else SERI_Send("\r\n LOW \r\n");
	return(VAC);
      }
    if (int2_reg_msb && 0x01) 
      {
	SERI_Send("\r\n RPWON event detected ");
	read_value = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_STS_HW_CONDITIONS);
	read_value =((read_value>>1) & 0x01);
	if (read_value) SERI_Send("LOW \r\n");
	else SERI_Send(" HIGH \r\n");
	return(RPWON);
      }
    
    return 0xDEAD; 		
}
/*---------------------------------------------------------------------
// NAME        : Tritonsys_INT2_Clear
//
// DESCRIPTION : Write 0 to Triton INT2 status register to clear ITs  
//
// PARAMETERS  : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//--------------------------------------------------------------------- */
void Tritonsys_INT2_Clear(void)
{
  // Acknowledge and clear IT
  // to access to the page of the Abb module INT2
  MSI2C_AccessPage(INT2_page); 		
  MSI2C_MasterPollingSendAbb(INT2_IT2STATUSP1L,0x00);
  MSI2C_MasterPollingSendAbb(INT2_IT2STATUSP1H,0x00); 
}	

/*---------------------------------------------------------------------
// NAME        : Tritonsys_Map_MMC_SIM
//
// DESCRIPTION : Remap Triton VRMMC to DEV_GRP_APPLI and VRSIM 
//               to DEV_GRP_PERIPH
//
// PARAMETERS  : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/

void Tritonsys_Map_MMC_SIM(void)
{
  int previous_content ;
  
  /* to access to the page of the Abb module PMC_SLAVE */
  MSI2C_AccessPage(PMC_SLAVE_page);
  /* change VRMMC from NO_GROUP to DEV_GRP_APPLI (0b010) */
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRMMC_CFG_STS,(previous_content & 0x5f));
  
  /* change VRSIM from NO_GROUP to DEV_GRP_PERIPH (0b100) */
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRSIM_CFG_STS,(previous_content & 0x9f));
}
/*---------------------------------------------------------------------
// NAME        : Tritonsys_Remap_Resources
//
// DESCRIPTION : Remap CBAT32,CBAT28,MBG,LBG,BIAS,BATPRES_CHECK,VRIO,CLKON,ONOFF,MBG to P1
//
// PARAMETERS  : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/

void Tritonsys_Remap_Resources(void)
{
  int previous_content ;
  
  // to access to the page of the Abb module PMC_SLAVE
  MSI2C_AccessPage(PMC_SLAVE_page);
  // change CBAT32 from ALL to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_CBAT32_CFG_STS,(previous_content & 0x3f)); 
  // change CBAT28 from ALL to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_CBAT28_CFG_STS,(previous_content & 0x3f)); 
  // change MAIN BANDGAP from ALL to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_BGAP_CFG_STS,(previous_content & 0x3f)); 
  // change SLEEP BANDGAP from ALL to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGSLP_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_BGSLP_CFG_STS,(previous_content & 0x3f)); 
  // change BIAS from ALL to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BIAS_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_BIAS_CFG_STS,(previous_content & 0x3f)); 
  // change BATPRES_CHECK from ALL to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BAT_PRES_CHECK_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_BAT_PRES_CHECK_CFG_STS,(previous_content & 0x3f)); 
  // change VRIO from P1+P3 to P1 only (0b001)
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRIO_CFG_STS,(previous_content & 0x3f)); 
  // change CLKON from P1+P3 to P1 only (0b001) 
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CLKON_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_CLKON_CFG_STS,(previous_content & 0x3f));
  // change ONNOFF from P1+P2+P3 to P1 only (0b001) 
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_STATE_MNGT_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_STATE_MNGT_CFG_STS,(previous_content & 0x3f));
  // change MBG from P1+P2+P3 to P1 only (0b001) 
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_BGAP_CFG_STS,(previous_content & 0x3f));
  
}
/*---------------------------------------------------------------------
// NAME        : Tritonsys_Regen_Sleep2off
//
// DESCRIPTION : Remap Triton REGEN from DEV_GRP_PERIPH to DEV_GRP_MODEM 
//               and remap its SLEEP state to OFF 
//
// PARAMETERS  : No
//
// RETURN VALUE: No
//
// LIMITATIONS : None
//---------------------------------------------------------------------*/
void Tritonsys_Regen_Sleep2off(void)
{
  int previous_content ;
  
  // to access to the page of the Abb module PMC_SLAVE 
  MSI2C_AccessPage(PMC_SLAVE_page);
  // change REGEN from DEV_GRP_PERIPH to DEV_GRP_MODEM 
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STS);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_EXT_REGEN_CFG_STS,(previous_content & 0x9f));
  
  // remap REGEN SLEEP state to OFF 
  previous_content = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STATE);
  MSI2C_MasterPollingSendAbb(PMC_SLAVE_VRSIM_CFG_STS,(previous_content & 0xf0));
}


/* copied from triton_deep_sleep_rtc_alarm TEST_RTC_TC_alarm_local function from
// design test
//---------------------------------------------------------------------------
//	NAME 		: SET_RTC_TC_alarm
//	DESCRIPTION	: SET IRQ_ALARM_CHIP   
//	RETURN VALU : Return the result of the test TEST_OK or TEST_BAD	
//	PARAMETERS	: alarm_tm : pointer to the alarm struct
//                init_tm : pointer to the init struct
//	LIMITATIONS	: Update 1 result
//--------------------------------------------------------------------------- */
void SET_RTC_TC_alarm(struct rtc_tm  *alarm_tm, struct rtc_tm  *init_tm)
{
  
  RTC_STOP;
  RTC_START;
  
  //RTC_Busy_Falling_Edge();
  
  RTC_STOP;
  
  RTC_Init_Date(init_tm);
  RTC_SetAlarm(alarm_tm);
  RTC_ENABLEITALARM;
  
  RTC_START;
  
}

/*---------------------------------------------------------------------------
//	NAME 		: Read_Slave_Resources_Reg
//	DESCRIPTION	: Read VRxx_CFG_STS,VRxx_RES_ID,VRXX_CFG_STATE   
//	RETURN VALU : 
//	PARAMETERS	: 
//	LIMITATIONS	: 
//---------------------------------------------------------------------------*/
void Read_Slave_Resources_Reg()
{
  char st[80];
  UWORD16 ReadData;                            /* register access read value */
  
  MSI2C_AccessPage(PMC_SLAVE_page);
  /* VRDBB */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VCORE_CFG_STS);
  sprintf(st,"\r\nPMC_SLAVE_VCORE_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VCORE_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VCORE_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VCORE_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VCORE_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRSIM */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRSIM_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRSIM_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRSIM_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRSIM_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRMMC */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRMMC_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRMMC_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMMC_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRMMC_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VREXTH */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTH_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VREXTH_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTH_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VREXTH_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTH_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VREXTH_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRPLL */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRPLL_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRPLL_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRPLL_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRPLL_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRPLL_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRPLL_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRIO */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRIO_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRIO_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRIO_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRIO_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRMEM */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMEM_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRMEM_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMEM_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRMEM_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRMEM_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRMEM_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRUSB */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRUSB_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRUSB_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRUSB_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRUSB_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRUSB_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRUSB_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRABB */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRABB_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRABB_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRABB_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRABB_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRABB_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRABB_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VRVBUS */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRVBUS_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VRVBUS_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRVBUS_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VRVBUS_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VRVBUS_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VRVBUS_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* VREXTL */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTL_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_VREXTL_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTL_RES_ID);
  sprintf(st,"\rPMC_SLAVE_VREXTL_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_VREXTL_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_VREXTL_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* REGEN */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_EXT_REGEN_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_RES_ID);
  sprintf(st,"\rPMC_SLAVE_EXT_REGEN_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_EXT_REGEN_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_EXT_REGEN_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* CBAT32 */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_CBAT32_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_RES_ID);
  sprintf(st,"\rPMC_SLAVE_CBAT32_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT32_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_CBAT32_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* CBAT28 */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_CBAT28_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_RES_ID);
  sprintf(st,"\rPMC_SLAVE_CBAT28_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_CBAT28_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_CBAT28_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  
  /* BGAP */
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STS);
  sprintf(st,"\rPMC_SLAVE_BGAP_CFG_STS value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_RES_ID);
  sprintf(st,"\rPMC_SLAVE_BGAP_RES_ID value = %x \r\n",ReadData);
  SERI_Send(st);
  
  ReadData = MSI2C_MasterPollingReceiveAbb(PMC_SLAVE_BGAP_CFG_STATE);
  sprintf(st,"\rPMC_SLAVE_BGAP_CFG_STATE value = %x \r\n",ReadData);
  SERI_Send(st);
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -