📄 syscst.c
字号:
/*******************************************************************
*******************************************************************/
#include "system.h"
#ifdef INTEL_X86_CPU
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <stdarg.h>
#include <string.h>
#include <conio.h>
#endif
#include "utility.h"
#ifdef INTEL_X86_CPU
#include "stx.h"
#include "dev.h"
#include "timer.h"
#endif
#include "dbstru.h"
#include "hardware.h"
#include "SysCst.h"
#include "appmain.h"
#include "dbs\dbs.h"
#include "dsp\dsp.h"
#include "net\netsrv.h"
/************************ Debugging functiion ******************************/
#if defined(INTEL_X86_CPU) && defined(DEBUG)
void SysLog(void); /* Record System Log when system exits. */
BYTE mypage = 4;
BYTE bcycle = 0;
#endif
/*************************** Variable Definition ***************************/
#ifdef INTEL_X86_CPU
HTASK crtTask; /* Task Handle */
HBOX tskBox = -1; /* Mail Box Handle */
HBOX grpBox = -1;
UINT synTick = 0; /* System cycle timer */
#endif
/*************************** function prototype ****************************/
#ifdef INTEL_X86_CPU
TASK crtms(VOID);
void CLS(void);
#ifdef HARDWARETEST
void TestLed(void); /* 测试软件控制的LED */
void TestSRAM(void); /* 让Dsp测试其片外SRAM */
#endif
#endif
/************************** Function Definition ****************************/
#ifdef INTEL_X86_CPU
/* Task with no code in body, only for system start */
TASK crtms(VOID) { }
/* clear screen for debugging */
void CLS(void)
{
_asm{
mov ax,3
int 10h
}
}
/* Create a task and start it */
RESULT CreateTask(void)
{
RESULT error = STX_OK;
error += mcsyscre(crtms, MAKENAME(K, B), &crtTask);
error += mcsysstr(crtTask);
return(error);
} /* End of CreateTask */
#endif
/* System Custom Initialization */
void SysCstInit(void)
{
#if defined(INTEL_X86_CPU) && defined(DEBUG)
onexit((onexit_t) SysLog);
#endif
#if defined(INTEL_X86_CPU) && defined(HARDWARETEST)
TestLed(); /* 测试软件控制的LED */
TestSRAM(); /* 让Dsp测试其片外SRAM */
#endif
#ifdef ARM_XSCALE_CPU
ClearLed();
#endif
/* Data Configuration Init */
if (dbsFileLoad())
{
failureExit();
}
if (dbsLoad())
{
failureExit();
}
if (DPInit())
{
failureExit();
}
#ifdef INTEL_X86_CPU
onexit((onexit_t) DPClose);
#endif
/* Ethernet Chips Init */
if (EthernetInit())
{
failureExit();
}
if (NetAliasInit(&CurNet))
{
failureExit();
}
/* System Modules Init */
/* Set Watchdog Timer Constant */
#ifndef DEBUG
setWDG(WATCHDOGTIME);
#endif
/* control RUN & ERROR LEDs */
darkenLed(POWER_LED);
lightenLed(RUN_LED);
} /* End of SysCstInit */
#ifdef INTEL_X86_CPU
/* Custom real-time timer interrupt */
INTRFUNC mcusrrti( void )
{
if (++synTick >= SYNCYCLE)
{
synTick = 0;
}
bwait++;
bwaitack++;
bcycle++;
} /* End of mcusrrti */
#endif
void Run(void)
{
/* clear old datas in buffer */
ClearBuffer(CurNet.COMM1);
ClearBuffer(CurNet.COMM2);
ClearBuffer(CurNet.ICUIn);
ClearBuffer(CurNet.ICUOut);
/* Enable watchdog timer */
#ifndef DEBUG
enableWDG();
#endif
SetDPState(DPACTIVE);
PollIO(IO_ALL);
while (1 == 1)
{
#if defined(INTEL_X86_CPU) && defined(DEBUG)
bwait = 0;
bwaitack = 0;
bcycle = 0;
wprintf(0, 0, "%s %d", VERSION_STRING, synTick);
if (kbdcode == KBD_aX)
{
failureExit();
}
else if (kbdcode == KBD_aO)
{
CLS();
mypage = 1;
}
else if (kbdcode == KBD_aI)
{
CLS();
mypage = 2;
}
else if (kbdcode == KBD_aN)
{
CLS();
mypage = 3;
}
else if (kbdcode == KBD_aK)
{
CLS();
mypage = 4;
}
else if (kbdcode == KBD_aT)
{
CLS();
mypage = 5;
}
else if (kbdcode == KBD_aL)
{
CLS();
mypage = 6;
}
else if (kbdcode == KBD_aV)
{
CLS();
mypage = 7;
}
else if (kbdcode == KBD_PGDN)
{
CLS();
mypage = (BYTE)((mypage + 1) % 8);
}
#endif
Appmain();
// ExchangeData();
// PollIO(IO_ALL);
/* Clear Watchdog Timer */
#ifndef DEBUG
clearWDG();
#endif
#if defined(INTEL_X86_CPU) && defined(DEBUG)
wprintf(0, 50, "%d ", bcycle);
#endif
} /* end of while */
} /* End of Run */
#if defined(INTEL_X86_CPU) && defined(DEBUG)
/* Record System Log when system exits. */
void SysLog(void)
{
FILE *flog;
flog = fopen("log.txt", "w+t");
if (flog != NULL)
{
fprintf(flog, "%s\n", VERSION_STRING);
fclose(flog);
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -