AI 助理
备案 控制台
开发者社区 阿里云开发者学堂 文章 正文

3_2_AliOS Things 命令行介绍|学习笔记

简介: 快速学习3_2_AliOS Things 命令行介绍。

开发者学堂课程【HaaS 物联网应用开发课程3_2_AliOS Things 命令行介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址: https://developer.aliyun.com/learning/course/801/detail/13827


3_2_AliOS Things 命令行介绍

 

内容介绍

一、CLI 原理介绍

二、常用 CLI 命令介绍

三、添加 CLI 命令

 

一、CLI 原理介绍

本节课程的主题是 AliOS Things 命令行在本节课中会给大家介绍一下命令行的原,然后接下来给大家介绍AliOS Things 常用的命令行然后第三个如何添加一个自己的命令行指令

图片23.png

首先是命令行的交互原理,CommandLine Interface CLI 的缩写,它是命令行交互接口操作系统提供的命令行交互功能一般都是通过 UART 或者是 USB 作为用户输入输出的接口接收用户输入的指令解析指令并且对其进行执行AliOS Things 操作系统的 cli 组件也可以通过 UART 或者是 USB 或者其他方式和用户进行交互,那在 Haas EDU K1 上是通过 UARTO 作为通道和用户进行交互的

第一是组建或者是应用在启动的时候,它向 CUI 模块注册自己所关注的一个测试指令注册之后 CUI 组件就会把这个指令以及对应指令的处理程序记录在自己的模块内部然后第二是用户通过 UART 输入了一个测试指令,那 CUL 组件会对这个测试指令进行解析解析,然后会和自己记录的 CUL 指令进行匹配如果匹配成功,则会呼叫对应 CUL 指令的一个处理函数,然后呼叫处理函数的时候,也就是会呼叫到组建实现 API 或者是应用实现的 API 里面对这个命令进行处理那个函数这个函数里边做什么样的事情就是有组建或者是应用来处理的

AliOS Things CLI 的源代码是位于 core/cli  这个目录下边,然后如果需要使用 CLI 的功能,需要添加依赖关系或者是在应用的 aos.mk 中添加:$(NAME)_COMPONENTS += cli然后或者是说在应用的 Config.in 中添加:select AOS_COMP_CLI 来选择 CLI 组件选择好之后进行编译烧录,然后系统再启动的时候,在串口工具里边敲入回车机会出现#提示符,则代表 cli 组件正常运行了。

图片22.png


二、常用 CLI 命令介绍

图片21.png

接下来对常见 CLI 做一个介绍在敲入 help 指令之后, CLI 组件会把当前系统所支持的所有的指令给打印出来然后看一下它 help 的输出,首先第一行它提示说 #同时支持4条 cli 指令,也就是说同时可以输入4条 cli 指令,并且只要用分号隔开,然后 cli  模块就会按顺序的执行这四条指令,ystem version 打印系统版本号reboot system系统重启system time 打印系统启动时间msleep 是让CLI 延时一段时间它的单位是毫秒、cpuusage 是周期性显示CPU使用频率,默认时间间隔为1秒一次、show debug info 是显示系统的调试信息、P和m这两个也比较有,在出现问题的时候,可以动态的去修改 memory 的一些值然后改编程序的运行行为来做调试 run a function  是手动执行一个函数。Console show pc addr 是显示当前 PC 地址、 Console trigger system hung  是触发系统hang机的动作,尤其是在出现系统不响应或者是什么情况下,如果想查看当前系统的一些寄存器的状态的时候,可以使用  hang  这条指令,手动触发死机这样的动作,然后使用调试工具里面的一些测试指令,对系统进行调试Tasklist 是显示当前系统的所有 task  信息、dumpsys 是打印系统内存及  heap 分配情况、udp 则是向指定 IP:PORT 发送 UDP data。后边还有很多就不再一一介绍了

接下来对阿里性质当中用的比较多的指令做一个演示,这边是一个工程环境,为了延迟方便不让系统默认打印很多 log hello world 这句给注释掉,然后刚刚其实已经编译了,然后编译已经下载成功了

图片20.png

接下来就来看一下的输出日志是否还存在,这个时候看到已经没有再输出任何日志了,来看一下 Help 打印出来的就是现在系统里边支持的所有的命令都显示在这个地方所以就针对刚刚所说的那几条,然后一个一个的做演示

