void  BSP_Init (void)
{
		// Interrupt initialization
    BSP_IntInit();
		
		// Initailize system services, clocks, etc.
    BSP_SysInit();             

		// RGB LED initialization
    BSP_LED_Init();
	
		// Push Button initialization
		BSP_SWITCH_Init();
	
		// PIR sensor initialization
		BSP_PIR_Init();
	
		// UART initialization
		BSP_UART_Init();
	
		// Semaphore Create
		sharedDataSem = OSSemCreate(1);
		
		// semaphore Create
		sharedDataSemUart = OSSemCreate(1);
		
		// Mailbox Create
		MailBox1 = OSMboxCreate(&global_pir_val);
	
}
void  BSP_Init (void)
{
    BSP_SysInit();                                              /* Initialize system services, clocks, etc.             */

    OS_BSP_TickInit();                                          /* Init uC/OS-xx periodic time source                   */

#if BSP_CFG_LED_EN       > 0u
    BSP_LED_Init();                                             /* Initialize LEDs                                      */
#endif


#if BSP_CFG_GRAPH_LCD_EN > 0u
    BSP_GraphLCD_Init();                                        /* Initialize the on-board graphics LCD display         */
#endif


#if  BSP_CFG_CAN_EN      > 0u
#endif


#if  BSP_CFG_CAN_OPEN_EN > 0u
#endif


#if  BSP_CFG_FS_EN       > 0u
#endif


#if  BSP_CFG_GUI_EN      > 0u
#endif


#if  BSP_CFG_MBM_EN      > 0u
#endif


#if  BSP_CFG_MBS_EN      > 0u
#endif


#if  BSP_CFG_NET_EN      > 0u
#endif


#if  BSP_CFG_OS2_EN      > 0u
#endif


#if  BSP_CFG_OS3_EN      > 0u
#endif


#if  BSP_CFG_USBD_EN     > 0u
                                                                /* ---------------- USB PIN CONFIGURATION ------------- */
    PORT2.PDR.BIT.B3   = 0;                                     /* Clear USB0_DPUPE pin                                 */
    PORT2.PMR.BIT.B3   = 0;

    MPC.PWPR.BIT.B0WI  = 0;                                     /* En writing to PFS registers                          */
    MPC.PWPR.BIT.PFSWE = 1;
    MPC.P23PFS.BYTE    = 0x13;                                  /* Select USB0_DPUPE as peripheral function             */
    MPC.PWPR.BIT.PFSWE = 0;                                     /* Dis writing to PFS registers                         */
    MPC.PWPR.BIT.B0WI  = 1;

    PORT2.PMR.BIT.B3   = 1;                                     /* Set pin as I/O port for peripheral function          */
#endif


#if  BSP_CFG_USBH_EN     > 0u
#endif


#if BSP_CFG_MISC_EN      > 0u
    BSP_MiscInit();                                             /* Initialize miscellaneous services                    */
#endif
}