00001
00095 #ifndef _kobanzame_h_
00096 #define _kobanzame_h_
00097
00098
00099 #include "target_def.h"
00100 #include "kzconfig.h"
00101 #include "kernel.h"
00102 #include <stdio.h>
00103 #include "kzstdio.h"
00104 #include "kzdev.h"
00105 #include "kzdsp.h"
00106 #include "kzversion.h"
00107
00108
00109 #define numof(x) sizeof(x)/sizeof(x[0])
00112 typedef enum {
00113 eKzSW0,
00114 eKzSW1,
00115 numof_KzSW
00116 } KzSW_t;
00117
00119 typedef enum {
00120 eKzLED0,
00121 eKzLED1,
00122 numof_KzLED
00123 } KzLED_t;
00124
00125
00132 typedef int (*KzFnCmd_t)( int argc, char *argv[] );
00133
00141 typedef void (*KzSwCbk_t)( KzSW_t nSw , BOOL bPushed );
00142
00150 typedef void (*KzMemsCbk_t)( int x, int y, int z);
00151
00161 typedef void (*KzAudioCbk_t)( int *in, int *out, int nBlocks, int nChannels);
00162
00163
00165 typedef struct {
00166 KzFnCmd_t mfnExe;
00167 const char* msCmd;
00168 const char* msHelp;
00169 } KzCmdRegist_t;
00170
00171 #define KZ_AUDIOCLUSTAR (4)
00173 #if TARGET_TOOL == TOOL_VS2008
00174 #pragma warning ( disable : 4996 )
00175 #endif
00176
00177
00178 #if TARGET_TOOL == TOOL_VDSP
00179 #define L1DATA_S section("L1_data_s")
00180 #define L1DATA_A section("L1_data_a")
00181 #define L1DATA_B section("L1_data_b")
00182 #define L1CODE section("L1_code")
00183 #define L3DATA section("L3_data")
00184 #define L3CODE section("L3_code")
00186 #elif TARGET_TOOL == TOOL_GCC
00187 #define L1DATA_S __attribute__((__section__(".l1scratch" )))
00188 #define L1DATA_A __attribute__((__section__(".l1data_a" )))
00189 #define L1DATA_B __attribute__((__section__(".l1data_b")))
00190 #define L1CODE __attribute__((__section__(".l1code")))
00191 #define L3DATA __attribute__((__section__(".l3data")))
00192 #define L3CODE __attribute__((__section__(".l3code")))
00194 #elif TARGET_TOOL == TOOL_VS2008
00195 #define L1DATA_S
00196 #define L1DATA_A
00197 #define L1DATA_B
00198 #define L1CODE
00199 #define L3DATA
00200 #define L3CODE
00202 #else
00203 #error "Please define TARGET_TOOL"
00204 #endif
00205
00206
00208 typedef enum {
00209 KZ_OK = 0,
00210 KZ_ERR = -1,
00211 } KZSTATUS_t;
00212
00213
00214 #ifdef __cplusplus
00215 extern "C" {
00216 #endif
00217
00218
00219 extern KZSTATUS_t KzCmdlineStart(void);
00220 extern KZSTATUS_t KzCmdlineExit(void);
00221 extern KZSTATUS_t KzCmdlineAdd( const KzCmdRegist_t *exe );
00222 extern KZSTATUS_t KzCmdlineAddMany( const KzCmdRegist_t *exes );
00223
00224
00225 extern KZSTATUS_t KzAddCmdDeviceDriver(void);
00226 extern KZSTATUS_t KzSwStart(KzSwCbk_t cbk);
00227 extern KZSTATUS_t KzSwStop(void);
00228 extern KZSTATUS_t KzLedOn(KzLED_t nLedNo);
00229 extern KZSTATUS_t KzLedOff(KzLED_t nLedNo);
00230 extern KZSTATUS_t KzLedBlink(KzLED_t nLedNo,int nOnTime, int nOffTime);
00231 extern KZSTATUS_t KzMemsStart(KzMemsCbk_t cbk);
00232 extern KZSTATUS_t KzMemsStop(void);
00233 extern KZSTATUS_t KzAudioStart(KzAudioCbk_t cbk,long lSampleRate, int nBlocks, int nChannels );
00234 extern KZSTATUS_t KzAudioStop(void);
00235
00236
00237 Inline int KzGetVersionMajor(void) { return KZVER_MAJOR; }
00238 Inline int KzGetVersionMinor(void) { return KZVER_MINOR; }
00239 Inline int KzGetBuildIdx(void) { return KZVER_BUILD_IDX; }
00240 Inline const char *KzGetBuildDate(void) { return KZVER_BUILD_DATE;}
00241 Inline const char *KzGetCopyRight(void) { return KZVER_COPYRIGHT;}
00243
00244 extern KZSTATUS_t KzFilesystemStart(void);
00245 extern KZSTATUS_t KzAddCmdFilesystem(void);
00246
00247
00248 extern KZSTATUS_t KzAddCmdStdioTest(void);
00249
00250 #ifdef __cplusplus
00251 }
00252 #endif
00253
00254
00255 #include "kzprivate.h"
00256
00257 #endif
00258