首先是 dumpsys 可以打印现在内存的状态统计信息dumpsys 有两个,一个是 dumpsys mm,一个是 dumpsys heap 。现在来演示一下 dump mm可以看到这边的 heap 的 total size 指的是系统可以供 vlog 使用的动态内存的总大小free size 系统当前空闲内存的大小,use size 是当前已经分配的内存的大小然后 minimum free size 是系统空闲内存的历史最小值,然后 maximum free block size 是指系统的最大动力空闲块

图片19.png

再来看一下一条指令是 task list可以通过这人可以看到当前 os 启动了多少条 task ,然后每个 task 的优先级是怎么样的?当前的状态是怎么样的?每个 task  size 设定的是多大,然后在整个 task 运行过程当中,它的历史 task size 最小值是怎么样的?然后它运行的时间有多长

然后其他占用的 CPU loading 是多大接下来是 CPU usage,这个地方提示说已经开始去统计 CPU 的利用率了,现在是以每秒打印一次的频率来打印当前 CPU 的占用率,可以看到当前刚刚 task list 里面列出来的,然后现在因为没有什么事情在做,所以就基本上只有占用99.6%的 CPU,然后 CPU 占有的很少输入之后看看它周期性的打印,所以这个时候输入 ctrl c它就不会再继续打印了

接下来演示一下读取和修改当前内存数据的两条指令,一个是 p,一个是 m p 是 printn 的意思,假如说要修改一个内存地址为0x340 27770地址的值的时候,先打印一下它的0x340 27770,然后可以看到这个寄存器开始的这些内存里面的值都是零,那现在用 m 来修改一下X34027770,给改成零x12345678,这样然后就会打印一条 log在这个地址原来的只是0x ,然后现在修改到 x12345678了之后再使用 P0x34027770,然后打印一下它里面的,看看它里面的值有没有改过来,现在可以看到这个地址的值已经改成12345678了最后再来演示一下 reboot CLI 再收到 reboot 之后就会做系统重启的动作,可以看到现在系统已经重启成功了

 

三、添加 CLI 命令

图片18.png

下面内容最后来介绍一下如何添加一个 CLI 指令首先对 CLI 接口的一个重要数据结构做一个说明,这段数据结构它的结构声明是在 include/aos /cli.h 里边,它有一个名字叫 struct cli_command 的一个结构体它里面总共有三个变量,第一个是 name,第二个是 help第三个是 function,这个 name 其实就是命令行里边提示命令的一个名字,然后 help 就是刚刚敲 help 指令的时候前面会显示命令的名字后面有一连串说明的字串,这个字串就是从 help 这个地方打印出来的,下面就是定义一个 function 处理函数这里边的参数就不详细介绍了

然后看一下使用 CLI 的一个步骤,首先要包含刚刚的 cli.h 这个文件,第二步要实现自己的命令行处理的函数,第三是在组建或者是应用初始化函数中需要去呼叫 aos_cli_register_commands把这一条指定注册的 cli 模块中去第四编译烧录第五步系统启动之后,然后用 help 来看添加的测试指令第六可以执行新增测试指令

图片17.png

这就是那几的展开说明,首先要包含 aos /cli.h 的头文件然后要实现自己的命令行处理函数,假如说名字叫led_switch ,那要声明一下自己的这条命令对应一个重要数据结构叫 struct cli ,名字叫 led switch command这条测试程序的一个测试指令名字就叫 LED switch,然后 help 里边输入说假如说 help 后面带着 on ,然后就会打印 turn on 如果带 off 再打 turn off led to ,然后点 function 就是 led switch 这个函数的 point 那 led_switch 里面实现的功能是怎么样的?

那先来看一下假如说参数为空,那就可以直接报错返回就可以了。接下来对第一个参数进行检查,假如说这个参数和 on 匹配并且跟 on 完全匹配,然后打印 LED ON command received,然后如果跟 on 不完全匹配,则打印LED  OFF command received,然后接下来要在组建或者是应用的始化函数中呼叫

aos_cli_register_commands ,然后把 led_switch_command 这条注册到 cli 组建中去,然后编译烧录之后系统启动插入 help ,然后就可以看到 LED switch 这条指令以及 LED switch 的一个说明了假如说输入的是 LED switch on,会打印 LED_ON command received 。

