To use shell commands, four files, in addition to the generic file system files, must be included in the build:
fs_shell.c
fs_shell.h
shell.c
(located in \Micrium\Software\uC-Shell\Source
)shell.h
(located in \Micrium\Software\uC-Shell\Source
)The file fs_shell.h
and shell.h
must also be #included in any application or header files initialize µC/Shell or handle shell commands. The shell command configuration file (fs_shell_cfg.h
) should be copied to your application directory and modified. The following directories must be on the project include path:
\Micrium\Software\uC-FS\Cmd
\Micrium\Software\uC-Shell\Source
µC/Shell with the µC/FS shell commands is initialized in Listing F-1. The file system initialization (FS_Init()
) function should have previously been called.
Listing F-1 Initializing µC/Shell
It’s assumed that the application will create a task to receive input from a terminal; this task should be written as shown in Listing F-2.
Listing F-2 Executing shell commands & handling shell output
LF-2(1) The SHELL_CMD_PARAM
structure that will be passed to Shell_Exec()
must be initialized. The pcur_working_dir
member must be assigned a pointer to a string of at least FS_SHELL_CFG_MAX_PATH_LEN
characters. This string must have been initialized to the default working directory path; if the root directory, “\”.
LF-2(2) The next command, ending with a newline, should be read from the command line.
LF-2(3) The received command should be executed with Shell_Exec()
. If the command is a valid command, the appropriate command function will be called. For example, the command “fs_ls
” will result in FSShell_ls()
in fs_shell.c
being called. FSShell_ls()
will then print the entries in the working directory to the command line with the output function App_ShellOut()
, passed as the second argument of Shell_Exec()
.