embedded-trainings-2020/embedded-workshop-book/src/parts-embedded-program.md
Mirabellensaft ad734d6530 rm note
2020-07-13 17:56:57 +02:00

1 KiB

Parts of an Embedded Program

We will look at the elements that distinguish an embedded Rust program from a desktop program.

Open the beginner/apps folder in VS Code.

$ # or use "File > Open Folder" in VS Code
$ code beginner/apps

Then open the src/bin/hello.rs file.

In the file, you will find the following attributes:

#![no_std]

The #![no_std] attribute indicates that the program will not make use of the standard library, the std crate. Instead it will use the core library, a subset of the standard library that does not depend on an underlying operating system (OS).

#![no_main]

The #![no_main] attribute indicates that the program will use a custom entry point instead of the default fn main() { .. } one.

#[entry]

The #[entry] attribute declares the custom entry point of the program. The entry point must be a divergent function whose return type is the never type !. The function is not allowed to return; therefore the program is not allowed to terminate.