STM32裸机移植letter shell

本文档详细介绍了如何将Linux下的LetterShell命令行工具移植到STM32平台,包括源码获取、数据接口移植、平台配置及启动任务的方法。通过移植,可以在STM32上实现交互式shell,方便项目开发和调试。此外,还展示了如何编写自定义命令和注册命令,以实现功能扩展。

在这里插入图片描述

[--------------点击下面,进入总目录索引--------------]
STM32系列精品Demo集 - 总目录


图示:Letter Shell效果演示
在这里插入图片描述

一、为什么要移植Letter shell


  • Linux下强大的命令行工具用起来即为顺手,所以移植一款命令行工具到STM平台非常有意义 。
  • 工程中集成一款交互式shell,为项目开发调试提供便捷,开发者自定义测试命令,使得更加灵活。

二、移植步骤

2.1、获取Letter Shell源码

https://github.com/NevermindZZT/letter-shell

图示:Letter Shell源码结构
在这里插入图片描述
上述源码结构中,若不想深入了解实现机制,只想简单使用起来,后续移植只需关心上述框出文件即可!

2.2、shell_port.c数据源移植

shell_port.c主要用于配置Uart数据通道,说白了就是将shell_port.c中的读写接口移植为STM32平台的Uart发送接收接口。

Shell shell;
char shellBuffer[512];

/**
 * @brief 用户shell写
 *
 * @param data 数据
 */
void userShellWrite(char data)
{
   
   
    ControlUartSendData(UART0_CHANNEL, data);
}
/**
 * @brief 用户shell读
 *
 * @param data 数据
 * @return char 状态
 */
signed char userShellRead(char *data)
{
   
   
    *data = 0;
    while (!(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET))
    {
   
   
    }
    *data = USART_ReceiveData(USART1);
	return 0;  //返回0标识数据已经准备OK
}
/**
 * @brief 用户shell初始化
 *
 */
void userShellInit(void)
{
   
   
    char data = 0;
    shell.write = userShellWrite
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值