On 2024-07-09 10:06:53, Alan C. Assis wrote:
> How can we improve things?
>
> How can we simplify this?

I am just copy pasting my message from other thread, as I did not see
that one in time :) So my proposition is:

I think I would be good if nuttx had something like /sbin/init that would
do some very simple service management. Then you could just tick
"Start NSH after boot up". Programs would probably be had to added via
some compile-time header file that could look like that:


| struct program
| {
|     const char *name;
|     int         priority;
|     int         stack_size;
|     main_t      entry_point;
|     int         pid;
| };
|
| struct program programs[] =
| {
| #ifdef CONFIG_EXAMPLES_NSH
|     { "console", 50, 2048, nsh_consolemain },
| #endif

| #ifdef CONFIG_SOME_DAEMON
|     { "some-custom-daemon", 50, 2048, daemon_function },
| #endif

|     { NULL, 0, 0, NULL }
| };

And program in its simplest form would do:

| #include <rc/rc.h>
| int main(int argc, char *argv[]) {
|     for (int i = 0; programs[i].name != NULL; ++i) {
|         struct program *p = &programs[i];
|         printf("starting: %s\n", p->name);
|         p->pid = task_create(p->name, p->priority, p->stack_size,
|                 p->entry_point, NULL);
|     }
|     for (;;) sleep(UINT_MAX);
| }

I think such init could also handle all initialization code (so not only
starting up daemons). It could be more clear than current board initialization
routines which are a little bit confusing (for me at least).

That would solve 2 problems. It would be very clear that NSH is not needed, and
user would have an easy way to start it's own daemons/applications.

-- 
.-----------------.-------------------.----------------------.-----------------.
| Michal Lyszczek | Embedded C, Linux |   Company Address    |  .-. opensource |
| +48 727 564 419 | Software Engineer | Akacjowa 10a; 55-330 |  oo|  supporter |
| https://bofc.pl `----.--------------: Brzezinka Sredzka PL | /`'\      &     |
| GPG FF1EBFE7E3A974B1 | Bits of Code | NIP:   813 349 58 78 |(\_;/) programer |
`----------------------^--------------^----------------------^-----------------'

Attachment: signature.asc
Description: PGP signature

Reply via email to