概述
根据个人习惯,进行源码结构的修改,目的是熟悉lwip ppp基本例程所需要的文件。调整源码命名方式等,有助于理解程序机构。
keil目录结构
工程源文件目录
移植开源letter shell
letter-shell非常小巧,移植比较简单,只有shell.c/.h、shell_ext.c/.h和shell_cfg.h五个文件。
1. 使能shell默认任务
#define SHELL_USING_TASK 1
2.提供shell所需的串口读写接口
static void shell_port_send(const char _ucByte
)
{
comSendChar(COM1
,_ucByte
);
}
static signed char shell_port_read(char *_pByte
)
{
while( comGetChar(COM1
, (uint8_t
*)_pByte
) == 0)
{
osDelay(10);
}
return 0;
}
3. 创建shell任务,并添加测试代码
void create_shell_task(void)
{
shell
.read
= shell_port_read
;
shell
.write
= shell_port_send
;
shellInit(&shell
);
osThreadDef(shellTask
, shellTask
, osPriorityNormal
, 0, 1024);
shellTaskHandle
= osThreadCreate(osThread(shellTask
), &shell
);
}
static void cmd_list_tasks(int argc
, char *argv
[])
{
char pcWriteBuffer
[512];
printf("任务名 任务状态 优先级 剩余栈 任务序号\r\n");
vTaskList((char *)&pcWriteBuffer
);
printf("%s\r\n", pcWriteBuffer
);
}
SHELL_EXPORT_CMD(ps
, cmd_list_tasks
, list tasks
);
static void cmd_tcp_send(int argc
, char *argv
[])
{
if(argc
> 1)
tcp_write(pcb
, argv
[1], strlen(argv
[1]), 0);
}
SHELL_EXPORT_CMD(send
, cmd_tcp_send
, tcp send test
);
成果
计划
将lwip 2.0.3版本替换为2.1.2