RT-Thread带有功能强大的类似linux命令行的shell工具,十分方便查看系统运行状态和参数。
C语言finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试或查看系统信息。finsh支持两种模式:C语言解释器模式,为行文方便称之为c-style;传统命令行模式,此模式又称为msh(module shell)。表达式解释模式下,finsh能够解析执行大部分C语言的表达式,并使用类似C语言的函数调用方式访问系统中的函数及全局变量,此外它也能够通过命令行方式创建变量。在msh模式下,finsh运行方式类似于dos/bash等传统shell。用户由设备端口输入命令行,finsh 通过对设备输入的读取,解析输入内容,然后自动扫描内部段(内部函数表),寻找对应函数名,执行函数后输出回应。
RT-Thread的shell驱动添加起来比较复杂,本系列教程作为kernel部分,暂时不涉及驱动框架。本节教大家实现rt-thread自带格式化输出函数rt_kprintf的重映射方法。
一、使用STM32CubeMX配置串口
gokit板载的串口1可供用户使用,使用stm32cubemx将其配置为115200-N-8-1
二、RT-Thread rtconfig.h文件配置
确保以下参数正确
三、添加串口重映射代码
在main文件里添加如下代码
再把初始化的函数换个位置
添加测试代码如下
打开串口调试助手,可以看到rt-thread打印的log了
原文出处http://club.gizwits.com/thread-7943-1-1.html
|