zephyr/samples/userspace/hello_world_user
Keith Packard 0b90fd5adf samples, tests, boards: Switch main return type from void to int
As both C and C++ standards require applications running under an OS to
return 'int', adapt that for Zephyr to align with those standard. This also
eliminates errors when building with clang when not using -ffreestanding,
and reduces the need for compiler flags to silence warnings for both clang
and gcc.

Most of these changes were automated using coccinelle with the following
script:

@@
@@
- void
+ int
main(...) {
	...
-	return;
+	return 0;
	...
}

Approximately 40 files had to be edited by hand as coccinelle was unable to
fix them.

Signed-off-by: Keith Packard <keithp@keithp.com>
2023-04-14 07:49:41 +09:00
..
src samples, tests, boards: Switch main return type from void to int 2023-04-14 07:49:41 +09:00
CMakeLists.txt
README.rst
prj.conf
sample.yaml

README.rst

.. _hello_world_user:

Hello World
###########

Overview
********
A simple Hello World example that can be used with any supported board and
prints 'Hello World from UserSpace!' to the console.
If unavailable or unconfigured then 'Hello World from privileged mode.'
is printed instead.

This application can be built into modes:

* single thread
* multi threading

Building and Running
********************

This project outputs 'Hello World from UserSpace!' to the console.
It can be built and executed on QEMU as follows:

.. zephyr-app-commands::
   :zephyr-app: samples/userspace/hello_world_user
   :host-os: unix
   :board: qemu_riscv32
   :goals: run
   :compact:

Sample Output
=============

.. code-block:: console

    Hello World from UserSpace! qemu_riscv32

Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.