# FreeRtos-CLI-shell **Repository Path**: myplease514/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**: 2 - **Forks**: 1 - **Created**: 2024-12-07 - **Last Updated**: 2026-01-19 ## Categories & Tags **Categories**: iot **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` - 错误日志级别 - `-w` - 警告日志级别 - `-i` - 信息日志级别 - `-d` - 调试日志级别 - `-n` - 禁用日志 ### 任务管理类命令 - `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 终端框架,实现基本命令 |