os_init.c 2.89 KB
// Copyright (C) Optek. 2008
//
//! \file os_init.c
//! \brief os initialization
//! \version 0.1
//! \date Feb, 2007
//!
//! Initialization code for RTOS (threadx)
//!
//

#include "os_config.h"

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

//#include "regmap.h"
//#include "hw_misc.h"

#include "interrupt.h"



///////////////////////////////////////////////////////////////////////////////
// Code
////////////////////////////////////////////////////////////////////////////////

//
//! \brief Player-specific pre-ThreadX initialization
//!
//! \fntype Function
//!
//! Performs basic system initialization after ThreadX has been initialized
//! but before any threads are running.
//

//#pragma ghs section text=".ocram.text"


#include <stdlib.h>
#include <stdio.h>



int level_intParm;

unsigned int version;

void os_init(void *threadx_avail_mem)
{
	U32 temp;

#if 0//ndef RTOS_ENABLE
	_xt_tick_divisor_init();
#endif


#if 1//def UART0_ENABLE
extern void *mutex_uart2_tx;
	mutex_uart2_tx = NULL;
	app_uart0_init();
#endif

#ifdef UART1_ENABLE
	app_uart1_init();
#endif

#ifdef UART2_ENABLE
	app_uart2_init();
#endif


	//app_qspi_init();

#if 1//for debugging
	debug_pin_init();
#endif

#ifdef SD_ENABLE
	sd_preinit();
#endif

	xt_set_interrupt_handler(0, L1_int0_extlevel, (void *)&level_intParm);

	xt_set_interrupt_handler(1, L1_int1_extlevel, (void *)&level_intParm);

#if 0//ndef RTOS_ENABLE
	xt_set_interrupt_handler(6, L1_int6_timer0, (void *)&level_intParm);
#endif

#ifdef USB_HOST_ENABLE
	xt_set_interrupt_handler(8, L2_int8_extlevel, (void *)&level_intParm);
#endif

#if 1//def TIMER1_ENABLE
	void optek_link_timer_int(void *param);
	xt_set_interrupt_handler(10, optek_link_timer_int, (void *)&level_intParm);
#endif

	//for DMA
	xt_set_interrupt_handler(9, L3_int9_extlevel, (void *)&level_intParm);
	//xt_set_interrupt_handler(1, L1_int1_extlevel, (void *)&level_intParm);
	xt_set_interrupt_handler(2, L1_int2_extlevel, (void *)&level_intParm);
	//xt_set_interrupt_handler(6, L1_int6_timer0, (void *)&level_intParm);
	//xt_set_interrupt_handler(10, L3_int10_timer1, (void *)&level_intParm);

	xt_set_interrupt_handler(3, L1_int3_extlevel, (void *)&level_intParm);
	xt_set_interrupt_handler(4, L1_int4_extlevel, (void *)&level_intParm);
#ifdef BTDM5_DIV_3INT
	xt_set_interrupt_handler(18, L2_int18_extlevel, (void *)&level_intParm);
	xt_set_interrupt_handler(19, L2_int19_extlevel, (void *)&level_intParm);
	xt_set_interrupt_handler(20, L2_int20_extlevel, (void *)&level_intParm);
#endif

#ifdef ADC_INT_ENABLE
	xt_set_interrupt_handler(5, L1_int5_extlevel, (void *)&level_intParm);
#endif

#if 1
	XT_INTS_ON(LEVEL1_INT2_MASK);
	XT_INTS_ON(LEVEL3_INT9_MASK);

	XT_INTS_ON(LEVEL1_INT3_MASK);
	XT_INTS_ON(LEVEL1_INT4_MASK);
#endif


	app_main();
}

////////////////////////////////////////////////////////////////////////////////
// End of file
////////////////////////////////////////////////////////////////////////////////