ESP8266在Alios-Things上的入门开发指南 (二)ESP8266开启CLI功能及添加CLI函数

简介: Alios-Things支持几种调试方式,具体作用及使用可参考链接地址 https://github.com/alibaba/AliOS-Things/wiki/Debugging-Overview.zh     今天我们主要关注CLI调试的开启,及增加CLI函数。

Alios-Things支持几种调试方式,具体作用及使用可参考链接地址

https://github.com/alibaba/AliOS-Things/wiki/Debugging-Overview.zh

    今天我们主要关注CLI调试的开启,及增加CLI函数。

     1、修改entry.c代码中 kinit 变量的cli_ebable的值为1

[cpp]  view plain  copy
  1. static kinit_t kinit = {  
  2.     .argc = 0,  
  3.     .argv = NULL,  
  4.     .cli_enable = 1  
  5. };  

       “entry.c”文件位于 "xxx\AliOS-Things\platform\mcu\esp8266\bsp"。

    2、在项目中添加CLI函数

        在此,我使用Example的 netmgrapp 的这个项目代码为例子.

        打开"netmgrapp.c"文件的修ncmds结构数组及添加代码如下所示

[cpp]  view plain  copy
  1. static void handle_jack_cmd(char *pwbuf, int blen, int argc, char **argv)  
  2. {  
  3.     aos_cli_printf("Call me Jack,please\r\n");  
  4. }  
  5.   
  6. static struct cli_command ncmds[] = {  
  7.     {  
  8.         .name = "test",  
  9.         .help = "test",  
  10.         .function = handle_test_cmd  
  11.     },  
  12.     {  
  13.         .name = "jack",  
  14.         .help = "jack",  
  15.         .function = handle_jack_cmd  
  16.     },  
  17. #ifdef TEST_WIFI_HAL_ONLY  
  18.     {  
  19.         .name = "test_wifi_hal",  
  20.         .help = "test_wifi_hal [start|scan|scan_adv|monitor [mngt]|80211send|get_mac|ip_info|all]",  
  21.         .function = handle_test_wifi_cmd  
  22.     }  
  23. #endif  
  24. };  

    保存后,在docker的编译环境中执行如下指令

[plain]  view plain  copy
  1. aos make netmgrapp@esp8266  

    将生成的 netmgrapp@esp8266-0x1000.bin 文件烧录到开发板运行。

    3、使用串口工具运行CLI命令

     在串口工具中发送 help 指令到MCU进入CLI。从CLI返回的参数中我们可以看到我们刚刚添加的一条指令 "jack".
     接着我们通过串口工具发送 jack 指令到MCU,可以看到我们添加的打印信息 :“Call me Jack,please”

运行结果如下图所示

5950bbe1b3617fb81c188430c56ffe0dddf5ff82

    自此,你可以自己添加CLI函数,用以调试开发产品功能.

相关文章
|
NoSQL JavaScript 前端开发
如何使用 Node.js 连接和操作 MongoDB 数据库?
如何使用 Node.js 连接和操作 MongoDB 数据库?
1021 2
|
11月前
|
Kubernetes Cloud Native Serverless
OpenKruise v1.8版本解读:解锁云原生应用管理的无限可能
OpenKruise在2025年2月发布了最新的1.8版本。此版本带来了诸多重要的更新与增强,致力于进一步提升云原生应用管理的效率、弹性和可靠性。
|
机器学习/深度学习 编解码 PyTorch
CVPR 2023 | 主干网络FasterNet 核心解读 代码分析
本文分享来自CVPR 2023的论文,提出了一种快速的主干网络,名为FasterNet。核心算子是PConv,partial convolution,部分卷积,通过减少冗余计算和内存访问来更有效地提取空间特征。
10696 58
|
API
二维码操作[二维码生成]免费API接口教程
二维码生成接口支持自定义内容、颜色、大小等参数,通过POST或GET请求方式访问。用户需提供ID和KEY,可选设置容错级别、图片大小及背景色等。返回状态码及二维码链接或错误信息。示例与详情参见官方文档。
781 3
|
前端开发 JavaScript API
【第15期】一文读懂前端Astro框架
【第15期】一文读懂前端Astro框架
1437 0
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
466 0
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
安全 网络安全 数据安全/隐私保护
数字堡垒的裂缝与修补:网络安全漏洞、加密技术与安全意识的探讨
在数字化时代,网络安全和信息安全已成为保护个人隐私和企业资产的核心。本文深入探讨了网络系统中普遍存在的安全漏洞,分析了它们对信息安全构成的威胁,并详细阐述了如何通过先进的加密技术和提升用户安全意识来强化防护措施。文章旨在为读者提供一套综合性的安全策略,以抵御日益复杂的网络攻击。
|
人工智能 决策智能
数据集的版权问题如何处理?
【7月更文挑战第10天】数据集的版权问题如何处理?
1042 1
|
JavaScript
vue 组件封装 -- 添加【呼吸】动画效果(两种: 淡入>>淡入,淡入>>淡出>>淡入)
vue 组件封装 -- 添加【呼吸】动画效果(两种: 淡入>>淡入,淡入>>淡出>>淡入)
254 0
|
传感器 监控 网络协议
WebSocket 实战:构建高效的实时应用
WebSocket 实战:构建高效的实时应用
WebSocket 实战:构建高效的实时应用