假如输入 led_switch off 则会打印 LED  OFF command received。假如输入的是 led_switch o ,因为 o 与 on 不完全匹配,所以也会打印 LED  OFF command received 。接下来对这个过程进行一下演示还是用刚刚新创建的那个Neo components,进到该代码的下面,为了效率更快把刚刚的测试代码然后放到  cli _test.c 这个文件里面来看这边生成了一个 led_switch然后把这个 cli_switch_command 的结构体写在这个地方,然后实现 led_switch 的处理函数,如果检测到输入的参数是 on 就打印下来,这个地方写了一个函数去呼叫 aos_ cli_register_command,然后把注册的 cli 指令模块当中去接下来要在 aos.mk 里面把 cli test上的 .c 放到文件里面去,这样系统在编译的时候才会编译到这个文件

然后再来看一下 new component.c 里边在刚刚的 new component welcome 里面去呼叫 component_cli_test_init,它就是刚刚注册 cli 指令的那个函数

接下来就去看一下 workspace 里面去呼叫这个 new_comp 函数的地方呼叫这个 new component welcome 的时候,然后就会去向 cli 注册一条指令,这样来进行一下编译同样是先执行一下 make然后执行 helloworld_demo@haaseduk1-c config,等编译完成之后通过aos   upload 将 helloworld_demo 这个应用程序收入到板子当中去

这个时候再选择一个 port ,然后就开始进行这边销售完成之后再新起一个窗口,然后来看一下第一个前面的串口是叫什么启动 picocom ,现在这个时候来交流一下 help ,看一下新增加的指令 led switch已经添加到这个地方了,然后后边的 help 写的是 on turn to turn off two ,然后来执行一下 led _switch,然后打开 led_switch off,然后输入一个,这样提示的也是 LED off received,程序设计的逻辑是一样的

阿里云社区
目录
相关文章
巴人壹个
|
物联网 Linux
【AliOS Things学习笔记】为你的AliOS Things应用增加自定义cli命令
怎么才能在RTOS系统中,通过 串口shell控制LED的开关。
巴人壹个
3658 0
开发者小助理
|
AliOS-Things 物联网 编译器
使用HaaS Studio开发AliOS Things C/C++应用
本文章将介绍使用HaaS Studio 进行AliOS-Things C/C++应用开发。
开发者小助理
567 0
使用HaaS Studio开发AliOS Things C/C++应用
温柔的养猫人
|
传感器 监控 算法
使用AliOS Things快速构建温度计应用 |《AliOS Things快速开发指南》
本文是基于AliOS Things 3.1快速构建温度计的应用场景。涉及AliOS Things组件开发,构建AliOS Things用户项目,AliOS Things HAL API使用,向AliOS Things中添加并使用组件。用到的硬件设备有半导体开发板、温度传感器、数码管显示器。
温柔的养猫人
1881 0
使用AliOS Things快速构建温度计应用 |《AliOS Things快速开发指南》
迪科斯彻
|
域名解析 移动开发 数据可视化
使用 AliOS Things 3.0 快速构建用户应用 BlinkAPP
AliOS Things 3.0版本于去年9月份在云栖大会正式发布,在新版本中带来了全新的应用开发框架,帮助用户快速构建自己的应用。使用户可以更专注于自身应用的开发。本文将已BlinkAPP为例,为大家演示如何快速使用应用开发框创建项目并完成应用代码编写。
迪科斯彻
955 0
使用 AliOS Things 3.0 快速构建用户应用 BlinkAPP
智能计算灵骏
|
物联网 机器人 AliOS-Things
AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示
摄像头配网 + 钉钉群通知 + 天气显示
智能计算灵骏
6040 0
智能计算灵骏
|
API 小程序 物联网
AliOS Things 3.0应用笔记:支付宝小程序设备控制 - 全栈开发(附全部源码)
通过支付宝小程序即控制IoT设备
智能计算灵骏
9078 0
智能计算灵骏
|
物联网 传感器 API
AliOS Things 3.0应用笔记:http client简单应用
AliOS Things 3.0版本新增加了httpc组件(http 客户端组件),httpc组件支持多种RESTful的API调用,包括GET、POST、PUT、HEAD等,也支持https安全协议。
智能计算灵骏
12325 1
麻纸君
|
物联网 机器人 AliOS-Things
AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示
AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + LCD天气显示
麻纸君
3389 0
巴人壹个
|
物联网 C++
使用AliOS Things 3.0快速构建用户应用 BlinkAPP
AliOS Things 3.0版本于9月27日在云栖大会正式发布,在新版本中带来了全新的应用开发框架,帮助用户快速构建自己的应用。使用户可以更专注于自身应用的开发。本文将已BlinkAPP为例,为大家演示如何快速使用应用开发框创建项目并完成应用代码编写。
巴人壹个
6992 0
零妖
|
物联网 AliOS-Things 开发工具
AliOS Things 完成第一个应用:Hello World
这样理解一下: VSCode编译代码后,调用ST-Link将程序烧写到单片机内部。 编译完成后,也会生成二进制文件,这样就可以通过各种方法下载了,比如批量生产时候用脱机下载器。
零妖
11397 0

