Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New shell subsystem #8872

Closed
nordic-krch opened this issue Jul 12, 2018 · 9 comments
Closed

New shell subsystem #8872

nordic-krch opened this issue Jul 12, 2018 · 9 comments
Labels
area: Shell Shell subsystem Feature A planned feature with a milestone priority: high High impact/importance bug
Milestone

Comments

@nordic-krch
Copy link
Contributor

nordic-krch commented Jul 12, 2018

New shell subsystem will be ported from nRF5 SDK (known there as nrf_cli). It has following features:

  • multi-instance
  • user friendly features: autocompletion, wildcards, coloring, metakeys (arrows, backspace, ctrl+u, etc.), history
  • integration with logger subsystem - logs are multiplexed with data outputed by the shell ensuring that they do not interfere
  • shell transport generic api - indenpendent of the shell
  • static command tree (root command links to subcommands, subcommands can link to another subcommands set)
  • dynamic subcommands - autocompletion can use dynamic data not known during compilation

New shell subsystem shall be merged when legacy shell is totally replaced targeting 1.14 release.

Description Task Assignee PR
Bluetooth #8873 #9871 #10239
FS #8874 @nordic-krch #10103
net/ip #8875 @jukkar PR:#9825
net/l2/ieee802154 #8876 @jukkar PR:#9825
net/l2/bluetooth #8877 @jukkar PR:#9825
net/l2/wifi #8878 @jukkar PR:#9825
net/lib/openthread #8879 @jukkar PR:#9825
shell/modules/kernel_service #8880 @nordic-krch PR: #9363
samples/subsys/shell #8881 @jarz-nordic PR: #9362
samples/net #8882 @jukkar PR:#9825
samples/drivers/flash_shell #8883 @jarz-nordic PR: #10019
samples/mpu/mpu_test #8884 @jarz-nordic PR: #10608
@nordic-krch
Copy link
Contributor Author

fyi: @carlescufi @jarz-nordic @pizi-nordic @nashif

@nashif nashif added the Feature A planned feature with a milestone label Jul 12, 2018
@nashif nashif added this to the v1.14.0 milestone Jul 12, 2018
@nashif nashif added the area: Shell Shell subsystem label Jul 12, 2018
@pfalcon
Copy link
Contributor

pfalcon commented Jul 12, 2018

I'm all for detailed bug tickets, but her were have ~20 absolutely identical tickets of "Adapt xxx to new shell subsystem". What's the purpose of them? Why just having checkboxes in this master ticket isn't enough?

@nordic-krch
Copy link
Contributor Author

@pfalcon I agree that this may not look nice but introducing this new console will require adaption work which will be split across multiple contributors. Separate tasks can help in terms of taking responsibility.

@nashif nashif added this to v1.14 in Release Plan Jul 17, 2018
@nashif nashif added the priority: high High impact/importance bug label Aug 21, 2018
@koffes
Copy link
Collaborator

koffes commented Sep 13, 2018

Looking forward to these new features. Will multiple transports be supported so that SYS_LOG may be routed to RTT ch. 0 and the shell be accessible over UART or RTT ch. 1 at the same time?

@jakub-uC
Copy link
Contributor

@koffes yes it will be possible. But why would you like to have separate channel for SYS_LOG and shell? New shell will allow you to have SYS_LOG and shell on one RTT channel.

@jakub-uC jakub-uC reopened this Sep 13, 2018
@koffes
Copy link
Collaborator

koffes commented Sep 13, 2018

@jarz-nordic During debugging, we often have significant SYS_LOG output, whilst we want to be able to use the shell. Reading from shell/writing to shell in the middle of all this log "noise" is difficult.

@jakub-uC
Copy link
Contributor

@koffes : Ok, I get it.
Btw. in the new shell you will have possibility to suspend logging, or change filtering criteria during runtime via shell.

I just would like to a bit update my previous answer. In the initial commit we will provide only UART backend. To use shell via RTT, one will need to help us and add RTT backend. It shall not be big deal. Most of work will be copy-paste from UART backend.

@jakub-uC
Copy link
Contributor

@koffes : New shell is in upstream master.

@jakub-uC
Copy link
Contributor

All examples have been migrated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Shell Shell subsystem Feature A planned feature with a milestone priority: high High impact/importance bug
Projects
None yet
Development

No branches or pull requests

5 participants