2.4.2 mount
命令描述
挂载存储设备到指定的文件系统。
语法结构
mount <mount point> <device name> <FS type> 。
取值说明
<mount point> 为挂载点的名称,是必填参数,用户可自行取值。
<device name> 是设备名称,必填参数。
<FS type> 文件系统名称,必填参数。
使用实例
该实例需要插入SD卡,并在系统中开启sd设备(默认开启)。
2.4.3 ls
命令描述
显示当前目录下文件列表。
语法结构
ls [-l][path]
取值说明
[-l] 可选选项,显示详细的文件信息。
[path] 可选参数,路径名称。
使用实例
2.4.4 cd
命令描述
切换目录。
语法结构
cd <path>。
取值说明
<path> 必选参数,路径名称。
使用实例
2.4.5 mkdir
命令描述
创建文件夹。
语法结构
mkdir <path>。
取值说明
<path> 必选参数,路径名称。
● 使用实例
2.4.6 touch
命令描述
创建一个文件。
语法结构
touch <path>
取值说明
<path> 必选参数,路径名称。
使用实例
2.4.7 rmdir
命令描述
删除文件夹。
语法结构
rmdir <path>
取值说明
<path> 必选参数,路径名称。
使用实例
3应用
在项目的开发过程中,用户可参见 aw_shell.h文件创建自己的Shell命令。AWorks Shell 命令的注册又分为命令和命令集两种方式,如系统自带命令stack、clr、ls都是单一命令,而wifi则是命令集,命令集下又包含若干命令表。本文针对这两种方式,分别列举注册方法。
3.1注册Shell命令
以LED外设为例,注册三个控制LED的Shell命令:led_on、led_off和led_toggle。
1、首先定义led shell命令表,命令表实际是一个结构体数组,数组中每个元素就是一个shell命令对象,它包含命令名称、命令描述,和命令要执行的函数。如程序清单 6。
程序清单6 定义led shell命令表
2、定义 led shell 命令对应的功能函数 __shell_led_on、__shell_led_off和__shell_led_toggle。这三个函数定义基本相同,本文仅列出__shell_led_on函数定义如程序清单 7,其他两个函数定义将程序清单 7中的 aw_led_on() API 替换即可。
程序清单7 __shell_led_on函数定义
__shell_led_on 函数类型和 aw_shell_printf () API 说明请查阅 aw_shell.h。aw_led_on API说明请查阅 aw_led.h。该函数执行过程中需要匹配一个参数,所以 led shell命令使用时,要携带LED编号参数:"LED_RUN" 或者 "LED_ERR"。
3、 注册Shell命令。
程序清单8 注册led shell命令
AW_SHELL_REGISTER_CMDS 是注册shell 命令的宏函数,此过程将led shell命令插入总的shell 命令链表中。
打开shell Serial命令终端,建立连接。编译、烧写并启动程序,按下Tab键,可见 led shell命令已经注册成功如图5LED 命令。
图5 LED 命令
led_on
命令描述:点亮LED灯。
使用实例:
led_off
命令描述:关闭LED灯。
使用实例:
led_toggle
命令描述:翻转LED灯。
使用实例:
3.2注册Shell命令集
本文自定义一个demo shell命令集,在demo 命令集下包含func1、func2和func3三个命令。
1、定义命令集对象,命令集对象必须包括进入命令集名称、退出命令集名名称和命令集描述,其他属性为可选项,如程序清单 9。
程序清单9 shell命令集对象
2、定义demo shell命令集包含的命令表,如程序清单10。
程序清单10 demo shell命令集包含的命令表
3、定义命令表中 func1和func2命令对应的功能函数__demo_func1和__demo_func2,如程序清单 11和如程序清单 12。
程序清单11 __demo_func1函数定义
程序清单12 __demo_func2函数定义
4、定义命令表中 func3 命令对应的功能函数__demo_func3,如程序清单 13。
程序清单 13 __demo_func3函数定义
该函数定义较为复杂,执行过程中需要匹配选项 '-w'、'-r'、'-d',各个选项后必须携带固定数量的参数。
5、注册demo shell命令集。
程序清单14 注册shell命令集
AW_SHELL_REGISTER_CMDSET是注册命令集的宏函数,此过程将 .demo 命令集插入shell命令总链表中。
6、打开 Shell Serial 命令终端,建立连接。编译、烧写并启动程序,按下Tab键,可见 demo shell命令集已经注册成功如图 6。
图6 demo命令集
进入 .demo 命令集
按下Tab键,显示 .demo命令集包含的命令表,如图 7。
图7 demo命令集包含的命令表
func1命令
命令描述:打印输出。
使用实例:
func2命令
命令描述:打印输出。
使用实例:
func3命令
命令描述:打印输出
使用实例:
.exit
命令描述:退出 .demo 命令集。
使用实例:
本文使用的硬件平台为M1052_EV_Board开发板,购买可咨询ZLG销售人员;软件平台为 aworks_m105x_sdk_1.0.4-alpha软件包。