说得直白点他就是一个命令行交互软件,可以读取用户输入的命令,找到并执行命令对应的函数。
可以到简介,给出的作者的github官网下载。如果因为网速的原因,也可以到gitee上面下载,gitee也有很多关于letter-shell的源码,
我们把官网的APM32F4 SDK下载下来后,然后我们选择一个串口中断的例程,如下:
然后,把这个例程不需要的代码去掉,只留下串口相关的初始化代码,还有printf重定向的代码就行了。
打开keil的项目管理窗口,然后添加我们刚刚复制的letter-shell的源码目录src的所有文件:
点击OK,退出。这个时候源码相当于添加完成,这是编译是可以通过的,没警告和错误。但是还不能正常使用letter-shell,因为还没有添加移植的接口函数。
我们还需要提供letter-shell的读写接口函数,这样letter-shell才能通过串口输出字符,或者通过串口获取输入字符。
在letter-shell的源码目录下,demo目录中,已经提供了基于的读写接口,我们可以把该文件复制到我们的工程目录下,然后在该文件基础上进行改写:
1、在shell_port.c中,我们主要实现shell的写函数即可,代码如下:
2、关于读函数,我们可以不用实现,因为我们使用的是串口中断方式接收字符,不需要实现读函数。我们只需要在串口中断函数中,调用shellHandler即可。串口中断代码如下:
3、提供letter-shell的初始化函数,该函数其实主要就是初始化shell结构体。因为我们只用到写函数,所以只提供了写接口。具体代码如下:
当我们把接口函数都提供了之后,就只需要在main函数调用 letter-shell 的初始化函数 userShellInit 即可。main函数代码如下:
到这里,我们就完成了letter-shell的移植了,编译下载可以看到如下效果:
该文件也是在letter-shell的src目录下,shell_cfg.h文件中包含了所有用于配置shell的宏,在使用前,可根据需要进行配置。我们工程是使用的默认配置,基本的功能也有,要想使用其他功能,可能需要先打开某个配置宏,定义的含义如下:
letter-shell支持定义自己的命令,并且把该命令导出到shell终端中,以供我们在命令行下使用自定义的命令。
在使用letter-shell自定义命令时,要先检查 shell_cfg.h 文件是否开启了命令导出功能。
就是这个宏需要定义为 1 。开启了这个宏,我们就可以编写自己的命令函数,然后导出到shell终端了。
这里作者加入了命令属性的参数,主要就是定义该命令的权限,类型,是否使用返回值输出等等(详细的属性定义可以去看源码),其他参数就是命令名,对应的命令函数名,已经该命令的描述。
根据作者的reamme文件,目前 letter shell 3.x 版本,命令函数参数只支持整数,字符,字符串参数,以及在某些情况下的浮点参数直接传递给执行命令的函数。浮点型参数是在哪些情况才支持,可以阅读作者的文档。
* 包含命令名在内,超过16个参数并且使用了参数自动转换的情况下,需要修改源码
文章出处:【微信号:geehysemi,微信公众号:Geehy极海半导体】欢迎添加关注!文章转载请注明出处。
g_uart0UART(r_sci_uart)。点击新增的串口控件,编辑Properties,如下标所示。2
脚本是非常重要的内容,它们的功能非常强大,使用它们可以完成各种操作。《Linux
调试工具(单片机、c语言) /
界面,可以通过以下步骤实现: 打开虚拟机,进入到Linux系统。 在桌面或应用菜单中找到
Python是一种非常流行的编程语言,许多开发者使用它来编写各种应用程序和脚本。为了方便开发者编写和测试代码,PyCharm是一种集成开发环境(IDE),它提供了许多功能和工具,其中包括
基于Arm Cortex-M4内核的APM32F405/407系列MCU介绍
极海作为“中国芯”获奖企业代表受邀参展BEYOND EXPO 2023
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88888888@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:https://starfield-sports.com/Wordjiaocheng/Wordhonganli/279.html