debug.c 1.94 KB
#include "os_config.h"

#include "regmap.h"

#include "mem_reloc.h"

#include "c_def.h"
#include "debug.h"
//#include "oem.h"

#include "hw_gpio.h"
#include "app_gpio.h"

#include "flash_boot.h"


#if 1
void delay_loop(U32 count) __INTERNAL_RAM_TEXT;
void debug_assert (BOOL condition) __INTERNAL_RAM_TEXT;
#else
void delay_loop(U32 count);
void debug_assert (BOOL condition);
#endif


#if 1
void _Assert(BOOL condition) __LIBKERNAL_RAM_TEXT;
void _Assert(BOOL condition)
{
	debug_assert(condition);
}
#endif


void debug_assert (BOOL condition)
{
#if 0
	U8 continous = FALSE;

	if (condition == FALSE)
	{
		//DBG_Printf ("DBG Assert Fail\n\r");
		while (1)
		{
			if (continous == TRUE)
			{
				break;
			}
		}
	}

#else
	if (condition != TRUE)
	{
#ifdef BOOT_FROM_FLASH
		//asm("nop");
#else
		asm("break 1,1");
		asm("nop");
#endif
	}
#endif
}

void debug_int(void)
{
}

void tools_debugAssert( U16 cond )
{
	if (!cond)
	{
		//asm(".half 0xbebe");
		asm("nop");
		//asm("break 1,1");
	}
}

void debug_pin_init(void)
{
	app_gpio_output_level_set(DEBEG_PIN, GPIO_LOW);
	app_gpio_MUXfunction_select(DEBEG_PIN, MUX_SEL_GPIO_OUTPUT);
	app_gpio_output_level_set(DEBEG_PIN2, GPIO_LOW);
	app_gpio_MUXfunction_select(DEBEG_PIN2, MUX_SEL_GPIO_OUTPUT);
	app_gpio_output_level_set(DEBEG_PIN3, GPIO_LOW);
	app_gpio_MUXfunction_select(DEBEG_PIN3, MUX_SEL_GPIO_OUTPUT);	
#if 0
	while (1)
	{
		debug_pin_test();
	}
#endif
}

void debug_pin(void)
{
#if 1//ndef UART_RX_ENABLE
	static U8 status = FALSE;
	unsigned int interrupt_save;

	if (status)
	{
		DBG_PIN_HIGH;
		status = FALSE;
	}
	else
	{
		DBG_PIN_LOW;
		status = TRUE;
	}
#endif	
}

void debug_pin_test(void)
{
#if 1//ndef UART0_RX_ENABLE
	static U8 status = TRUE;

	while (1)
	{
		if (status)
		{
			DBG_PIN_HIGH;
			delayms(50);
			DBG_PIN_HIGH2;
			status = FALSE;
		}
		else
		{
			DBG_PIN_LOW;
			DBG_PIN_LOW2;
			status = TRUE;
		}

		delayms(500);
	}
#endif
}

void delay_loop(U32 count)
{
	while (count--)
	{
		asm("nop");
	}
}