优化shellIM空间,命令字长度最大12字节
This commit is contained in:
parent
f1401c2ae6
commit
8dfcdfebc9
@ -167,7 +167,7 @@ int osp_mem_init(void)
|
||||
debug_write(OSP_DEBUG_POT(g_ape_id, 9), g_st_osp_mem_im_head.root->len);
|
||||
debug_write(OSP_DEBUG_POT(g_ape_id, 10), g_st_osp_mem_im_head.root);
|
||||
|
||||
spu_insert_cmd_ext("im_ape_id", (OSP_FUNCPTR)osp_show_im_mem_by_coreid, "osp im info by id", 1);
|
||||
spu_insert_cmd_ext("im_ape", (OSP_FUNCPTR)osp_show_im_mem_by_coreid, "osp im info by id", 1);
|
||||
|
||||
UCP_PRINT_LOG("g_osp_mem_im_head OK\r\n");
|
||||
return 0;
|
||||
|
@ -23,7 +23,7 @@ typedef unsigned long (*OSP_FUNCPTR)();
|
||||
|
||||
typedef struct tagOspCmdRtn
|
||||
{
|
||||
char cmd[32];
|
||||
char cmd[12];
|
||||
OSP_FUNCPTR wrapper;
|
||||
OSP_FUNCPTR routine;
|
||||
/*char descption[128];*/
|
||||
@ -32,7 +32,7 @@ typedef struct tagOspCmdRtn
|
||||
|
||||
typedef struct tagOspCmdExt
|
||||
{
|
||||
char cmd[32];
|
||||
char cmd[12];
|
||||
uint32_t argnum;
|
||||
uint32_t num;
|
||||
}OSP_CMD_EXT;
|
||||
|
@ -9,7 +9,6 @@
|
||||
#include "phy_para.h"
|
||||
|
||||
OSP_CMD_RTN gastCmdRtnTblExt[MAX_EXT_CMD_NUM];
|
||||
OSP_CMD_EXT gastCmdExt[MAX_EXT_CMD_NUM];
|
||||
|
||||
int ospCmdRtnExtNum =0;
|
||||
uint32_t gu32_osp_shell_task_cnt = 0;
|
||||
@ -50,16 +49,15 @@ int spu_isdigit( int ch )
|
||||
|
||||
void spu_insert_cmd_ext(char *name, OSP_FUNCPTR pfunc, char *desc, uint32_t argnum)
|
||||
{
|
||||
uint32_t num = 0;
|
||||
uint32_t i = 0;
|
||||
OSP_CMD_RTN *tlb = NULL;
|
||||
|
||||
//int32_t core_id = get_core_id();
|
||||
//debug_write(DBG_DDR_COMMON_IDX(core_id, 130), argnum);/*0xb7e00208 参数个数地址*/
|
||||
uint8_t u8str_len = 0;
|
||||
uint32_t num = 0;
|
||||
uint32_t i = 0;
|
||||
OSP_CMD_RTN *tlb = NULL;
|
||||
OSP_CMD_EXT stCmdExt;
|
||||
|
||||
if ((name == NULL) || pfunc == NULL)
|
||||
{
|
||||
UCP_PRINT_EMPTY("osp_insert_cmd_ext name:%p pfunc:%p\r\n", name, pfunc);
|
||||
UCP_PRINT_ERROR("osp_insert_cmd_ext name:%p pfunc:%p\r\n", name, pfunc);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -67,7 +65,7 @@ void spu_insert_cmd_ext(char *name, OSP_FUNCPTR pfunc, char *desc, uint32_t argn
|
||||
{
|
||||
if (strcmp(gastCmdRtnTblExt[i].cmd, name) == 0)
|
||||
{
|
||||
UCP_PRINT_EMPTY("osp_insert_cmd_ext i:%u cmd:%s has exist name:%s\r\n", i, gastCmdRtnTblExt[i].cmd, name);
|
||||
UCP_PRINT_ERROR("osp_insert_cmd_ext i:%u cmd:%s has exist name:%s\r\n", i, gastCmdRtnTblExt[i].cmd, name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -76,29 +74,31 @@ void spu_insert_cmd_ext(char *name, OSP_FUNCPTR pfunc, char *desc, uint32_t argn
|
||||
num = SHELL_CMD_NUM_EXT;
|
||||
if(num >= MAX_EXT_CMD_NUM)
|
||||
{
|
||||
UCP_PRINT_EMPTY("osp_insert_cmd_ext num:%u beyond MAX_EXT_CMD_NUM:%d\r\n", num, MAX_EXT_CMD_NUM);
|
||||
UCP_PRINT_ERROR("osp_insert_cmd_ext num:%u beyond MAX_EXT_CMD_NUM:%d\r\n", num, MAX_EXT_CMD_NUM);
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy_ucp(tlb[num].cmd, name, strlen(name) + 1);
|
||||
/*memcpy_ucp(tlb[num].descption, desc, strlen(desc) + 1);*/
|
||||
tlb[num].wrapper = (OSP_FUNCPTR)spu_shell_wrapper;
|
||||
//memcpy_ucp(tlb[num].wrapper, (OSP_FUNCPTR)spu_shell_wrapper, sizeof(OSP_FUNCPTR));
|
||||
//memcpy_ucp(tlb[num].routine, pfunc, sizeof(OSP_FUNCPTR));
|
||||
u8str_len = strlen(name);
|
||||
if(u8str_len > 12)
|
||||
{
|
||||
UCP_PRINT_ERROR("osp_insert_cmd_ext u8str_len:%u beyond 12\r\n", u8str_len);
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy_ucp(tlb[num].cmd, name, u8str_len + 1);
|
||||
tlb[num].wrapper = (OSP_FUNCPTR)spu_shell_wrapper;
|
||||
tlb[num].routine = pfunc;
|
||||
tlb[num].argnum = argnum;
|
||||
|
||||
memcpy_ucp(gastCmdExt[num].cmd, name, strlen(name) + 1);
|
||||
gastCmdExt[num].argnum = argnum;
|
||||
memcpy_ucp(stCmdExt.cmd, name, u8str_len + 1);
|
||||
stCmdExt.argnum = argnum;
|
||||
|
||||
SHELL_CMD_NUM_EXT++;
|
||||
gastCmdExt[num].num = SHELL_CMD_NUM_EXT;
|
||||
stCmdExt.num = SHELL_CMD_NUM_EXT;
|
||||
|
||||
UCP_PRINT_EMPTY("osp_insert_cmd_ext name:%s num:%u argnum:%u\r\n", gastCmdExt[num].cmd, gastCmdExt[num].num, tlb[num].argnum);
|
||||
UCP_PRINT_LOG("osp_insert_cmd_ext name:%s num:%u argnum:%u\r\n", stCmdExt.cmd, stCmdExt.num, stCmdExt.argnum);
|
||||
|
||||
//debug_write(DBG_DDR_COMMON_IDX(core_id, 131), SHELL_CMD_NUM_EXT);
|
||||
|
||||
spu_shellinfo_to_arm((char *)&gastCmdExt[num], sizeof(OSP_CMD_EXT), UCP4008_OSP_SHELL_REG);
|
||||
spu_shellinfo_to_arm((char *)&stCmdExt, sizeof(OSP_CMD_EXT), UCP4008_OSP_SHELL_REG);
|
||||
|
||||
return;
|
||||
|
||||
@ -107,11 +107,16 @@ void spu_insert_cmd_ext(char *name, OSP_FUNCPTR pfunc, char *desc, uint32_t argn
|
||||
void spu_reget_cmd()
|
||||
{
|
||||
uint32_t i = 0;
|
||||
OSP_CMD_EXT stCmdExt;
|
||||
|
||||
for (i = 0; i < SHELL_CMD_NUM_EXT; i++)
|
||||
{
|
||||
UCP_PRINT_LOG("spu_reget_cmd i:%u cmd:%s\r\n", i, gastCmdRtnTblExt[i].cmd);
|
||||
spu_shellinfo_to_arm((char *)&gastCmdExt[i], sizeof(OSP_CMD_EXT), UCP4008_OSP_SHELL_REG);
|
||||
memcpy_ucp(stCmdExt.cmd, gastCmdRtnTblExt[i].cmd, strlen(gastCmdRtnTblExt[i].cmd) + 1);
|
||||
stCmdExt.argnum = gastCmdRtnTblExt[i].argnum;
|
||||
stCmdExt.num = SHELL_CMD_NUM_EXT;
|
||||
|
||||
spu_shellinfo_to_arm((char *)&stCmdExt, sizeof(OSP_CMD_EXT), UCP4008_OSP_SHELL_REG);
|
||||
}
|
||||
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user