阿里云开发者学堂

热门文章

最新文章

  • 1
    AliOS Things+阿里云 10分钟搭建智慧农业解决方案
  • 2
    AliOS Things 3.0应用笔记:支付宝小程序设备控制 - 全栈开发(附全部源码)
  • 3
    AliOS Things Developer Kit 快速入门
  • 4
    AliOS Things 技术架构
  • 5
    基于AliOS Things玩转智能语音
  • 6
    使用AliOS Things 3.0快速构建用户应用 BlinkAPP
  • 7
    AliOS Things正式开源,走近阿里云的物联网技术
  • 8
    AliOS Things开发:AliOS Studio使用说明
  • 9
    AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示
  • 10
    一种基于AliOS Things的uData感知设备软件框架
  • 1
    AliOS Things 系统架构介绍(二)
    343
  • 2
    AliOS Things 系统架构介绍(一)
    329
  • 3
    点亮AliOS Things IOT开发板上的的OLED全彩屏
    104
  • 4
    AliOS Things IOT开发板初体验(基于STM32L496VGTx)
    486
  • 5
    《AliOS Things快速开发指南》电子版下载地址
    118
  • 6
    《HaaS物联网设备云端一体开发框架:AliOS Things》电子版下载地址
    107
  • 7
    《HaaS物联网设备云端一体开发框架:AliOS Things》电子版地址下载
    85
  • 8
    《HaaS物联网设备云端一体开发框架:AliOS Things》下载
    112
  • 9
    AliOSThings 物联网开发入门|学习笔记
    252
  • 10
    《HaaS物联网设备云端一体开发框架:AliOS Things》下载地址
    112
  • 相关课程

    更多
  • AliOS Things物联网开发教程
  • 相关电子书

    更多
  • AliOS Things快速开发指南
  • AliOS Things 电源管理框架
  • AliOS Things集成开发环境降低开发门槛
  • 下一篇
    搭建自己的私有云盘工具总结

    玻璃钢生产厂家玻璃钢骆驼雕塑公司在哪里襄阳景区玻璃钢雕塑定做浙江玻璃钢雕塑绵羊图片浙江主题商场美陈商场美陈证书大连玻璃钢雕塑定制价格组合式玻璃钢雕塑摆件销售玻璃钢农耕牛雕塑新密价值观玻璃钢仿铜雕塑周口卡通玻璃钢雕塑公司河南玻璃钢香蕉雕塑玻璃钢火龙果雕塑制作衡水玻璃钢海豚雕塑定制商业街雕塑圆球玻璃钢雕塑徐州商场周年美陈江津玻璃钢浮雕人物山水雕塑广州玻璃钢长颈鹿雕塑玻璃钢海洋雕塑哪个靠谱玻璃钢雕塑厂哪个比较好浙江周年庆典商场美陈采购安阳价值观玻璃钢人物雕塑厂家福州手糊法玻璃钢雕塑张家口玻璃钢雕塑公司江苏拉丝玻璃钢雕塑哪家好丽江玻璃钢雕塑哪家好口碑推荐怎么把泡沫雕塑变成玻璃钢模具南宁景观玻璃钢雕塑批发玻璃钢欧式天使雕塑设计许昌玻璃钢人物雕塑加工深圳玻璃钢鹿雕塑价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化