Re: [RFC] Zephyr Shell Enhancement


Luiz Augusto von Dentz
 

Hi Yael,

On Wed, Jul 13, 2016 at 2:05 PM, Avramovich, Yael
<yael.avramovich(a)intel.com> wrote:
Zephyr Shell Enhancement

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



========

Overview

========

Current shell implementation:

• Current Shell implementation is based on UART.

It uses one UART for console (UART number is determined by config
file).



• Console device driver initialization priority:

Console has to be initialized after the UART driver it uses.



• When the shell is initialized, it starts the shell as a fiber and

initialize UART console.



• Current shell implementation supplies shell utilities only for a
single

module.



=====

Goals

=====

1. Multiple and dynamic usage in modules level:

----------------------------------------------------------

Ability to add multiple modules to shell commands array.

Each module should be added dynamically by its config file.



2. Dynamic usage of the shell:

------------------------------------

Ability to enable / disable shell service.

If it is enabled (according to .Kconfig), basic framework shell commands

are also available for use.



3. Memory consumption:

------------------------------

Shell commands array should be allocated exactly according to the number
of

entities that actually use the shell.



4. Shell format:

------------------

Use one of the following (Error message is shown in case of a wrong
usage):

- ENTITY COMMAND

- help

- help ENTITY

- help ENTITY COMMAND

One of the entities is “FW”, for the Framework module.
Just have a command to select the module you want to operate, e.g.
select-module bluetooth, that way one don't have to keep entering the
entity name always. The prompt can also reflect the current module in
use.

Join devel@lists.zephyrproject.org to automatically receive all group messages.