/* ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /** * @page article_integrationguide Integration Guide * All the delivered ChibiOS/RT demos are stand alone applications so if * you just start your application from an existing demo there isn't any * integration effort, you are simply using the existing makefiles, the * default startup files etc, minimal effort.<br> * The matter is very different if you are going to integrate the OS into * a different runtime framework or if you want to use a different build * system, in that case you have the problem to integrate the OS source * code into your application. * * <h2>What this guide does not cover</h2> * This guide has a limited scope, the following topics are handled elsewhere: * - Porting the OS to different architectures or different compilers is * not covered in this guide, see @ref article_portguide instead. * - This guide does not describe any specific environment or development * tool, it is assumed you already know in detail the environment you * want to work with. * . * * <h2>Article Index</h2> * - @ref integrationguide_kernel * - @ref integrationguide_hal * . * @section integrationguide_kernel Integrating the Kernel * This section covers the scenario where you want to use the ChibiOS/RT * kernel into an existing application. In order to accomplish this you need * to import in your project two components: * - The portable kernel. * - The port layer for your microcontroller. * . * See the @ref architecture for more details. * You need to add the following files to your build process: * - All the source files contained under <tt>./os/kernel/src</tt>, note that * you should add all of them even if you don't plan to use some of the * subsystems. Unused subsystems can be excluded from the kernel * configuration file @p chconf.h. * - All the source files contained under * <tt>./os/ports/<i>@<compiler@></i>/<i>@<architecture@></i></tt>. * Note that those could be both C source files and assembler source files * and that some architectures have an extra directories layer containing * files required for a specific platform. * . * You also need to add to the compiler options the following paths for * searching header files: * - The portable kernel headers <tt>./os/kernel/include</tt>. * - The port layer headers * <tt>./os/ports/<i>@<compiler@></i>/<i>@<architecture@></i></tt>. * . * @section integrationguide_hal Integrating the HAL * If, in addition to the kernel as described in the previous section, you also * need to integrate the HAL into your application you also need to import * the following components: * - HAL portable files. * - Platform specific files. * . * See the @ref architecture for more details. * You need to add the following files to your build process: * - All the source files contained under <tt>./os/hal/src</tt>, note that * you should add all of them even if you don't plan to use some of the * subsystems. Unused drivers can be excluded from the HAL configuration * file @p halconf.h. * - All the source files contained under * <tt>./os/hal/platforms/<i>@<platform@></i></tt>. * - All the source files contained under * <tt>./boards/<i>@<board_model@></i></tt>. * . * You also need to add to the compiler options the following paths for * searching header files: * - The portable HAL headers <tt>./os/hal/include</tt>. * - The platform layer headers * <tt>./os/hal/platforms/<i>@<platform@></i></tt>. * - The board description headers * <tt>./boards/<i>@<board_model@></i></tt>. * . */