How does the user interact with rtems and learning about booting

oss at c-mauderer.de oss at c-mauderer.de
Wed Sep 8 19:13:42 UTC 2021


Hello Zack,

first let me mention: For some reason your text is (in the HTML form) 
dark gray on light gray which is hard to read. Maybe you should check 
the settings of your mail application.

On 08/09/2021 03:38, zack leung wrote:
> what is the best way to learn about the boot process for rtems how do 
> you get from bare metal to kernel?

Regarding the boot process: That is a bit of a difficult question. It 
depends a lot on the target. We have targets that boot a RTEMS 
application right from the bare metal (like the atsam, the imxrt or the 
stm32f4 to name some). Others use U-Boot or a similar bootloader for the 
low level initialization (like beagle, imx, raspberry). And I think the 
i386 uses more or less a normal PC boot.

As a rough direction: If the board normally can run Linux, we use the 
same bootloader that Linux would use on that board. If it is a smaller 
target that normally uses bare metal applications, RTEMS is started as a 
bare metal application too.

If you are interested in the part that happens before Init in RTEMS: You 
might want to take a look at the BSP manual:

   https://docs.rtems.org/branches/master/bsp-howto/initilization_code.html

Is there a BSP where you are specially interested in the boot process?

> Also In most os's we've used as an 
> end-user there's usually a way to interact with it e.g terminal. Does 
> RTEMS have some sort of shell? I've been working on rtems for around 5 
> months and I'm always here to learn!
> 

For an embedded system it would be unusual for an end-user to interact 
with a shell. The normal user interface is most likely more something 
like some buttons and a small display, a web interface or even nothing 
at all. Most RTEMS use cases are most likely something like industrial, 
automotive or aerospace applications.

But despite that: We have a shell. I assume that it is used mostly 
during development or for maintenance applications in most use cases.

There is even a manual for it:

   https://docs.rtems.org/branches/master/shell/index.html

It is used for example in the fileio test:

   https://git.rtems.org/rtems/tree/testsuites/samples/fileio/init.c#n535

Or in a number of libbsd tests like media01:

 
https://git.rtems.org/rtems-libbsd/tree/testsuite/media01/test_main.c#n164

Best regards

Christian


More information about the users mailing list