I’m using RTEMS with a custom shell setup and noticed the go command is still available. It appears to be an alias for the Monitor’s continue command. I don’t need the RTEMS Monitor and would like to remove it entirely to reduce binary size and avoid unintended usage.
How can I fully disable the RTEMS Monitor and remove all related shell commands like go?
Please try and experiment with what you can disable. We test a number of combinations but we cannot test all and we welcome user feedback or better merge requests to get allow results. If you find a solution to making it as small you need and you provide a merge request the code will be able to support your set up.
As you have found the shell can increase the size of your executable because of the calls is makes. If you have the RFS format command included your application will include the RFS file system, a lot of general file system code and the block cache support (libblock).
The answer is that the monitor commands cannot currently be disabled. They are added at line 200 of shell.h.
You can experiment by commenting out that line and seeing how much smaller your executable becomes.
There should be a way to disable this set of commands. The way they are registered is as a set and the shell commands are wrappers for underlying monitor commands. Being able to configure them as a set should be fairly straightforward.
Long term, it would be great to have a way to disable the commands individually. I have looked at this in the past but so far haven’t seen a clean way to unravel this and make it more configurable.