/* 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 . */ /** * @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.
* The matter is very different if you are going to integrate the OS into * a different runtime framework or want to use a different build system, * in that case you have the problem to integrate the OS source code into * your application. * *

What this guide does not cover

* 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. * . * *

Article Index

* - @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 ./os/kernel/src, 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 * ./os/@/@. 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 ./os/kernel/include. * - The port layer headers * ./os/@/@. * . * @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 ./os/hal/src, 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 * ./os/hal/platforms/@. * - All the source files contained under * ./boards/@. * . * You also need to add to the compiler options the following paths for * searching header files: * - The portable HAL headers ./os/hal/src. * - The platform layer headers * ./os/hal/platforms/@. * - The board description headers * ./boards/@. * . */