From 195c52c5d0f01dff4b779ba5bdca865a6ee8603d Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 21 Mar 2010 10:55:42 +0000 Subject: [PATCH] Added toolchain installation guide. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1767 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- docs/rsc/tool001.jpg | Bin 0 -> 22548 bytes docs/rsc/tool002.jpg | Bin 0 -> 47175 bytes docs/src/articles.dox | 1 + docs/src/eclipse.dox | 164 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 165 insertions(+) create mode 100644 docs/rsc/tool001.jpg create mode 100644 docs/rsc/tool002.jpg create mode 100644 docs/src/eclipse.dox diff --git a/docs/rsc/tool001.jpg b/docs/rsc/tool001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4a004fbab9e91fd9927fbc01654491c83a6d312 GIT binary patch literal 22548 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 IChZOX0}M}2r2qf` literal 0 HcmV?d00001 diff --git a/docs/rsc/tool002.jpg b/docs/rsc/tool002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..22cf726bb7a2f2b9fbce4177824238177027a106 GIT binary patch literal 47175 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 L8)@u-a0mVYna9|p literal 0 HcmV?d00001 diff --git a/docs/src/articles.dox b/docs/src/articles.dox index ea471bdb7..1ab76bbff 100644 --- a/docs/src/articles.dox +++ b/docs/src/articles.dox @@ -20,6 +20,7 @@ /** * @page articles Articles and Code Samples * ChibiOS/RT Articles and Code Examples: + * . @subpage article_eclipse * - @subpage article_create_thread * - @subpage article_interrupts * - @subpage article_wakeup diff --git a/docs/src/eclipse.dox b/docs/src/eclipse.dox new file mode 100644 index 000000000..79e60825d --- /dev/null +++ b/docs/src/eclipse.dox @@ -0,0 +1,164 @@ +/* + 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_eclipse Setting up a free embedded IDE + * @brief Free advanced embedded IDE for ChibiOS/RT + * This article will explain how to setup and use a free toolchain and use it + * with ChibiOS/RT and general embedded development. The IDE will allow you + * to: + * - Edit and reformat your source code. + * - Compile and verify errors. + * - Debug your code on the target board both in high level language and + * assembler. + * - Generate documentation from your source code. + * - Develop embedded applications with or without ChibiOS/RT. + * . + * The guide is meant mainly for Windows users but notes about Linux and + * MAC OSX are present where the setup differs, mostly the toolchain is + * exactly the same. + * + *

What this guide will not explain

+ * We will not enter in details of common system tasks like and not limited to: + * - Installing applications (unless a special procedure is required). + * - Creating desktop shortcuts. + * - Adding paths to the PATH variable. + * - Creating environment variables. + * - Any other normal PC usage task. + * . + * + *

Article Index

+ * - @ref required_components + * - @ref install_chibios + * - @ref install_compiler + * - @ref install_eclipse + * - @ref install_zylin + * - @ref install_doxygen + * - @ref install_graphviz + * - @ref install_eclox + * . + * + * @section required_components Required Components + * The first thing to do is to download all the required components, beginners + * should avoid the optional components initially: + * - A JTAG probe supporting GDB and OpenOCD, a list of compatible devices is + * available on the + * OpenOCD home page, more exactly + * here. + * - An STM32 development board (but this guide apply to all the ARM targets + * supported by ChibiOS/RT. This guide describes the Olimex STM32-P103. + * - + * ChibiOS/RT latest stable release. + * - Java runtime, you + * probably already have this installed. + * - Eclipse IDE + * for C/C++ Developers + * - YAGARTO ARM toolchain + * for Windows, note that you need both the compiler and the tools (make + * and binutils). + * - Zylin plugin for on-board debugging, see @ref install_zylin section. + * - OpenOCD binaries for Windows, YAGARTO does not provide those anymore but + * you can download them from here. This guide will describe the use with version + * 3.1 but it should apply to newer releases as well. + * - Optional, MinGW compiler, needed if you want to compile, debug + * and run the simulator from within Eclipse. Linux users do not need this + * one because all Linux distributions include the native GCC. + * - Optional, Doxygen, it is only required if you want to + * generate documentation from source files. + * - Optional, + * Graphwiz, it is only required if you want to generate diagrams + * within documentation from source files. + * - Optional, + * Eclox, it is only required if you want to generate documentation + * from source files from within Eclipse. + * . + * + * @section install_chibios ChibiOS/RT Installation + * Just unzip it into a directory in your home folder, Windows users may + * consider c:@\projects@\chibios. It is strongly suggested to not put version + * numbers into the ChibiOS/RT directory name because Eclipse workspaces + * have absolute paths inside and you don't want to setup everything again + * each time a new ChibiOS/RT version is released, use plain "chibios". + * + * @section install_compiler GCC ARM Compiler Installation + * Simply follow the YAGARTO installation guide. Linux/MACOS users have several + * other options: + * - Download the latest CodeSourcery free Linux package. + * - Build it yourself, Liam recommended a build script here: + * http://github.com/esden/summon-arm-toolchain, it looks interesting. + * . + * Make sure that the compiler binaries directory is listed in the PATH + * variable or Eclipse would not be able to locate it. + * + * @section install_eclipse Eclipse Installation + * Eclipse is distributed into a compressed archive, there is no installation + * procedure: + * - Verify if you have Java installed, if not install the runtime. You may + * verify this using the command: java -version. Make sure you have at + * least version 1.6. + * - Create an eclipse directory in your home and unpack the archive there. + * Windows users may unpack it into c:@\program files@\eclipse. + * - Create a desktop shortcut or other way to launch the Eclipse executable + * easily. + * - Launch Eclipse. + * - Eclipse will ask you a directory for its initial workspace, make it point + * to the ChibiOS/RT root directory (you may have as many workspaces you + * want, keep this for later), make sure to select the check box or it will + * ask you again each time. + * @image html tool001.jpg + * - Now you should see the welcome screen, close it and you will be in the + * normal C/C++ perspective. + * - Unselect "Project->Build Automatically" unless you like insanity. + * - Disable the "usage collector" in Window->Preferences->Usage_Data_Collector + * by unselecting "Enable capture". + * - If you are behind a proxy or firewall (corporate users usually are) + * configure the correct parameters in Window->Preferences->General->Network_Connections. + * - Let Eclipse auto update to the latest version Help->Check_for_Updates. + * . + * + * @section install_zylin Zylin Plugin Installation + * Eclipse requires an hardware debugger component in order to perform on board + * execution and debug. + * - Open Eclipse, then help->Install_New_Software... + * - Press the "Add..." button and put http://opensource.zylin.com/zylincdt + * into the location field, then press OK. The Zylin plugin will appear in the + * available plugins view, select and install it. + * @image html tool002.jpg + * . + * + * @section install_doxygen Doxygen Installation + * Just use the installer, Linux users probably have Doxygen already available + * from the repositories. Make sure that the Doxygen binaries directory + * is listed in the PATH variable or Eclipse would not be able to locate it. + * + * @section install_graphviz Graphviz Installation + * Just use the installer, Linux users probably have Graphviz already available + * from the repositories. Make sure that the Graphviz binaries directory + * is listed in the PATH variable or Doxygen would not be able to locate it. + * + * @section install_eclox Eclox Installation + * Use the same installation steps used for the Zylin plugin except use the + * URL http://download.gna.org/eclox/update. Install "Eclox" not "Eclox Hot". + * After installing Eclox you will be able to compile Doxygen documentation + * using the button with the blue @@ inside. + */