twl_wrapsdk/build/tests/el/el-1/ARM7/src/kernel_cfg.c
shirait 9dd92e3eee add el (tentative)
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@154 4ee2a332-4b2b-5046-8439-1ba90f034370
2007-07-02 08:08:08 +00:00

435 lines
12 KiB
C
Raw Blame History

#include "kernel_cfg.h"
#ifndef ATTRIBUTE_ALIGN
#define ATTRIBUTE_ALIGN(n) __attribute__ ((aligned(n)))
#endif
#define MAIN_TASK 1
#define TNUM_TSKID 32
#define TNUM_SEMID 32
#define TNUM_FLGID 32
#define TNUM_DTQID 32
#define TNUM_MBXID 32
#define TNUM_MPFID 32
#define TNUM_CYCID 32
#define TNUM_INHNO 32
#define TNUM_EXCNO 0
#define TNUM_MPLID 32
#define TNUM_ALMID 32
#define TNUM_ATTACHED_ISRNO 0
#define TNUM_ISRID 0
#define TNUM_MBFID 32
#define TNUM_MTXID 32
#define TNUM_PORID 0
#define TNUM_SVCNO 0
#if (CTR_DEF_SYSTEM_IOP == 1)
#define TSIZE_KERNEL_BUFFER (256*1024) /* 256KByte */
#define TSIZE_MAIN_STACK (32*1024) /* 32KByte */
#else
#define TSIZE_KERNEL_BUFFER (1024*1024) /* 1MByte */
#define TSIZE_MAIN_STACK (128*1024) /* 128KByte */
#endif
#define KERNEL_MAGIC_NUMBER 0x01234567
#if TKERNEL_PRVER >= 0x1040
#define CFG_INTHDR_ENTRY(inthdr) INTHDR_ENTRY(inthdr)
#define CFG_EXCHDR_ENTRY(exchdr) EXCHDR_ENTRY(exchdr)
#define CFG_INT_ENTRY(inthdr) INT_ENTRY(inthdr)
#define CFG_EXC_ENTRY(exchdr) EXC_ENTRY(exchdr)
#else
#error "This configuration file has no compatibility with TOPPERS/JSP rel 1.3 or earlier."
#endif
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define __ZERO(x,y) _declspec(naked) void y(void){}
#else
#define __ZERO(x,y) x y[1]
#endif
/* User specified include files*/
#include "sample1.h"
#include "hw_timer.h"
#include "timer.h"
#include "logtask.h"
/********* Object initializer [task] *********/
const ID _kernel_tmax_tskid = (TMIN_TSKID + TNUM_TSKID - 1);
static VP __stack_MAIN_TASK[TSIZE_MAIN_STACK/sizeof(VP)] ATTRIBUTE_ALIGN(32);
#define TNUM_TINIA (1)
const UINT _kernel_tnum_tinia = TNUM_TINIA;
const TINIA _kernel_tinia_table[TNUM_TINIA] = {
{MAIN_TASK, {0x00u | 0x02u, (VP_INT)(0), (FP)(main_task), INT_PRIORITY(5), sizeof(__stack_MAIN_TASK), __stack_MAIN_TASK, TA_NULL, (FP)(NULL)}}};
const ID _kernel_torder_table[TNUM_TINIA] = {1};
TCB _kernel_tcb_table[TNUM_TSKID] ATTRIBUTE_ALIGN(32);
TINIB _kernel_tinib_table[TNUM_TSKID];
#define TNUM_TSK_RID (0) /* <20>\<5C><>ID<49>̐ݒ<CC90> */
const UINT _kernel_tnum_trid = TNUM_TSK_RID;
__ZERO(const ID, _kernel_trid_table);
/************** Object initializer [semaphore] ****************/
//miya #define TNUM_SEMID 4
const ID _kernel_tmax_semid = (TMIN_SEMID + TNUM_SEMID - 1);
#define TNUM_SEMINIA (0)
const UINT _kernel_tnum_seminia = TNUM_SEMINIA;
__ZERO(const SEMINIA, _kernel_seminia_table);
SEMCB _kernel_semcb_table[TNUM_SEMID] ATTRIBUTE_ALIGN(32);
SEMINIB _kernel_seminib_table[TNUM_SEMID];
#define TNUM_SEM_RID (0)
const UINT _kernel_tnum_semrid = TNUM_SEM_RID;
__ZERO(const ID, _kernel_semrid_table);
/********** Object initializer [eventflag] *********/
// miya #define TNUM_FLGID 0
const ID _kernel_tmax_flgid = (TMIN_FLGID + TNUM_FLGID - 1);
#define TNUM_FLGINIA (0)
const UINT _kernel_tnum_flginia = TNUM_FLGINIA;
__ZERO(const FLGINIA,_kernel_flginia_table);
FLGCB _kernel_flgcb_table[TNUM_FLGID] ATTRIBUTE_ALIGN(32);
FLGINIB _kernel_flginib_table[TNUM_FLGID];
#define TNUM_FLG_RID (0)
const UINT _kernel_tnum_flgrid = TNUM_FLG_RID;
__ZERO(const ID, _kernel_flgrid_table);
/******** Object initializer [dataqueue] ********/
// miya #define TNUM_DTQID 0
const ID _kernel_tmax_dtqid = (TMIN_DTQID + TNUM_DTQID - 1);
#define TNUM_DTQINIA (0)
const UINT _kernel_tnum_dtqinia = TNUM_DTQINIA;
__ZERO(const DTQINIA,_kernel_dtqinia_table);
DTQCB _kernel_dtqcb_table[TNUM_DTQID] ATTRIBUTE_ALIGN(32);
DTQINIB _kernel_dtqinib_table[TNUM_DTQID];
#define TNUM_DTQ_RID (0)
const UINT _kernel_tnum_dtqrid = TNUM_DTQ_RID;
__ZERO(const ID, _kernel_dtqrid_table);
/******** Object initializer [mailbox] ********/
// miya #define TNUM_MBXID 0
const ID _kernel_tmax_mbxid = (TMIN_MBXID + TNUM_MBXID - 1);
#define TNUM_MBXINIA (0)
const UINT _kernel_tnum_mbxinia = TNUM_MBXINIA;
__ZERO(const MBXINIA,_kernel_mbxinia_table);
MBXCB _kernel_mbxcb_table[TNUM_MBXID] ATTRIBUTE_ALIGN(32);
MBXINIB _kernel_mbxinib_table[TNUM_MBXID];
#define TNUM_MBX_RID (0)
const UINT _kernel_tnum_mbxrid = TNUM_MBX_RID;
__ZERO(const ID, _kernel_mbxrid_table);
/******** Object initializer [mempfix] *******/
// miya #define TNUM_MPFID 0
const ID _kernel_tmax_mpfid = (TMIN_MPFID + TNUM_MPFID - 1);
#define TNUM_MPFINIA (0)
const UINT _kernel_tnum_mpfinia = TNUM_MPFINIA;
__ZERO(const MPFINIA,_kernel_mpfinia_table);
MPFCB _kernel_mpfcb_table[TNUM_MPFID] ATTRIBUTE_ALIGN(32);
MPFINIB _kernel_mpfinib_table[TNUM_MPFID];
#define TNUM_MPF_RID (0)
const UINT _kernel_tnum_mpfrid = TNUM_MPF_RID;
__ZERO(const ID, _kernel_mpfrid_table);
/************* Object initializer [cyclic] ***********/
// miya #define TNUM_CYCID 1
const ID _kernel_tmax_cycid = (TMIN_CYCID + TNUM_CYCID - 1);
#define TNUM_CYCINIA (0)
const UINT _kernel_tnum_cycinia = TNUM_CYCINIA;
__ZERO(const CYCINIA, _kernel_cycinia_table);
CYCCB _kernel_cyccb_table[TNUM_CYCID] ATTRIBUTE_ALIGN(32);
CYCINIB _kernel_cycinib_table[TNUM_CYCID];
#define TNUM_CYC_RID (0)
const UINT _kernel_tnum_cycrid = TNUM_CYC_RID;
__ZERO(const ID, _kernel_cycrid_table);
/******* Object initializer [interrupt] *********/
// miya #define TNUM_INHNO 1
const UINT _kernel_tnum_inhno = TNUM_INHNO;
#if (CTR_DEF_SYSTEM_IOP == 1)
CFG_INTHDR_ENTRY(timer_handler);
const INHINIB _kernel_inhinib_table[TNUM_INHNO] = {
{OS_INTR_ID_TIMER1,0,(FP)CFG_INT_ENTRY(timer_handler)}};
#else
__ZERO(const INHINIB, _kernel_inhinib_table);
#endif
/******** Object initializer [exception] **********/
/********** Object initializer [mempvar] ***********/
// miya #define TNUM_MPLID 0
const ID _kernel_tmax_mplid = (TMIN_MPLID + TNUM_MPLID - 1);
#define TNUM_MPLINIA (0)
const UINT _kernel_tnum_mplinia = TNUM_MPLINIA;
__ZERO(const MPLINIA,_kernel_mplinia_table);
MPLCB _kernel_mplcb_table[TNUM_MPLID] ATTRIBUTE_ALIGN(32);
MPLINIB _kernel_mplinib_table[TNUM_MPLID];
#define TNUM_MPL_RID (0)
const UINT _kernel_tnum_mplrid = TNUM_MPL_RID;
__ZERO(const ID, _kernel_mplrid_table);
/******* Object initializer [alarm] ********/
// miya #define TNUM_ALMID 0
const ID _kernel_tmax_almid = (TMIN_ALMID + TNUM_ALMID - 1);
#define TNUM_ALMINIA (0)
const UINT _kernel_tnum_alminia = TNUM_ALMINIA;
__ZERO(const ALMINIA,_kernel_alminia_table);
__ZERO(ALMCB, _kernel_almcb_table) ATTRIBUTE_ALIGN(32);
__ZERO(ALMINIB, _kernel_alminib_table);
#define TNUM_ALM_RID (0)
const UINT _kernel_tnum_almrid = TNUM_ALM_RID;
__ZERO(const ID, _kernel_almrid_table);
/* Overrun handler */
void (null)(ID tskid, VP_INT exinf);
FP _kernel_overrun_handler_function = (FP)NULL;
/******** Object initializer [attached_isr] ********/
// miya #define TNUM_ATTACHED_ISRNO 0
const UINT _kernel_tnum_attached_isrno = TNUM_ATTACHED_ISRNO;
__ZERO(const ATTACHED_ISRINIB,_kernel_attached_isrinib_table);
/******* Object initializer [interrupt_service] ********/
// miya #define TNUM_ISRID 0
const ID _kernel_tmax_isrid = (TMIN_ISRID + TNUM_ISRID - 1);
#define TNUM_ISRINIA (0)
const UINT _kernel_tnum_isrinia = TNUM_ISRINIA;
__ZERO(const ISRINIA,_kernel_isrinia_table);
__ZERO(ISRCB, _kernel_isrcb_table) ATTRIBUTE_ALIGN(32);
__ZERO(ISRINIB, _kernel_isrinib_table);
#define TNUM_ISR_RID (0)
const UINT _kernel_tnum_isrrid = TNUM_ISR_RID;
__ZERO(const ID, _kernel_isrrid_table);
/******** Object initializer [messagebuffer] ********/
// miya #define TNUM_MBFID 0
const ID _kernel_tmax_mbfid = (TMIN_MBFID + TNUM_MBFID - 1);
#define TNUM_MBFINIA (0)
const UINT _kernel_tnum_mbfinia = TNUM_MBFINIA;
__ZERO(const MBFINIA,_kernel_mbfinia_table);
MBFCB _kernel_mbfcb_table[TNUM_MBFID] ATTRIBUTE_ALIGN(32);
MBFINIB _kernel_mbfinib_table[TNUM_MBFID];
#define TNUM_MBF_RID (0)
const UINT _kernel_tnum_mbfrid = TNUM_MBF_RID;
__ZERO(const ID, _kernel_mbfrid_table);
/********* Object initializer [mutex] ************/
// miya #define TNUM_MTXID 0
const ID _kernel_tmax_mtxid = (TMIN_MTXID + TNUM_MTXID - 1);
#define TNUM_MTXINIA (0)
const UINT _kernel_tnum_mtxinia = TNUM_MTXINIA;
__ZERO(const MTXINIA,_kernel_mtxinia_table);
MTXCB _kernel_mtxcb_table[TNUM_MTXID] ATTRIBUTE_ALIGN(32);
MTXINIB _kernel_mtxinib_table[TNUM_MTXID];
#define TNUM_MTX_RID (0)
const UINT _kernel_tnum_mtxrid = TNUM_MTX_RID;
__ZERO(const ID, _kernel_mtxrid_table);
/******** Object initializer [rendezvous] ********/
// miya #define TNUM_PORID 0
const ID _kernel_tmax_porid = (TMIN_PORID + TNUM_PORID - 1);
#define TNUM_PORINIA (0)
const UINT _kernel_tnum_porinia = TNUM_PORINIA;
__ZERO(const PORINIA,_kernel_porinia_table);
__ZERO(PORCB, _kernel_porcb_table) ATTRIBUTE_ALIGN(32);
__ZERO(PORINIB, _kernel_porinib_table);
#define TNUM_POR_RID (0)
const UINT _kernel_tnum_porrid = TNUM_POR_RID;
__ZERO(const ID, _kernel_porrid_table);
/***** Object initializer [exservicecall] *****/
// miya #define TNUM_SVCNO 0
const UINT _kernel_tnum_svcno = TNUM_SVCNO;
__ZERO(const SVCINIB,_kernel_svcinib_table);
__ZERO(SVCCB, _kernel_svccb_table) ATTRIBUTE_ALIGN(32);
#define TNUM_SVC_RID (0)
const UINT _kernel_tnum_svcrid = TNUM_SVC_RID;
__ZERO(const ID, _kernel_svcrid_table);
/******* Kernel buffer ********/
// miya #define TSIZE_KERNEL_BUFFER (1024*1024)
VP __kernel_bufmgr_buffer[TSIZE_KERNEL_BUFFER/sizeof(VP)] ATTRIBUTE_ALIGN(32);
const SIZE __kernel_bufmgr_buffer_size = TSIZE_KERNEL_BUFFER;
TMEVTN _kernel_tmevt_heap[TNUM_TSKID + TNUM_CYCID + TNUM_ALMID];
/******** Variables for kernel checker ********/
#if (CTR_DEF_SYSTEM_IOP == 1)
static const UW _checker_magic_number = KERNEL_MAGIC_NUMBER;
#endif
/************************************************************/
// miya #define TNUM_EXCNO 0
const UINT _kernel_tnum_excno = TNUM_EXCNO;
__ZERO(const EXCINIB,_kernel_excinib_table);
/* Initialization handler */
void
_kernel_call_inirtn(void)
{
timer_initialize( (VP_INT)(0) );
// serial_initialize( (VP_INT)(0) );
}
void
_kernel_call_terrtn(void)
{
timer_terminate( (VP_INT)(0) );
}
/* Object initialization routine */
void
_kernel_object_initialize(void)
{
_kernel_bufmgr_initialize();
if( _kernel_tmax_tskid ) {
_kernel_task_initialize();
}
if( _kernel_tmax_semid ) {
_kernel_semaphore_initialize();
}
if( _kernel_tmax_flgid ) {
_kernel_eventflag_initialize();
}
if( _kernel_tmax_dtqid ) {
_kernel_dataqueue_initialize();
}
if( _kernel_tmax_mtxid ) {
_kernel_mutex_initialize();
}
if( _kernel_tmax_mbxid ) {
_kernel_mailbox_initialize();
}
if( _kernel_tmax_mpfid ) {
_kernel_mempfix_initialize();
}
if( _kernel_tmax_mplid ) {
_kernel_mempvar_initialize();
}
if( _kernel_tmax_cycid ) {
_kernel_cyclic_initialize();
}
if( _kernel_tmax_mbfid ) {
_kernel_messagebuffer_initialize();
}
if( _kernel_tmax_almid ) {
_kernel_alarm_initialize();
}
if( _kernel_tmax_porid ) {
_kernel_rendezvous_initialize();
}
#if 0
if( _kernel_tmax_isrid )
//_kernel_svchash_initialize();
task_overrun.c:overrun_initialize();
exception.c:exception_initialize();
interrupt.c:attached_isr_initialize();
interrupt.c:interrupt_service_initialize();
servicecall.c:_kernel_svchash_initialize();
servicecall.c:exservicecall_initialize();
#endif
#if (CTR_DEF_SYSTEM_IOP == 1)
_kernel_interrupt_initialize();
#endif
}