侵权投诉
订阅
纠错
加入自媒体

AWorks编程:Shell交互界面

2019-03-14 17:21
ZLG致远电子
关注

嵌入式操作系统中,图形界面占用的内存资源较大,通常情况下会使用Shell控制台作为交互界面ZLG AWorks提供了可视化、可配置的Shell控制台环境,允许在程序运行中配置系统信息,利于系统的维护与管理,本文为你详细介绍。

1shell简介

1.1 什么是shell

Shell是操作系统的命令行外壳,提供了用户与内核进行交互操作的一套接口,它接收用户输入的命令并把它送入内核去执行,方便了用户调试程序和查看系统信息。

1.2 Shell的发展历史

在计算机发展的早期,没有操作系统,没有图形界面也没有鼠标和键盘。那个时候的计算机只是一个庞大的机器,人们使用吞吐纸带向计算机输入命令,编写程序。

后来随着计算机不断发展,操作系统诞生,键盘和显示器成为计算机的标准配置,但此时的操作系统还不支持图形界面,那么用户怎么和计算机打交道呢?计算机先驱们开发了一种终端程序作为系统的用户界面,它接受用户的输入命令,解释之后,传递给操作系统,并将系统执行后的输出结果显示在终端上。这个程序像一层外壳包裹在操作系统的外面,所以它被称为Shell。

Shell作为用户和操作系统内核的交互接口,也在不断的发展迭代,后来由大名鼎鼎的Unix系统发扬光大,诞生了多种shell软件,如bsh、bash、csh、ksh、zsh。这些shell功能都非常强大,不仅可以供用户输入命令,它们还都支持shell编程语言,可以完成复杂的操作。这些shell目前都可以在Unix系统上使用。

80年代,图形界面操作系统出现。90年代,windows图形界面系统逐渐占领市场,曾经统治计算机交互界面十年之久的Shell逐渐暗淡,但它并未因此退出操作系统。在windows上,cmd 就是一种shell,同时在 windows 的后续版本发展出更强大的 powershell。

2AWorks Shell

AWorks OS作为生态系统的核心,为用户提供了操作系统级别的服务,例如:多任务、信号量、Shell、消息队列、消息邮箱等,还包含了大量的组件,而Shell组件作为 AWorks 系统的命令行交互界面,主要用于调试、查看系统信息。

Shell组件开启后,在AWorks系统内会建立一个永不停息的 shell 任务,Shell任务通过设备读写API,实现对数据的实时处理。用户在交互界面输入命令,shell任务通过设备读API读取输入内容,解析输入命令,然后自动扫描shell命令函数表,定位命令的位置,执行函数表中对应的函数,并通过设备写API将函数的返回结果发送到PC。

图 1 AWorks Shell工作原理

AWorks Shell组件有两种工作方式:Shell Serial(串口模式)Shell Telnet(网络模式)。

2.1 Shell Serial工作模式

在Shell Serial工作模式下,Shell运行于开发板上,硬件串口作为输入输出设备,在PC和开发板之间建立通信。

使用Shell Serial需要在aw_prj_params.h文件中开启串口设备(默认使用串口1)和串口shell组件,如 程序清单 1和程序清单 2 。

程序清单1 开启串口1外设

程序清单2 开启串Shell组件

通过串口工具将开发板和PC连接,在PC上打开一个Shell终端调试软件(常用软件:XShell、SecureCRT),建立串口连接。编译SDK将固件烧写到开发板,启动程序后,按下回车键,AWorks Shell Serial 命令界面效果如图 2。

图2  AWorks Shell Serial命令界面

2.2 Shell Telnet 工作模式

在Shell Telnet工作模式下,Shell 运行于开发板上,开发板需要通过以太网或 Wifi 模块建立的scoket与PC进行通信,此处以以太网举例。

使用 Shell Telnet 需要在 aw_prj_params.h 文件中开启以太网设备和shell telnet 组件,如程序清单3和程序清单4。

程序清单3 开启以太网外设

程序清单4 开启Shell Telnet组件

与串口Shell不同的是,Shell Telnet在建立连接时需要输入登录名称和密码,此名称和密码也在aw_prj_params.h文件中设置,如程序清单 5。

程序清单5 登录设置

通过网线连接开发板和PC,设置PC的IP地址与开发板在同一网段。在PC上打开一个Shell终端调试软件,配置软件,建立以太网连接。编译SDK将固件烧写到开发板,启动程序,输入用户名和密码,进入 AWorks Shell Telnet 命令界面,如图 3。

图3 AWorks Shell Telnet 命令界面

2.3 使用技巧

help

在控制台上输入help,回车,显示当前AWorks系统已注册的Shell命令,如图 4。

图4 AWorks系统Shell命令集

[command] --help

在控制台上输入[命令名称] --help ,显示输入命令的详细使用方法。

【Tab键】

当控制台没有输入任何字符时,在控制台按下【Tab键】,显示当前AWorks系统已注册的Shell命令。

如果命令字符过长,输入相对繁琐,则在控制台输入几个字符,按【Tab键】即可补全命令。

【上下键】

Shell具有记忆功能,能够记忆使用过的命令,按【上下键】,就可以查看最近输入的历史命令。

【左右键】

移动光标

【退格键】

删除字符

【Enter键】

发送命令

2.4 使用方法

AWorks Shell命令执行格式为:command <arg1> [arg2] ...

<>方括号内为必填参数,[]为可选参数。与传统windows、Linux系统Shell命令基本相同,本文以几个常用命令举例介绍,其他不再赘述。

2.4.1 stack

命令描述

查看当前系统的线程信息。

语法结构

stack [task]

取值说明

[task]是可选参数,取值为线程id号。

使用实例

1  2  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

电子工程 猎头职位 更多
扫码关注公众号
OFweek电子工程网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号