Exemple #1
0
void fs_err_internal_fatal(kal_int32 code, void *info)
{
    kal_uint32 lr;
    FS_GET_RETURN_ADDRESS(lr);
    _gfs_err_info = info;
    kal_fatal_error_handler(KAL_ERROR_FILESYS_NORMAL_FAILED, lr);  // A02
}
Exemple #2
0
void fs_err_assert(fs_src_file_enum file, kal_uint32 line)
{
    kal_uint32 lr;
    FS_GET_RETURN_ADDRESS(lr);
    _gfs_err_assert_line    = line;
    _gfs_err_assert_file    = file;
    kal_fatal_error_handler(KAL_ERROR_FILESYS_NORMAL_FAILED, lr); // A02
}
Exemple #3
0
void fs_err_assert_ext(fs_src_file_enum file, kal_uint32 line, kal_uint32 e1, kal_uint32 e2, kal_uint32 e3)
{
    kal_uint32 lr;
    FS_GET_RETURN_ADDRESS(lr);
    _gfs_err_assert_line        = line;
    _gfs_err_assert_file        = file;
    _gfs_err_assert_param[0]    = e1;
    _gfs_err_assert_param[1]    = e2;
    _gfs_err_assert_param[2]    = e3;
    kal_fatal_error_handler(KAL_ERROR_FILESYS_NORMAL_FAILED, lr);  // A02
}
Exemple #4
0
void fs_err_user_fatal(kal_int32 code, void *info)
{
    kal_fatal_error_handler(KAL_ERROR_FILESYS_INTERNAL_FAILED, (kal_uint32)info);  // A01
}
Exemple #5
0
void EINT_Registration_and_mask(kal_uint8 eintno, kal_bool Dbounce_En, kal_bool ACT_Polarity, void (reg_hisr)(void), kal_bool auto_umask)
{
//	PDN_CLR(PDN_GPIO);
	kal_uint32 savedMask;

	/* If EINT Number is out of range, get return address and send it to exception handler */
	if(eintno >= EINT_TOTAL_CHANNEL)
	{
	   kal_uint32 retaddr;
	   
	   GET_RETURN_ADDRESS(retaddr);
	   kal_fatal_error_handler(KAL_ERROR_DRV_EINT_INVALID_INDEX, retaddr);
	}
   
	/*disable eint interrupt*/
	eint_set_irqen(eintno, EINT_DISABLE);

	/*register LISR*/
	/*dispatch for dedicated eint*/
	if (eint_is_dedicated & (1<<eintno))
	{
		switch(eint_is_dedicated_map[eintno])
		{
			case DEDICATED_EINT0:
			{
				eint_set_l1_eint_enable(DEDICATED_EINT0, EINT_DISABLE);
				IRQ_Register_LISR(DEDICATED_EINT_IRQ0, DEINT0_LISR, "DEINT0 handler");
			}
			break;
			case DEDICATED_EINT1:
			{
				eint_set_l1_eint_enable(DEDICATED_EINT1, EINT_DISABLE);
				IRQ_Register_LISR(DEDICATED_EINT_IRQ1, DEINT1_LISR, "DEINT1 handler");
			}
			break;
			case DEDICATED_EINT2:
			{
				eint_set_l1_eint_enable(DEDICATED_EINT2, EINT_DISABLE);
				IRQ_Register_LISR(DEDICATED_EINT_IRQ2, DEINT2_LISR, "DEINT2 handler");
			}
			break;
			case DEDICATED_EINT3:
			{
				eint_set_l1_eint_enable(DEDICATED_EINT3, EINT_DISABLE);
				IRQ_Register_LISR(DEDICATED_EINT_IRQ3, DEINT3_LISR, "DEINT3 handler");
			}
			break;
			default:
			break;
		}
	}
	else
	{
		IRQ_Register_LISR(IRQ_EIT_CODE, EINT_LISR, "EINT handler");
	}

   /* Save and set MCU's I,F bits to disable interrupts */
//   savedMask = LockIRQ();

   /* Set external interrupt polarity */
   EINT_Set_Polarity(eintno,ACT_Polarity);
#if !defined(MT6290)
	  gpio_set_eint_src(eintno,eint_src_map[eintno]);
#endif

   if (Dbounce_En)
   {
   	 //eint_set_debounce_duration(eintno,EINT_DB_DUR_DEFAULT);
	 eint_set_debounce_enable(eintno,EINT_ENABLE);
   }
   else
   {
     /*disable debounce */
     eint_set_debounce_enable(eintno,EINT_DISABLE);
   }

   /* Save and set MCU's I,F bits to disable interrupts */
   savedMask = SaveAndSetIRQMask();

   /* Register external interrupt's HISR */
   EINT_FUNC.eint_func[eintno] = reg_hisr;
   EINT_FUNC.eint_active[eintno] = KAL_FALSE;
   EINT_FUNC.eint_auto_umask[eintno] = auto_umask;

	if (eint_is_dedicated & (1<<eintno))
	{
		/* register HISR */
		DRV_Register_HISR(DRV_DEINT_HISR_ID, DEINT_HISR_Entry);
		EINT_L2_ACK(eintno);
		//EINT_UnMask(eintno);
		RestoreIRQMask(savedMask);
	}
	else
	{
		/* register HISR */
		DRV_Register_HISR(DRV_EINT_HISR_ID, EINT_HISR_Entry);
		EINT_L2_ACK(eintno);
		//EINT_UnMask(eintno);
		IRQSensitivity( IRQ_EIT_CODE, LEVEL_SENSITIVE );
		/* Enable external interrupt */
		IRQUnmask( IRQ_EIT_CODE );
		RestoreIRQMask(savedMask);
	}
}
Exemple #6
0
/*************************************************************************
* FUNCTION
*  IRQ_Default_LISR
*
* DESCRIPTION
*   This function implement default IRQ' LISR
*
* CALLS
*
* CALL BY
*  IRQ_LISR_Init()
*
* PARAMETERS
*
* RETURNS
*
*************************************************************************/
void IRQ_Default_LISR(void)
{
   kal_fatal_error_handler(KAL_ERROR_NON_REGISTERED_LISR, (kal_uint32)processing_irqx);
}