1
$\begingroup$

I want to get experience with low-level, bare-metal programming and am not sure if a project that uses an ROS counts as that.

$\endgroup$
1
  • $\begingroup$ research Forth programming language $\endgroup$
    – jsotola
    Feb 16, 2022 at 1:47

2 Answers 2

5
$\begingroup$

Bare metal programming is defined by not using any abstractions that might be provided by an OS and working directly with the hardware. Wikipedia Technopedia.

ROS provides an even higher level framework which builds on top of your computer OS, such as Linux, or Windows.

You can learn a lot about low level concepts while using frameworks such as ROS. And you likely will find that you may want to select a specific part of a larger system to implement at the lowest level. A good learning project could be to reimplement an existing piece of functionality in bare metal instead of trying to recreate the entire system at the lowest level.

$\endgroup$
2
  • 2
    $\begingroup$ So, if I am understanding correctly, using an ROS is not bare metal programming because you need to be using a computer OS to use it? $\endgroup$
    – joshua
    Feb 16, 2022 at 1:34
  • 2
    $\begingroup$ Yes, that is correct. $\endgroup$
    – Tully
    Feb 16, 2022 at 2:22
1
$\begingroup$

I second @Tully's statement that Bare Metal is defined as "without the OS in ROS".

Should you use an OS depends on the size of the processor. An 8 bit μC? Bare metal C. The ROM space is so little that you don't need the abstractions of C++ let alone that of an OS.

An ARM? Linux takes up only 3MB RAM to run.

An even more capable platform? An OS won't suffice, a plethora of third-party user-space utilities will also be needed as to utilize the platform's capacity.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.