📄 my_string.c
字号:
/*
* uart.c - driver of uart
*
* Author: <zgxgoo@gmail.com>
* Date: 2007-10-31
*/
#include <stdlib.h>
#include <stdio.h>
#include "my_string.h"
#include "my_printf.h"
int addrdn;
typedef struct pp {
int p[3];
int num;
}pt;
pt pr;
char *use_cmd[] = {"help", "dn", "go", "erase", "cp", "testsdram",
"testcpu", "testnorflash", "testrtc", "testbeep", "testled", "testkey", "testin", "testout",
"testadc", "set_channel"};
extern int addr[2];
int my_strcmp(const char *dst , const char *src)
{
while ( *src == *dst && *dst != '\0' )
{
src++;
dst++;
}
return (*src - *dst);
}
int my_strcpy(char *dst, char *src)
{
while (*dst++ = *src++);
return 0;
}
void help_pp()
{
int i = 0;
for(; i<16;i++)
my_printf("%s\n\r",use_cmd[i]);
}
void div_cmd(char *cmd)
{
int i=0;
int j=0;
while (cmd[i] == ' ') i++;
pr.p[j++] = i;
while (cmd[i] != '\0' && j <= 3)
{
if (cmd[i] == ' ')
{
cmd[i++] = '\0';
while (cmd[i] == ' ') i++;
pr.p[j++] = i;
pr.num++;
}
i++;
}
return;
}
int cmd_cmp(char *cmd)
{
int i = 0;
int j = 0;
int result;
pr.num = 0;
div_cmd(cmd);
for(; i<16;i++)
{
result = my_strcmp(use_cmd[i], &cmd[pr.p[0]]);
if(result == 0)
{
for (; j < pr.num; j++)
addr[j] = (int) strtol(&cmd[pr.p[j+1]], (char **) NULL, 16);
return i;
my_printf("i=%d\n\r", i);
}
}
return 16;
}
int mesg_begin(int RoBase, int ZiLimit)
{
int i = 0;
my_printf( "uboot code start at0x%x\n\r", RoBase);
my_printf( "uboot code end at0x%x\n\r", ZiLimit);
my_printf( "Sdram :%d\n\r", 8);
my_printf( "Sdram :%d\n\r", 8);
my_printf("In/Out/Err: serial\n\r");
for (; i<10; i++)
{ int time = 0;
for(; time<0xfffff; time++)
if (((*(volatile unsigned *)(0x10005014)) & 0x01) ==1)
{
return 0;
}
my_printf("Hit any key to stop autoboot: %d%\r", i);
time = 0;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -