#include "myprint.h"
#include "stdio.h"
#include "lib.h"
#include "led.h"
#include "beep.h"
#include "key.h"
#include "uart.h"
#include "command.h"
#include "shell.h"
void get_arg(char * const cmdline,int *argc,char **argv)
{
#define STATE_WHITESPACE 0
#define STATE_WORD 1
char *c;
int state = STATE_WHITESPACE;
int i;
*argc = 0;
if(strlen(cmdline) == 0)
return ;
c = cmdline;
i = 0;
while(*c != '\0')
{
if(*c == '\t') //把制表符全换成空格
*c = ' ';
c++;
}
c = cmdline;
while(*c != '\0') //这种方法太帅了,非常巧妙的把命令行拆分了
{
if(state == STATE_WHITESPACE)
{
if(*c != ' ')
{
argv[i] = c;
i++;
state = STATE_WORD;
}
}
else
{
if(*c == ' ')
{
*c = '\0';
state = STATE_WHITESPACE;
}
}
c++;
}
*argc = i; //参数的个数也得到了
#undef STATE_WHITESPACE
#undef STATE_WORD
}
void my_shell(void)
{
char command_buf[64];
int argc;
char *argv[8];
myprint("\rWelcome to my shell v%s\n\r","1.0");
while(1)
{
myprint("my-shell > ");
stdio_gets(command_buf);
get_arg(command_buf,&argc,argv);
/*
for(;i < argc;i++)
myprint("argv[%d]:%s\n\r",i,argv[i]);
*/
if(strcmp(argv[0],"help") == 0)
help();
else if(strcmp(argv[0],"blink") == 0)
led_test(argc,argv);
else if(strcmp(argv[0],"beep") == 0)
beep_test(argc,argv);
else if(strcmp(argv[0],"uart") == 0)
uart_test();
else if(strcmp(argv[0],"stdio") == 0)
stdio_test();
else if(strcmp(argv[0],"print") == 0)
print_test();
else if(strcmp(argv[0],"shell") == 0)
shell_test();
else if(strcmp(argv[0],"dump") == 0)
dump(argc,argv);
else if(strcmp(argv[0],"go") == 0)
go(argc,argv);
else
myprint("bad command!\n\r");
}
}
void shell_test(void)
{
int j=3;
char command_buf[64];
int argc;
char *argv[8];
int i=0;
while(j--)
{
myprint("shell-test > ");
stdio_gets(command_buf);//等待输入字符串
get_arg(command_buf,&argc,argv);
for(i=0;i < argc;i++)
myprint("argv[%d]:%s\n\r",i,argv[i]);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
ARM测试demo集合
共55个文件
o:24个
c:11个
h:9个
需积分: 34 17 下载量 5 浏览量
2015-08-17
22:45:39
上传
评论
收藏 126KB RAR 举报
温馨提示
一个小的测试Demo,包含了很多的测试例子,包括常用的io测试、UART测试、Timer定时器测试、PWM测试等,很适合ARM的初学者学习
资源推荐
资源详情
资源评论
收起资源包目录
demo.rar (55个子文件)
demo加有中断
demo.mcp 191KB
include
stdio.h 86B
shell.h 103B
lib.h 108B
key.h 62B
led.h 107B
uart.h 89B
command.h 61B
myprint.h 53B
beep.h 71B
start.S 4KB
src
uart.c.bak 1KB
main.c 315B
stdio.c 1KB
shell.c 2KB
lib.c.bak 897B
handle_irq.c 1KB
led.c 1KB
key.c 954B
myprint.c 2KB
beep.c 545B
uart.c 1KB
lib.c 997B
command.c 1KB
demo_Data
Release
TargetDataWindows.tdt 52KB
CWSettingsWindows.stg 3KB
Debug
demo.axf 43KB
ObjectCode
lib.o 6KB
handle_irq.o 5KB
uart.o 6KB
beep.o 5KB
stdio.o 8KB
myprint.o 8KB
led.o 7KB
key.o 6KB
main.o 5KB
start.o 3KB
shell.o 9KB
command.o 8KB
1111 6KB
TargetDataWindows.tdt 64KB
DebugRel
demo.axf 41KB
ObjectCode
lib.o 9KB
handle_irq.o 6KB
uart.o 9KB
beep.o 7KB
stdio.o 10KB
myprint.o 9KB
led.o 9KB
key.o 8KB
main.o 5KB
start.o 2KB
shell.o 9KB
command.o 9KB
TargetDataWindows.tdt 64KB
共 55 条
- 1
资源评论
HaoLu_0805
- 粉丝: 12
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功