Files
mkrtos-real/mkrtos_user/lib/letter-shell/demo/mkrtos/shell_test.c

59 lines
1.4 KiB
C
Raw Normal View History

#include "shell.h"
#include "cons_cli.h"
#include "u_sig.h"
#include "cons_cli.h"
#include <stdlib.h>
#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <stddef.h>
#include <string.h>
#include <sys/time.h>
#include <pthread.h>
#include <errno.h>
2023-12-23 16:17:15 +08:00
#ifdef CONFIG_USING_SIG
static int sig_cn;
static int shell_sig_call_back(pid_t pid, umword_t sig_val)
{
/*TODO:这个消息是init发送的这里不能给init发送消息否导致卡死除非init增加多进程支持*/
cons_write_str("test sig.\n");
sig_cn++;
return 0;
}
int shell_test_sig(int argc, char *argv[])
{
int ret;
if (argc < 2)
{
return -1;
}
pm_sig_func_set(shell_sig_call_back);
pid_t pid = atoi(argv[1]);
ret = pm_sig_watch(pid, 0 /*TODO:现在只有kill */);
printf("sig_cn:%d\n", sig_cn);
return ret;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), test_sig, shell_test_sig, shell_test_sig command);
2025-03-10 22:45:24 +08:00
int shell_float_test(int argc, char *argv[])
{
float a = 1.1, b = 1.2;
printf("%f\n", a + b);
return 0;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), ftest, shell_float_test, ftest command);
int shell_div0(int argc, char *argv[])
{
int a=1,b=0;
*((char *)(0)) = 0;
printf("%d\n", a/b);
return 0;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), div0, shell_div0, div0 command);
2023-12-23 16:17:15 +08:00
#endif