Update preset.
[bertos.git] / doc / general-introduction
index b11a3290078cfe2e810969d0157e2e1ecab518ac..93f3a597514cd41ec8719f5eea919a881e1b7c6e 100644 (file)
@@ -12,7 +12,8 @@ BeRTOS uses object oriented programming concepts for the base interfaces.
 If used in the right way, OOP elegantly solves a broad range of problems
 linked with the creation of common and reusable interfaces that allow
 you to save development time and precious memory space.
-Have a look at <a href="">KFile tutorial</a> on BeRTOS web site for
+Have a look at <a href="http://www.bertos.org/use/tutorial-front-page/drivers-kfile-interface/">
+KFile tutorial</a> on BeRTOS web site for
 a more complete introduction to object oriented programming.
 
 <h2>OOP in C</h2>
@@ -63,6 +64,72 @@ int main()
 
 */
 
+
+/**
+\page short_introduction A 5 minute introduction to BeRTOS
+
+\section installation Installing BeRTOS on your system
+
+What do you need when developing an embedded project with BeRTOS?
+\li a toolchain for your CPU
+\li BeRTOS source code :)
+\li supporting binaries for BeRTOS build system
+\li supporting tools for BeRTOS Wizard
+
+See the <a href="http://www.bertos.org/use/tutorial-front-page/installation-instructions/">
+installation instructions page</a> online for help on installing BeRTOS on your system.
+
+Strictly speaking, BeRTOS doesn't need to be 'installed', you can just
+take .c files and compile them in your project.
+
+However, BeRTOS is a complex system with many dependencies between modules.
+It's not easy to track the dependencies for each module, so we have developed
+a set of tools to make dependency tracking automatic.
+
+Contact the <a href="http://forum.bertos.org">support forum</a> and look at
+the section \ref coding  if you want
+help on using BeRTOS without the supporting tools. Be warned, though, that
+this method is not supported and we can only point you in the right direction.
+
+\section organization Project's organization
+
+Each project has its own full BeRTOS sources, configuration and HAL files.
+Why? Because we think that each project has its own life and it must not
+interfere with any other project.
+Let's say you use a shared BeRTOS version for all of your projects. Each
+time you update, you need to check that each and every project still works
+correctly. We don't want to do this (and I bet you don't want either).
+However, it's still easy to update a single project if you want to.
+
+A project named Foo is organized as follows:
+\li bertos/ - BeRTOS source directory
+\li Makefile - BeRTOS build system Makefile
+\li project.bertos - Wizard's configuration file
+\li foo/ - your project's main directory
+\li foo/hw/ - low level HAL files
+\li foo/cfg/ - configuration directory
+\li foo/foo_user.mk - makefile fragment that you can edit
+\li foo/foo.mk - makefile fragment changed by the Wizard, don't edit
+
+See <a href="http://www.bertos.org/use/tutorial-front-page/basic-hal/">BeRTOS HAL system</a>
+for more information on HAL files.
+
+\section coding Coding guidelines
+
+BeRTOS assumes that the BeRTOS source directory and the project's root directory
+(as indicated above) are in the include path.
+This means that you should include configuration files using "..." rather than
+<...> style, otherwise you will use default configuration values instead of
+your project's values.
+
+Also, you should change configuration settings using the Wizard. This is because
+sometimes there are more actions to be done than simply changing a define
+value.
+
+
+*/
+
+
 /*!
  * \defgroup drivers BeRTOS peripherals drivers
  *
@@ -84,3 +151,24 @@ int main()
  * This section describes the kernel facilities and the synchronization
  * primitives available in BeRTOS.
  */
+
+/*!
+ * \defgroup mware Middleware facilities
+ *
+ * This section describes various algorithms and standalone code
+ * useful in day to day programming.
+ */
+
+/*!
+ * \defgroup graphics General purpose graphical routines
+ *
+ */
+
+/*!
+ * \defgroup gui BeRTOS GUI toolkit
+ *
+ */
+
+/*!
+ * \defgroup struct Embedded optimized general purpose data types
+ */