Example #1
0
static Cyg_ErrNo gx3113_panel_open(struct cyg_devtab_entry **tab,
                       struct cyg_devtab_entry *sub_tab,
                       const char *name)
{
	//unsigned char initLedDisp = 0;
	
 	bsp_printf("[panel]gx3113_panel_open\n");
    if(!s_panel_conuter)
    {
	    s_panel_timer = gx_rtc_timer_create((gx_rtc_timer_callback)bsp_front_panel_scan_manager,0,4,4);
//		s_panel_timer = gx_rtc_timer_create((gx_rtc_timer_callback)bsp_front_panel_scan_manager,0,0,5);
    }
	
	if (s_panel_timer < 0)
	{

		bsp_printf("[panel]gx_rtc_timer_create failed!\n");
	}
	else
	{
		/*wangjian modify on 20141215 for boot disp led.*/
		#if 0
		if (0 == s_panel_conuter)
		{
			initLedDisp = GXLED_BOOT;
			bsp_front_panel_show_string(&initLedDisp);
		}
		#endif
	
       	s_panel_conuter++;
		bsp_printf("gx_rtc_timer_create s_panel_timer: %d\n", s_panel_timer);
	}
	return ENOERR;
}
Example #2
0
void  dump_PRNG()
{
	uint32_t    au32PrngData[8];
	
	PRNG_Read(au32PrngData);
	bsp_printf("PRNG DATA ==>\n");
	bsp_printf("    0x%08x  0x%08x  0x%08x  0x%08x\n", au32PrngData[0], au32PrngData[1], au32PrngData[2], au32PrngData[3]);
	bsp_printf("    0x%08x  0x%08x  0x%08x  0x%08x\n", au32PrngData[4], au32PrngData[5], au32PrngData[6], au32PrngData[7]);
}
Example #3
0
void _bsp_assert(const char *file, const int line, const char *condition)
{
    bsp_printf("Assertion \"%s\" failed\n", condition);
    bsp_printf("File \"%s\"\n", file);
    bsp_printf("Line %d\n", line);
#if defined(PORT_TOGGLE_DEBUG)
    PORT_TOGGLE_DEBUG();
#else
    while(1) ;
#endif /* defined(PORT_TOGGLE_DEBUG) */
}
Example #4
0
static  void  AppTask_2 (void *p_arg)
{
	INT8U  err;
	
   	(void)p_arg;

    APP_TRACE_INFO(("AppTask_2\n\r"));

	pSecureEventFlagGrp = OSFlagCreate(0x0, &err);

    /* Enable Crypto clock */        
    CLK->AHBCLK |= CLK_AHBCLK_CRPTCKEN_Msk;

	BSP_IntVectSet(BSP_INT_ID_CRYPTO, CRYPTO_IRQHandler);
	BSP_IntEn(BSP_INT_ID_CRYPTO);
	PRNG_ENABLE_INT();

	while (1)
	{
		PRNG_Open(PRNG_KEY_SIZE_256, 0, 0);
		bsp_printf("Start PRNG...\n");
		PRNG_Start();
		OSFlagPend(pSecureEventFlagGrp, 0x1, OS_FLAG_WAIT_SET_ANY, 0, &err);
		dump_PRNG();
        OSTimeDlyHMSM(0, 0, 0, 100);
    }
}
Example #5
0
static Cyg_ErrNo gx3113_panel_close(cyg_io_handle_t handle)
{
    bsp_printf("[panel]gx3113_panel_close\n");
    s_panel_conuter --;
    if(!s_panel_conuter)
    {
	    gx_rtc_timer_delete(s_panel_timer);
    }
	return ENOERR;
}
void gx_stb_panel_tm1635_set_led_value(uint32_t nLedValue)
{
# if 0
	int8_t i;
	

	gs_chLedValue_1635[0] = gs_chLedData_1635[LED_DATA_DARK];
	gs_chLedValue_1635[1] = gs_chLedData_1635[LED_DATA_DARK];
	gs_chLedValue_1635[2] = gs_chLedData_1635[LED_DATA_DARK];
	gs_chLedValue_1635[3] = gs_chLedData_1635[LED_DATA_DARK];

	if(nLedValue > 9999)
	{
		nLedValue = 9999;
		bsp_printf("nLedValue = %d\n", nLedValue);
	}

	for(i = (g_PanelTM1635Config.m_chLedCnt-1) ; i >= 0  ; i--)
	{
		gs_chLedValue_1635[i] = (nLedValue)%10;
		nLedValue = (nLedValue - gs_chLedValue_1635[i])/10;
		//bsp_printf("gs_chLedValue_1635[%d]= %d, nLedValue=%d\n",i,gs_chLedValue_1635[i], nLedValue);
	}
		
	for(i = 0; i < g_PanelTM1635Config.m_chLedCnt; i++)
	{
		gs_chLedValue_1635[i] =  gs_chLedData_1635[gs_chLedValue_1635[i]];
		//bsp_printf("gs_chLedValue_1635[%d]= %d\n",i,gs_chLedValue_1635[i]);
	}
#else
	int8_t i;
	char pStr[5] = {0};
	uint32_t temp = 0;
	for(i = 3 ; i >= 0  ; i--)
	{
		temp = (nLedValue)%10;
		pStr[i] = 0x30 + temp;
		nLedValue = (nLedValue -temp)/10;
	}
	
	gs_chStringLen = strlen((char*)pStr);
	gs_chStringPos = 0;
	memset(gs_chStringValue, 0x00, 256);
	gx_stb_panel_tm1635_convert_acsii((unsigned char *)pStr, (unsigned char *)gs_chStringValue, 256);
#endif
}
Example #7
0
/*
*********************************************************************************************************
*                                            BSP_Set_System_Clock()
*
* Description : Select HCLK clock source and divider
*
* Argument(s) : clk_src  HCLK clock source. Must be type E_CLK_SRC.
*               clk_div  HCLK clock frequency = (HCLK clock source frequency) / (clk_div + 1)
*                        The valid range of clk_div is 0 <= clk_div <= 15.
*
* Return(s)   : 0        Success
*               -1       Failed
*
* Caller(s)   : Application.
*
* Note(s)     : none.
*********************************************************************************************************
*/
int  BSP_Set_System_Clock (E_CLK_SRC clk_src, int clk_div)
{
	switch (clk_src)
	{
		case CLK_XTL_12M:
			CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLKSEL_Msk);
			_cpu_freq = HXT_HZ / (clk_div+1);
			break; 

		case CLK_XTL_32K:
			CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLKSEL_Msk) | 0x1;
			_cpu_freq = LXT_HZ / (clk_div+1);
			break; 

		case CLK_OSC_22M:
			CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLKSEL_Msk) | 0x7;
			_cpu_freq = HIRC_HZ / (clk_div+1);
			break; 

		case CLK_OSC_10K:
			CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLKSEL_Msk) | 0x3;
			_cpu_freq = LIRC_HZ / (clk_div+1);
			break; 

		case CLK_PLL:
			CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLKSEL_Msk) | 0x2;
			_cpu_freq = _pll_freq / (clk_div+1);
			break; 
			
		default:
			return -1;
	}

	bsp_printf("Reinit system tick with HCLK %d.\n", _cpu_freq);
	BSP_Tick_Init();
	
	return 0;
}
Example #8
0
int  BSP_Set_PLL_Freq (E_CLK_SRC pll_src, CPU_INT32U pll_freq_Hz)
{
	CPU_INT32U   r_out_dv, r_in_dv, r_fb_dv;
	CPU_INT32U   check, fin, fout, nr, no, nf; 
	CPU_INT32U   diff, best_diff, best_val = 0, best_freq = 0;
	
	if ((pll_src != CLK_XTL_12M) && (pll_src != CLK_OSC_22M))
		return -1;
	
	if (pll_src == CLK_XTL_12M)
		fin = HXT_HZ;
	else
		fin = HIRC_HZ;
		
	best_diff = 0x7fffffff;
	
	for (r_out_dv = 0; r_out_dv <= 3; r_out_dv++)
	{
		for (r_in_dv = 0; r_in_dv <= 0x1f; r_in_dv++)
		{
			for (r_fb_dv = 0; r_fb_dv <= 0x1ff; r_fb_dv++)
			{
				nr = r_in_dv + 2;
				no = (r_out_dv == 0) ? 1 : (r_out_dv == 3 ? 4 : 2);
				nf = r_fb_dv + 2;
				
				check = (fin/1000) / (2 * nr);
				if ((check <= 800) || (check >= 8000))
					continue;
				
				check = ((fin/1000) * nf) / nr;
				
				if ((check <= 100000) || (check >= 200000))
					continue;
				
				if (check < 120000)
					continue;

				fout = ((fin/1000) * nf) / (nr * no);
				fout *= 1000;
				
				if (fout > pll_freq_Hz)
					diff = fout - pll_freq_Hz;
				else
					diff = pll_freq_Hz - fout;
				
				if (diff < best_diff)
				{
					best_diff = diff;
					best_val = (r_out_dv << 14) | (r_in_dv << 9) | r_fb_dv;
					best_freq = fout;
					if (diff == 0)
						break;
				}
			}
		}
	} 

	if (pll_src == CLK_XTL_12M)
		CLK->PLLCTL = best_val;
	else
		CLK->PLLCTL = CLK_PLLCTL_PLLSRC_Msk | best_val;
		
	_pll_freq = best_freq;
	
	bsp_printf("PLLCTL=0x%x, FREQ=%d.%02d MHz\n", best_val, _pll_freq/1000000, (_pll_freq % 1000000) / 10000);
	return 0;
}
Example #9
0
static Cyg_ErrNo gx3113_panel_ioctl(cyg_io_handle_t handle, cyg_uint32 key, void *buf)
{
	int gpio = 0;

	if ((PANEL_GPIO_HIGH == key)||(PANEL_GPIO_LOW == key)
		||(PANEL_STRING == key)||(PANEL_DATA == key)
		||(PANEL_READ_KEY == key))
		{
			if (buf == NULL) 
				return EIO;
			gpio = *(uint32_t*)buf;			
		}

	switch (key)
	{
		case PANEL_GPIO_HIGH:
			bsp_printf("PANEL_GPIO_HIGH %d\n",gpio);
			gx_gpio_setio(gpio, 1);
			gx_gpio_setlevel(gpio,1);			
			break;
		case PANEL_GPIO_LOW:
			bsp_printf("PANEL_GPIO_LOW %d\n",gpio);
			gx_gpio_setio(gpio, 1);
			gx_gpio_setlevel(gpio,0);			
			break;
		case PANEL_STRING:
#if 0
			bsp_front_panel_show_string(*(GXLED_Str_t*)(buf));
#else
			bsp_front_panel_show_string(buf);

#endif
			break;

		case PANEL_DATA:
//			bsp_printf(" gx3113_panel_ioctl PANEL_DATA \n");
#if 0
			bsp_front_panel_set_signal(*(uint32_t*)buf);
#else
			bsp_front_panel_set_led_value(*(uint32_t*)buf);

#endif
			break;

		case PANEL_READ_KEY:
//			bsp_printf(" gx3113_panel_ioctl PANEL_READ_KEY \n");
			*(uint32_t*)buf = s_panel_key;
			break;

		case PANEL_LOCK:
			bsp_front_panel_lock();
			//gx_stb_panel_ct1642_on();
			break;

		case PANEL_UNLOCK:
			bsp_front_panel_unlock();
			break;

		case PANEL_POWER_OFF:
			bsp_printf("PANEL_POWER_OFF\n");
			//gx_stb_panel_ct1642_set_led_dark();
            		bsp_front_panel_poweroff();
			//gx_stb_panel_ct1642_standby();
			//gx_stb_panel_ct1642_scan_manager();
			break;
		default:
			return EIO;
	}

	return ENOERR;
}
Example #10
0
// Utility function for printing breakpoints
void bp_print(target_register_t bp_val)
{
    bsp_printf("0x%08lx\n", (unsigned long)bp_val);
}