# FreeRtos-CLI-shell **Repository Path**: heikong521/free-rtos-cli-shell ## Basic Information - **Project Name**: FreeRtos-CLI-shell - **Description**: 基于FreeRTOS-CLI组件在Xilinx zynq平台实现的shell中断控制。通过多个命令可实时的对下位机的任务进行调试。 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-23 - **Last Updated**: 2025-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **FreeRTOS-Shell 组件说明** ## **概述** 基于 FreeRTOS-Plus 的 V10.x 及以上版本,配套 FreeRTOS-Plus-CLI 组件实现串口的 Shell 终端。 已在 Xilinx Zynq 7045 系列开发板上测试通过,能够正常显示 Shell 终端并实现其所有功能。 ------ ## **文件说明** | 文件名 | 描述 | | ----------------------- | -------------------------------- | | `FreeRTOS_CLI.c` | FreeRTOS 官方提供的 Shell 组件。 | | `FreeRtosShellConfig.h` | Shell 终端配置文件。 | | `Sample-CLI-commands.c` | 命令实现的文件。 | | `serial.c` | 串口底层驱动文件。 | | `UARTCommandConsole.c` | Shell 终端输入输出检测文件。 | ------ ## **使用说明** 1. **功能配置** 根据实际需求在 `FreeRtosShellConfig.h` 文件中定义相关功能。例如: - 启用任务管理类功能,将 `FreeRTOSShellConfig_taskManage` 定义为 `1`。 2. **任务函数指针注册** 如果使用任务管理类功能,需要向任务函数指针注册表注册函数指针。 自定义实现 `userRegisterTask()` 函数,并调用 `registerTaskFunction()` 注册函数。 3. **选择通信模式** 根据需求选择串口 Shell 或网口 Shell: - **串口 Shell 模式** 修改 `FreeRtosShellConfig.h` 中的 `FreeRTOSShellConfig_Communication_Mode` 参数为 `SHELL_MODE_SERIAL`。 - 网口 Shell 模式 - 在 `ps7_cortexa9_0/libsrc/freertos10_xilinx_v1_2/src/FreeRTOS.h` 中,修改 `INCLUDE_xTaskGetHandle` 宏为 `1`。 - 在 `ps7_cortexa9_0/libsrc/lwip202_v1_2/src/contrib/ports/xilinx/include/lwipopts.h`中,修改以下宏: - `LWIP_RAW` 为 `1` - `LWIP_DNS` 为 `1` 4. **初始化** 将 `FreeRtosShellConfig.h` 文件中的 `FreeRtosShellInit()` 函数放到程序入口处进行初始化。 ------ ## **命令列表** 目前实现了以下命令,可通过 `help` 查看命令列表。 ### **软件版本查询** - **version**: 查看当前软件的版本号。 ### **基本命令** - **help**: 查看当前所有支持的命令列表。 - **task-stats**: 显示每一个 FreeRTOS 任务的状态。 - **echo-3-parameters **: 回显三个输入参数。 - **echo-parameters <...>**: 回显输入的参数。 ### **日志管理命令** - LogLevel : 日志管理命令。 - `-e`: 错误日志级别 (Error) - `-w`: 警告日志级别 (Warning) - `-i`: 信息日志级别 (Info) - `-d`: 调试日志级别 (Debug) - `-n`: 禁用日志 (Disable) ### **任务管理类命令** - **ps**: 显示当前系统中所有任务的状态信息,包括任务名称、优先级、堆栈使用情况等。 - taskSuspend : 挂起任意任务。 - ``: 任务名称。 - taskResume : 恢复任意任务。 - ``: 任务名称。 - **listTaskPtr**: 列出当前所有注册的任务函数指针及函数名称。 - TaskCreate : 创建任务。 - ``: 任务名称。 - ``: 任务堆栈大小。 - ``: 任务优先级。 - TaskDelete : 删除任务。 - ``: 任务名称。 ### **内存管理类命令** - memwrite : 写入数据到指定寄存器。 - ``: 寄存器地址。 - ``: 写入数量。 - ``: 待写入的数据。 - memread : 从指定寄存器读取数据。 - ``: 寄存器地址。 - ``: 读取数量。 ### **网络管理类命令** - ping : 测试网络连接。 - ``: 目标 IP 地址。 ## 软件更新日志 | 版本号 | 发布日期 | 新增功能 | | :----- | :--------- | :----------------------------------------------------------- | | V1.0.6 | 2025/4/11 | - 修改LOG模块的日志级别,当日志级别为ERROR时,所有日志全部输出。
- 新增网络管理类的ping命令。 | | V1.0.5 | 2025/3/20 | - 新增内存的读写命令。 | | V1.0.4 | 2025/3/7 | - 修改LogLevel命令为Log命令。
- 新增堆空间的查询命令。 | | V1.0.3 | 2024/12/20 | - 新增终端行编辑功能。 | | V1.0.2 | 2024/12/6 | - 新增任务类相关的管理命令。 | | V1.0.1 | 2024/12/5 | - 新增日志管理命令。 | | V1.0.0 | 2024/12/4 | - 搭建Shell终端框架,实现基本命令。 |