00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __config_h__
00027 #define __config_h__
00028
00029
00030
00031
00032
00033
00034
00035 #define CONF_TIME
00036 #define CONF_MM
00037 #define CONF_TM
00038 #define CONF_AUTOSHUTOFF
00039 //#define CONF_TM_DEBUG
00040 #define CONF_SETJMP
00041 #define CONF_ATOMIC
00042 #define CONF_SEMAPHORES
00043 #define CONF_CRITICAL_SECTIONS
00044 #define CONF_PROGRAM
00045 #define CONF_VIS
00046 //#define CONF_ROM_MEMCPY
00047
00048
00049
00050 #define CONF_LNP
00051 // #define CONF_LNP_FAST
00052 // Can override with compile-time option
00053 #if !defined(CONF_LNP_HOSTADDR)
00054 #define CONF_LNP_HOSTADDR 0
00055 #endif
00056
00057
00058 #define CONF_LNP_HOSTMASK 0xf0
00059
00060
00061
00062 #define CONF_RCX_PROTOCOL
00063 #define CONF_LR_HANDLER
00064 #define CONF_RCX_MESSAGE
00065
00066
00067
00068 #define CONF_DKEY
00069 #define CONF_BATTERY_INDICATOR
00070 #define CONF_LCD_REFRESH
00071 #define CONF_CONIO
00072 #define CONF_ASCII
00073 #define CONF_DSOUND
00074 #define CONF_ON_OFF_SOUND
00075 #define CONF_DMOTOR
00076 // #define CONF_DMOTOR_HOLD
00077 #define CONF_DSENSOR
00078 #define CONF_DSENSOR_ROTATION
00079 //#define CONF_DSENSOR_VELOCITY
00080 //#define CONF_DSENSOR_MUX
00081 //#define CONF_DSENSOR_SWMUX
00082
00083
00084
00085 #if defined(CONF_ASCII) && !defined(CONF_CONIO)
00086 #error "Ascii needs console IO"
00087 #endif
00088
00089 #if defined(CONF_DKEY) && !defined(CONF_TIME)
00090 #error "Key debouncing needs system time."
00091 #endif
00092
00093 #if defined(CONF_TM) && !defined(CONF_TIME)
00094 #error "Task management needs system time."
00095 #endif
00096
00097 #if defined(CONF_TM) && !defined(CONF_MM)
00098 #error "Task management needs memory management."
00099 #endif
00100
00101 #if defined(CONF_TM) && !defined(CONF_ATOMIC)
00102 #error "Task management needs atomic counters for kernel lock"
00103 #endif
00104
00105 #if defined(CONF_LNP) && defined(CONF_TM) && !defined(CONF_SEMAPHORES)
00106 #error "Tasksafe networking needs semaphores."
00107 #endif
00108
00109 #if defined(CONF_SEMAPHORES) && !defined(CONF_ATOMIC)
00110 #error "Semphores need atomic counters"
00111 #endif
00112
00113 #if defined(CONF_CRITICAL_SECTIONS) && !defined(CONF_ATOMIC)
00114 #error "Critical sections need atomic counters"
00115 #endif
00116
00117 #if defined(CONF_RCX_PROTOCOL) && !defined(CONF_LNP)
00118 #error "RCX protocol needs networking."
00119 #endif
00120
00121 #if defined(CONF_LR_HANDLER) && !defined(CONF_RCX_PROTOCOL)
00122 #error "Remote control handler needs remote control protocol."
00123 #endif
00124
00125 #if defined(CONF_RCX_MESSAGE) && !defined(CONF_LNP)
00126 #error "Standard firmware message needs networking."
00127 #endif
00128
00129 #if defined(CONF_LR_HANDLER) && !defined(CONF_TM)
00130 #error "Remote support needs task managment"
00131 #endif
00132
00133 #if defined(CONF_PROGRAM) && (!defined(CONF_TM) || !defined(CONF_LNP) || !defined(CONF_DKEY) || !defined(CONF_ASCII))
00134 #error "Program support needs task management, networking, key debouncing, and ASCII."
00135 #endif
00136
00137 #if defined(CONF_DSENSOR_ROTATION) && !defined(CONF_DSENSOR)
00138 #error "Rotation sensor needs general sensor code."
00139 #endif
00140
00141 #if defined(CONF_DSENSOR_VELOCITY) && !defined(CONF_DSENSOR_ROTATION)
00142 #error "Velocity sensor needs rotation sensor code."
00143 #endif
00144
00146 #define __TEXT_HI__ __attribute__ ((__section__ (".text.hi")))
00147
00148 #endif // __config_h__