📄 monitor.c
字号:
#include <ucos_ii.h>
#include <stdio.h>
#include <string.h>
#include "drv_init.h"
#include "com_init.h"
#include "tasks.h"
#define ARGS_MAX_SIZE 10
char cmdbuf[84];
char *argv[ARGS_MAX_SIZE];
char* xargv[ARGS_MAX_SIZE + 1];
OS_STK App_TaskMonitorStk[APP_TASK_MONITOR_STK_SIZE];
void AllAppStart(void) {
struct user_task *ptask = &user_tasks[1]; //跳过自身
for (; ptask->TaskName != NULL; ptask++) {
if (ptask->autorun) {
Run_Task(ptask);
}
}
return;
}
int task_exec(int argc, char* argv[]) {
char buf[] = "run";
if (argc == 0) {
return 0;
}
xargv[0] = buf;
memcpy(&xargv[1], &argv[0], sizeof(argv[0]) * argc);
xargv[argc + 1] = NULL;
#if 0
{
int i;
printf("\r\nargc = %d", argc);
for (i = 0; i < argc; i++) {
printf(" %s", argv[i]);
}
}
#endif
return command_run(argc + 1, xargv);
}
void App_TaskMonitor(void *parg)
{
struct cmd *pcmd;
char cmdbf[84];
drv_all_init();
component_init();
// 在打开优先级更高的任务前
// 所有的设备及组件必须初使化
AllAppStart();
for (;;) {
int argc;
printf("\r\n uC/OS-II%% ");
memset(cmdbf, 0, 80);
gets(cmdbf);
strcpy(cmdbuf, cmdbf);
// printf("\r\n %s(%d)", cmdbuf, strlen(cmdbuf));
// debug_buf("cmdbuf", cmdbuf, strlen(cmdbuf));
memset(argv, '\0', sizeof argv);
argc = make_argv(cmdbuf, 0x80, argv, ARGS_MAX_SIZE);
// printf("\r\n %d %s", argc, argv[1]);
pcmd = cmds;
while (pcmd->cmdName != NULL) {
if (!strcmp(argv[0], pcmd->cmdName)) {
pcmd->run(argc, argv);
break;
}
pcmd++;
}
if (1
&& (pcmd->cmdName == NULL)
&& (argc)
) {
task_exec(argc, argv);
// printf("\r\n Can't find command : %s\r\n", cmdbuf);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -