コード例 #1
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void help_command(int n,char *argv[]){
	int i;
	fio_printf(1, "\r\n");
	for(i = 0;i < sizeof(cl)/sizeof(cl[0]) - 1; ++i){
		fio_printf(1, "%s - %s\r\n", cl[i].name, cl[i].desc);
	}
}
コード例 #2
0
ファイル: main.c プロジェクト: CarterTsai/freertos-plus
void command_prompt(void *pvParameters)
{
	char buf[128];
	char *argv[20];
        char hint[] = USER_NAME "@" USER_NAME "-STM32:~$ ";

	fio_printf(1, "\rWelcome to FreeRTOS Shell\r\n");
	while(1){
		fio_printf(1, "%s", hint);
		fio_read(0, buf, 127);
	
		int n=parse_command(buf, argv);

		/* will return pointer to the command function */
		//if (*argv[0]=='\0')
		cmdfunc *fptr=do_command(argv[0]);
		if(fptr!=NULL)
			fptr(n, argv);
		else if (*argv[0]!='\0')
			fio_printf(2, "\r\n\"%s\" command not found.\r\n", argv[0]);
		else
			fio_printf(1, "\r\n");
	}

}
コード例 #3
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void test_command(int n, char *argv[]) {
    int handle;
    int error;

    fio_printf(1, "\r\n");
    
    handle = host_action(SYS_SYSTEM, "mkdir -p output");
    handle = host_action(SYS_SYSTEM, "touch output/syslog");

    handle = host_action(SYS_OPEN, "output/syslog", 8);
    if(handle == -1) {
        fio_printf(1, "Open file error!\n\r");
        return;
    }

    char *buffer = "Test host_write function which can write data to output/syslog\n";
    error = host_action(SYS_WRITE, handle, (void *)buffer, strlen(buffer));
    if(error != 0) {
        fio_printf(1, "Write file error! Remain %d bytes didn't write in the file.\n\r", error);
        host_action(SYS_CLOSE, handle);
        return;
    }

    host_action(SYS_CLOSE, handle);
}
コード例 #4
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void ps_command(int n, char *argv[]){
	signed char buf[1024];
	vTaskList(buf);
        fio_printf(1, "\n\rName          State   Priority  Stack  Num\n\r");
        fio_printf(1, "*******************************************\n\r");
	fio_printf(1, "%s\r\n", buf + 2);	
}
コード例 #5
0
ファイル: shell.c プロジェクト: marktwtn/freertos
void ps_command(int n, char *argv[]){
	int rnt;
	signed char buf[1024];
	vTaskList(buf);
	fio_printf(1, "\r\n%s\r\n", buf);
	rnt = host_savefile(argv[1], buf);
	fio_printf(1, "\r\nfinish with exit code %d.\r\n", rnt);	
}
コード例 #6
0
ファイル: shell.c プロジェクト: hankGo/freertos-plus
void cat_command(int n, char *argv[]){
	if(n==1){
		fio_printf(2, "\r\nUsage: cat <filename>\r\n");
		return;
	}

	if(!filedump(argv[1]))
		fio_printf(2, "\r\n%s no such file or directory.\r\n", argv[1]);
}
コード例 #7
0
ファイル: shell.c プロジェクト: marktwtn/freertos
void host_command(int n, char *argv[]){
	if(n>1){
		int len=strlen(argv[1]), rnt;
		if(argv[1][0]=='\''){
			argv[1][len-1]='\0';
			rnt=host_system(argv[1]+1);
		}else
			rnt=host_system(argv[1]);
		fio_printf(1, "\r\nfinish with exit code %d.\r\n", rnt);
	}else
		fio_printf(2, "\r\nUsage: host 'command'\r\n");
}
コード例 #8
0
ファイル: shell.c プロジェクト: hankGo/freertos-plus
void man_command(int n, char *argv[]){
	if(n==1){
		fio_printf(2, "\r\nUsage: man <command>\r\n");
		return;
	}

	char buf[128]="/romfs/manual/";
	strcat(buf, argv[1]);

	if(!filedump(buf))
		fio_printf(2, "\r\nManual not available.\r\n");
}
コード例 #9
0
ファイル: shell.c プロジェクト: chunikuo/freertos-plus
void cat_command(int n, char *argv[]){
	if(n==1){
		fio_printf(2, "\r\nUsage: cat <filename>\r\n");
		return;
	}

	// combine romfs path with filename
	char buf[128] = "/romfs/";
	strcat(buf, argv[1]);

	if(!filedump(buf))
		fio_printf(2, "\r\n%s no such file or directory.\r\n", argv[1]);
}
コード例 #10
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void cat_command(int n, char *argv[]){
	if(n==1){
		fio_printf(2, "\r\nUsage: cat <filename>\r\n");
		return;
	}

    int dump_status = filedump(argv[1]);
	if(dump_status == -1){
		fio_printf(2, "\r\n%s : no such file or directory.\r\n", argv[1]);
    }else if(dump_status == -2){
		fio_printf(2, "\r\nFile system not registered.\r\n", argv[1]);
    }
}
コード例 #11
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void ls_command(int n, char *argv[]){
    fio_printf(1,"\r\n"); 
    int dir;
    if(n == 0){
        dir = fs_opendir("");
    }else if(n == 1){
        dir = fs_opendir(argv[1]);
        //if(dir == )
    }else{
        fio_printf(1, "Too many argument!\r\n");
        return;
    }
(void)dir;   // Use dir
}
コード例 #12
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void host_command(int n, char *argv[]){
    int i, len = 0, rnt;
    char command[128] = {0};

    if(n>1){
        for(i = 1; i < n; i++) {
            memcpy(&command[len], argv[i], strlen(argv[i]));
            len += (strlen(argv[i]) + 1);
            command[len - 1] = ' ';
        }
        command[len - 1] = '\0';
        rnt=host_action(SYS_SYSTEM, command);
        fio_printf(1, "\r\nfinish with exit code %d.\r\n", rnt);
    } 
    else {
        fio_printf(2, "\r\nUsage: host 'command'\r\n");
    }
}
コード例 #13
0
ファイル: main.c プロジェクト: tkloong/freertos
void command_prompt(void *pvParameters)
{
	char buf[128];
	char *argv[20];
	fio_printf(1, "\rWelcome to FreeRTOS Shell\r\n");
	while(1){
		fio_printf(1, "\r>>");
		fio_read(0, buf, 127);
	
		int n=parse_command(buf, argv);

		/* will return pointer to the command function */
		cmdfunc *fptr=do_command(argv[0]);
		if(fptr!=NULL)
			fptr(n, argv);
		else
			fio_printf(2, "\r\n\"%s\" command not found.\r\n", argv[0]);
	}
}
コード例 #14
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
int filedump(const char *filename){
	char buf[128];

	int fd=fs_open(filename, 0, O_RDONLY);

	if( fd == -2 || fd == -1)
		return fd;

	fio_printf(1, "\r\n");

	int count;
	while((count=fio_read(fd, buf, sizeof(buf)))>0){
		fio_write(1, buf, count);
    }
	
    fio_printf(1, "\r");

	fio_close(fd);
	return 1;
}
コード例 #15
0
ファイル: main.c プロジェクト: CarterTsai/freertos-plus
void system_logger(void *pvParameters)
{
    signed char buf[128];
    char output[512] = {0};
    char *tag = "\nName          State   Priority  Stack  Num\n*******************************************\n";
    int handle, error;
    const portTickType xDelay = 100000 / 100;

    handle = host_action(SYS_OPEN, "output/syslog", 4);
    if(handle == -1) {
        fio_printf(1, "Open file error!\n");
        return;
    }

    while(1) {
        memcpy(output, tag, strlen(tag));
        error = host_action(SYS_WRITE, handle, (void *)output, strlen(output));
        if(error != 0) {
            fio_printf(1, "Write file error! Remain %d bytes didn't write in the file.\n\r", error);
            host_action(SYS_CLOSE, handle);
            return;
        }
        vTaskList(buf);

        memcpy(output, (char *)(buf + 2), strlen((char *)buf) - 2);

        error = host_action(SYS_WRITE, handle, (void *)buf, strlen((char *)buf));
        if(error != 0) {
            fio_printf(1, "Write file error! Remain %d bytes didn't write in the file.\n\r", error);
            host_action(SYS_CLOSE, handle);
            return;
        }

        vTaskDelay(xDelay);
    }
    
    host_action(SYS_CLOSE, handle);
}
コード例 #16
0
ファイル: shell.c プロジェクト: CWHsiao/freertos-plus
int filedump(const char *filename){
	char buf[128];

	int fd=fs_open(filename, 0, O_RDONLY);

	if(fd==OPENFAIL)
		return 0;

	fio_printf(1, "\r\n");

	int count;
	while((count=fio_read(fd, buf, sizeof(buf)))>0){
		if(count < sizeof(buf)){
			buf[count] = '\r';
			count++;
		}
		fio_write(1, buf, count);
	}
	fio_close(fd);
	return 1;
}
コード例 #17
0
ファイル: shell.c プロジェクト: CobooGuo/freertos-basic
void _command(int n, char *argv[]){
    (void)n; (void)argv;
    fio_printf(1, "\r\n");
}
コード例 #18
0
ファイル: shell.c プロジェクト: chunikuo/freertos-plus
void ls_command(int n, char *argv[]){

	fio_printf(1, "\r\n");
	fs_list("/romfs/");

}