/* system.h - SOPC Builder system and BSP software package information */
 #include "system.h"

/* RT-Thread config file */
#ifndef __RTTHREAD_CFG_H__
#define __RTTHREAD_CFG_H__

/* RT_NAME_MAX*/
#define RT_NAME_MAX 8

/* RT_ALIGN_SIZE*/
#define RT_ALIGN_SIZE   4

/* PRIORITY_MAX */
#define RT_THREAD_PRIORITY_MAX  32

/* Tick per Second */
/* TIMER_TICKS_PER_SEC define in system.h */
#define RT_TICK_PER_SECOND  TIMER_TICKS_PER_SEC

/* SECTION: RT_DEBUG */
/* Thread Debug */
#define RT_DEBUG
#define RT_DEBUG_COLOR
//#define THREAD_DEBUG
//#define SCHEDULER_DEBUG
//#define IRQ_DEBUG

#define IDLE_THREAD_STACK_SIZE 1024

#define RT_USING_OVERFLOW_CHECK

/* Using Hook */
#define RT_USING_HOOK

/* Using Software Timer */
/* #define RT_USING_TIMER_SOFT */
#define RT_TIMER_THREAD_PRIO        4
#define RT_TIMER_THREAD_STACK_SIZE  512
#define RT_TIMER_TICK_PER_SECOND    10

/* SECTION: IPC */
/* Using Semaphore*/
#define RT_USING_SEMAPHORE

/* Using Mutex */
#define RT_USING_MUTEX

/* Using Event */
#define RT_USING_EVENT

/* Using MailBox */
#define RT_USING_MAILBOX

/* Using Message Queue */
#define RT_USING_MESSAGEQUEUE

/* SECTION: Memory Management */
/* Using Memory Pool Management*/
#define RT_USING_MEMPOOL

/* Using Dynamic Heap Management */
#define RT_USING_HEAP

/* Using Small MM */
#define RT_USING_SMALL_MEM

/* SECTION: Device System */
/* Using Device System */
#define RT_USING_DEVICE
#define RT_USING_UART1

/* SECTION: Console options */
#define RT_USING_CONSOLE
/* the buffer size of console*/
#define RT_CONSOLEBUF_SIZE  128

#define RT_USING_NEWLIB

/* SECTION: finsh, a C-Express shell */
#define RT_USING_FINSH
/* Using symbol table */
#define FINSH_USING_SYMTAB
#define FINSH_USING_DESCRIPTION
#define __fsymtab_start _alt_partition_FSymTab_start
#define __fsymtab_end   _alt_partition_FSymTab_end
#define __vsymtab_start _alt_partition_VSymTab_start
#define __vsymtab_end   _alt_partition_VSymTab_end

/* SECTION: device filesystem */
//#define RT_USING_DFS
#define RT_USING_DFS_ELMFAT

/* the max number of mounted filesystem */
#define DFS_FILESYSTEMS_MAX         2
/* the max number of opened files       */
#define DFS_FD_MAX                  4
/* the max number of cached sector      */
#define DFS_CACHE_MAX_NUM           4

/* SECTION: lwip, a lighwight TCP/IP protocol stack */
//#define RT_USING_LWIP
/* Enable ICMP protocol*/
#define RT_LWIP_ICMP
/* Enable UDP protocol*/
#define RT_LWIP_UDP
/* Enable TCP protocol*/
#define RT_LWIP_TCP
/* Enable DNS */
#define RT_LWIP_DNS

/* the number of simulatenously active TCP connections*/
#define RT_LWIP_TCP_PCB_NUM 5

/* Using DHCP */
//#define RT_LWIP_DHCP

/* ip address of target*/
#define RT_LWIP_IPADDR0 192
#define RT_LWIP_IPADDR1 168
#define RT_LWIP_IPADDR2 1
#define RT_LWIP_IPADDR3 30

/* gateway address of target*/
#define RT_LWIP_GWADDR0 192
#define RT_LWIP_GWADDR1 168
#define RT_LWIP_GWADDR2 1
#define RT_LWIP_GWADDR3 1

/* mask address of target*/
#define RT_LWIP_MSKADDR0    255
#define RT_LWIP_MSKADDR1    255
#define RT_LWIP_MSKADDR2    255
#define RT_LWIP_MSKADDR3    0

/* tcp thread options */
#define RT_LWIP_TCPTHREAD_PRIORITY      12
#define RT_LWIP_TCPTHREAD_MBOX_SIZE     4
#define RT_LWIP_TCPTHREAD_STACKSIZE     1024

/* ethernet if thread options */
#define RT_LWIP_ETHTHREAD_PRIORITY      15
#define RT_LWIP_ETHTHREAD_MBOX_SIZE     4
#define RT_LWIP_ETHTHREAD_STACKSIZE     512

#endif