| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言 - letter shell 3.0 裸机移植程序 -> 正文阅读 |
|
[C++知识库]C语言 - letter shell 3.0 裸机移植程序 |
文章参考笔记源码获取 letter-shell: 项目源码-letter-shell-NevermindZZT (gitee.com) 移植参考 ‘letterShell STM32移植 - 代码先锋网 (codeleading.com)https://www.codeleading.com/article/24354023097/ SHELL? ? ? ? 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(command interpreter,命令解析器)。它类似于DOS下的COMMAND.COM和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。 ? ? ? ?同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 简介letter shell 3.0是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数 相对2.x版本,letter shell 3.0增加了用户管理,权限管理,后续会增加对文件系统的支持 此外3.0版本修改了命令格式和定义,2.x版本的工程需要经过简单的修改才能完成迁移 若只需要使用基础功能,可以使用letter shell 2.x版本 使用说明可参考Letter shell 3.0 全新出发 应用场景? ? ? ? 嵌入式项目中,调试阶段打印SPI Flash、LCD屏幕这些,我希望可以在串口直接调用某几个功能函数开始执行,当移植了shell之后,在代码中只需要添加一行宏定义,就可以在串口中调用此函数开始执行。 功能
项目地址GitHub - NevermindZZT/letter-shell: letter shellhttps://github.com/NevermindZZT/letter-shell 移植配置(KEIL)? ? ? ? ? ?移植适配前请添加这两项内容,否则会导致错误出现 ? Misc controls中添加相关示例?
? 移植说明? ? 导入Letter-Shell核心文件? ? ? ?这里新建了一个Group,取名为shell_letter,将核心文件导入; ? 并新建shell_port.c,shell_port.h;这两个文件需要自己编写的,适应自己的平台的移植文件,只需要改这个就行,另外还有一个cfg的头文件,是用于配置shell的。 宏定义配置letter-shell具备很多功能,可以通过宏定义来开启或者关闭,在 ? 编写移植文件shell_port.c????????代码如下: ? ? ? ? 此处有两种方式编写文件 第一种:采用主程序循环读取在shellTask中,会循环调用 shell.read函数,即我们自己编写的读字符函数。会根据函数返回值判断是否执行句柄函数。
需要清除标志位。 第二种:采用中断读取? ? ? ? 主要调用“shellHandler”函数
?显示效果如下:?应用程序编写应用函数可以写在主函数中,也可以写在接口函数中 注意事项:letter shell 3.0同时支持两种形式的函数定义方式,形如main函数定义的 main函数形式使用此方式,一个函数定义的例子如下
终端调用
普通C函数形式使用此方式,shell会自动对参数进行转化处理,目前支持二进制,八进制,十进制,十六进制整形,字符,字符串的自动处理,如果需要其他类型的参数,请使用代理参数解析的方式(参考代理函数和代理参数解析),或者使用字符串的方式作为参数,自行进行处理,例子如下:
终端调用 letter:/$ func 666 'A' "hello world" 变量使用letter shell 3.0支持导出变量,通过命令行查看,设置以及使用变量的值 导出变量变量导出使用SHELL_EXPORT_VAR宏,支持整形(char, short, int),字符串,指针以及节点变量,变量导出需要使用引用的方式,如果不允许对变量进行修改,在属性中添加SHELL_CMD_READ_ONLY
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:30:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |