作者|李昆明,单位:中国移动智能家居运营中心实验室简介Shell就像是开发者与计算机之间的沟通桥梁。开发者可以方便的获取系统的运行状态,通过命令控制系统。跑步。搭载外壳组件的操作系统,可以让目标用户的开发更加简单方便。在计算机发展的早期,在图形系统出现之前,没有鼠标,甚至连键盘都没有。那时候人们是如何与计算机交互的?最早的计算机使用打孔纸条向计算机输入命令并编写程序。后来随着电脑的不断发展,显示器和键盘成为了电脑的标配,只是此时的操作系统并不支持图形界面。计算机先驱开发了一种软件,它接受用户输入的命令,对其进行解释,然后传递给操作系统,并将操作系统执行的结果返回给用户。这个程序就像一个外壳包裹着操作系统,所以被称为“外壳”。Part01SHELL组件开发的意义嵌入式设备通常需要将开发板连接到PC进行通信。常见的连接方式有:串口、USB、以太网、Wi-Fi等,灵活的外壳也应该支持多种连接方式。有了shell,就好像在开发者和计算机之间搭建了一座沟通的桥梁。开发者可以方便的获取系统的运行状态,通过命令控制系统的运行。尤其是在调试阶段,有了shell,开发人员不仅可以更快定位问题,还可以使用shell调用测试函数。通过改变测试函数的参数,减少代码烧写次数,缩短项目的开发时间。Part02SHELL组件设计原理shell命令行组件提供了一套操作界面供用户在命令行调用,主要用于调试或查看系统信息。它可以使用串行端口/以太网/USB与PC通信。硬件拓扑如下图所示:系统的硬件拓扑是通过shell调试的。传递给设备中的shell,shell会读取设备输入的命令,分析并自动扫描内部函数表,找到对应的函数名,执行函数后输出response,通过原路径返回response,并将结果显示在控制终端上。Part03SHELL组件的使用AOS-IoT上的shell组件一般通过串口连接电脑和PC。通过开发板的串口输出到PC上的调试软件,就像使用linuxshell一样方便快捷。只需在PC上打开调试软件,确保串口与PC能正常通信,向开发板发送help命令即可了解操作系统的所有内置命令。这时,输入你要使用的命令,就可以熟练使用RTOS的shell功能了。Part04SHELL组件底层逻辑用户在控制端输入命令,控制端通过串口将命令传给设备中的shell。shell会读取设备的输入命令,解析并自动扫描内部函数表,找到对应的函数名,并执行该函数。输出response,response按原路径返回,并在控制端显示结果。通过shell组件,程序员可以通过键入预设的命令来了解操作系统的运行状态和各种信息。它就像人体的嘴巴,可以表达自己的状态和感受。搭载外壳组件的操作系统,使目标用户的开发更加简单方便。
