AWorks编程:Shell交互界面
在嵌入式操作系统中,图形界面占用的内存资源较大,通常情况下会使用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号。
使用实例
图片新闻
最新活动更多
-
即日-11.13立即报名>>> 【在线会议】多物理场仿真助跑新能源汽车
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论