📄 main.c
字号:
{
if (show[j] == '\n')
{
break;
}
}
show[j + 1] = 0;
PrintString("3: ");
PrintString(show + 1);
FileName[0][8] = 'z';
FileName[0][9] = 'l';
FileName[0][10] = 'g';
FileName[0][11] = '_';
FileName[0][12] = 'b';
FileName[0][13] = 'o';
FileName[0][14] = 'o';
FileName[0][15] = 't';
FileName[0][16] = '.';
FileName[0][17] = 'i';
FileName[0][18] = 'n';
FileName[0][19] = 'i';
i++;
OSFileClose(Handle);
}
index = 0;
for (; i < 7; i++)
{
index = FindFile("a:\\boot", FileName[i] + 8, index);
if (index < 0)
{
break;
}
if (FileName[i][8] == 'Z')
if (FileName[i][9] == 'L')
if (FileName[i][10] == 'G')
if (FileName[i][11] == '_')
if (FileName[i][12] == 'B')
if (FileName[i][13] == 'O')
if (FileName[i][14] == 'O')
if (FileName[i][15] == 'T')
if (FileName[i][16] == '.')
if (FileName[i][17] == 'I')
if (FileName[i][18] == 'N')
if (FileName[i][19] == 'I')
{
i--;
continue;
}
Handle = OSFileOpen(FileName[i], "R");
if (Handle != Not_Open_FILE)
{
OSFileRead(show, 80, Handle);
for (j = 0; j < 78; j++)
{
if (show[j] == '\n')
{
break;
}
}
show[j] = '\n';
show[j + 1] = 0;
SendChar(i + 3 + '0');
SendChar(':');
SendChar(' ');
PrintString(show + 1);
OSFileClose(Handle);
}
else
{
i--;
}
}
PrintString("\n\n\nF: Format Disk \n\n\n");
PrintString(" default choise is 3\n");
PrintString(" Please choise.... default choise delay ");
i = 9;
do
{
if (GetCh(&Ch) == TRUE)
{
PrintString("\b \n");
SendChar(Ch);
break;
}
SendChar('\b');
SendChar(i + '0');
OSTimeDly(OS_TICKS_PER_SEC);
} while (--i > 0);
if (i <= 0 || Ch == 0x0d)
{
Ch = '3';
}
switch(Ch)
{
case '1':
PrintString("\nStart ZLG/FTP-S (user ip)...");
return (1);
break;
case '2':
PrintString("\nStart ZLG/FTP-S (default ip)...");
return (0);
break;
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
PrintString("\nStart User's Program...");
Boot(FileName[Ch - '3']);
break;
case 'f':
case 'F':
PrintString("\n Warning: Disk' data will lost!!\n Are you ontinue?('y' or 'n')");
while (GetCh(&Ch) == FALSE)
{
}
if (Ch == 'y' || Ch == 'Y' )
{
PrintString("\n start format...");
MyFormat();
}
break;
default:
PrintString("\nDon't Find this Command !\n");
OSTimeDly(OS_TICKS_PER_SEC);
OSTimeDly(OS_TICKS_PER_SEC);
OSTimeDly(OS_TICKS_PER_SEC);
break;
}
}
return 0;
}
/*********************************************************************************************************
** Task0 任务0
********************************************************************************************************/
extern uint8 tcpipinit (void);
FFSDisk FFSDiskInfo[1];
uint8 FFSbuf[512];
const K9fXX08Hardware ChipInfo[1] =
{
{
K9F28_CLE,
K9F28_ALE,
K9F28_DATA,
FFSbuf,
512,
16,
32,
1024,
K9fxx08EmptyFunction, K9fxx08EmptyFunction
}
};
const FlashDriver FlashDriverInfo[1] =
{
{
512,
32,
1024 * 32,
1024,
FFSbuf,
(void *)ChipInfo,
(uint8 (*)(void *Index, void *Buf, uint32 Addr)) K9fxx08SectorRead,
(uint8 (*)(void *Index, void *Buf, uint32 Addr)) K9fxx08SectCRead,
(uint8 (*)(void *Index, void *Buf, uint32 Addr)) K9fxx08SectorProgram,
(uint8 (*)(void *Index, void *Buf, uint32 Addr)) K9fxx08SectorCProgram,
(uint8 (*)(void *Index, uint32 Addr)) K9fxx08BlockErase,
//(uint8 (*)(void *Index, uint32 SourAddr, uint32 DestAddr)) K9fxx08SecCopy,
(uint8 (*)(void *Index, uint32 BlockIndex)) K9fxx08BlockCheck,
(uint8 (*)(void *Index, void *Buf, uint32 Addr)) K9fxx08SectorCheck,
(uint8 (*)(void *Index, void *Buf, uint32 Addr)) K9fxx08SectCCheck
}
};
void Task0(void *pdata)
{
HANDLE Handle;
char Buf[256];
unsigned int temp[6];
uint32 f;
char Ch;
extern unsigned int Readline(char *Buf, HANDLE Handle);
extern uint8 My_Ip_1ID[4];
extern uint8 My_Gateway_1ID[4];
extern uint8 MY_IP_MARK_1ID[4];
extern uint8 MY_MAC_1ID[6];
pdata = pdata;
(*((volatile unsigned int *) 0x80f00000)) = 0;
TargetInit();
OSTimeDly(20);
FFSDiskInfo[0].Drive = &(FlashDriverInfo[0]);
OSAddFileDriver(ZLG_FFS, FFSDiskInfo); /*增加ATA设备0*/
f = boot_sel();
if (f != 0)
{
Handle = OSFileOpen("a:\\zlg_ftp.ini", "r");
if (Handle != Not_Open_FILE)
{
Readline(Buf, Handle);
sscanf(Buf, "IP=%d.%d.%d.%d", temp, temp + 1, temp + 2, temp +3);
My_Ip_1ID[0] = temp[0];
My_Ip_1ID[1] = temp[1];
My_Ip_1ID[2] = temp[2];
My_Ip_1ID[3] = temp[3];
Readline(Buf, Handle);
sscanf(Buf, "GATEWAY=%d.%d.%d.%d", temp, temp + 1, temp + 2, temp +3);
My_Gateway_1ID[0] = temp[0];
My_Gateway_1ID[1] = temp[1];
My_Gateway_1ID[2] = temp[2];
My_Gateway_1ID[3] = temp[3];
Readline(Buf, Handle);
sscanf(Buf, "IPMARK=%d.%d.%d.%d", temp, temp + 1, temp + 2, temp +3);
MY_IP_MARK_1ID[0] = temp[0];
MY_IP_MARK_1ID[1] = temp[1];
MY_IP_MARK_1ID[2] = temp[2];
MY_IP_MARK_1ID[3] = temp[3];
Readline(Buf, Handle);
sscanf(Buf, "MACID=0X%X,0X%X,0X%X,0X%X,0X%X,0X%X", temp, temp + 1, temp + 2, temp + 3, temp + 4, temp + 5);
MY_MAC_1ID[0] = temp[0];
MY_MAC_1ID[1] = temp[1];
MY_MAC_1ID[2] = temp[2];
MY_MAC_1ID[3] = temp[3];
MY_MAC_1ID[4] = temp[4];
MY_MAC_1ID[5] = temp[5];
}
OSFileClose(Handle);
}
ZlgipInitial();
InitFtp();
PrintString("\n\n\n Please press \"R\" to reset... \n\n\n");
while (1)
{
if (GetCh(&Ch) == TRUE)
if (Ch == 'R' || Ch == 'r')
{
ChangeToSYSMode();
Reset();
}
}
OSTaskDel(OS_PRIO_SELF);
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -