From 1df1148bae961ffbf4ea60da3981bf23b9924920 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 8 Apr 2016 14:29:49 -0600 Subject: [PATCH] STM3220G-EVAL: Update README.txt file describing how to build using the IAR toolchain --- configs/stm3220g-eval/README.txt | 84 ++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/configs/stm3220g-eval/README.txt b/configs/stm3220g-eval/README.txt index d1d9b8f34c..40c57d5c11 100644 --- a/configs/stm3220g-eval/README.txt +++ b/configs/stm3220g-eval/README.txt @@ -185,6 +185,90 @@ IDEs one time from the Cygwin command line in order to obtain the pre-built startup object needed by RIDE. + Export nuttx to IAR or uVision workspace + ---------------------------------------- + The script nuttx/toos/ide_exporter.py will help to create nuttx project in + these IDEs. Here are few simple the steps to export the IDE workspaces: + + 1) Start the NuttX build from the Cygwin command line before trying to + create your project by running: + + make V=1 |& tee build_log + + This is necessary to certain auto-generated files and directories that + will be needed. This will provide the build log to construct the IDE + project also. + + 2) Export the IDE project base on that make log. The script usage: + + usage: ide_exporter.py [-h] [-v] [-o OUT_DIR] [-d] build_log {iar,uvision_armcc,uvision_gcc} template_dir + + positional arguments: + build_log Log file from make V=1 + {iar,uvision_armcc,uvision_gcc} + The target IDE: iar, uvision_gcc, (uvision_armcc is experimental) + template_dir Directory that contains IDEs template projects + + optional arguments: + -h, --help show this help message and exit + -v, --version show program's version number and exit + -o OUT_DIR, --output OUT_DIR + Output directory + -d, --dump Dump project structure tree + + Example: + cd nuttx + make V=1 |& tee build_log + + ./tools/ide_exporter.py makelog_f2nsh_c iar ./configs/stm3220g-eval/ide/template/iar -o ./configs/stm3220g-eval/ide/nsh/iar + + or + + ./tools/ide_exporter.py makelog_f2nsh_c uvision_gcc ./configs/stm3220g-eval/ide/template/uvision_gcc/ -o ./configs/stm3220g-eval/ide/nsh/uvision + + 3) Limitations: + - iar supports C only. Iar C++ does not compatible with g++ so disable + C++ if you want to use iar. + - uvision_armcc : nuttx asm (inline and .asm) can't be compiled with + armcc so do not use this option. + - uvision_gcc : uvision project that uses gcc. Need to specify path to + gnu toolchain. + In uVison menu, select: + + Project/Manage/Project Items.../FolderExtension/Use GCC compiler/ PreFix, Folder + + 4) Template projects' constrains: + - mcu, core, link script shall be configured in template project + - Templates' name are fixed: + - template_nuttx.eww : iar nuttx workspace template + - template_nuttx_lib.ewp : iar nuttx library project template + - template_nuttx_main.ewp : iar nuttx main project template + - template_nuttx.uvmpw : uVision workspace + - template_nuttx_lib.uvproj : uVision library project + - template_nuttx_main.uvproj : uVision main project + - iar: + - Library option shall be set to 'None' so that iar could use nuttx libc + - __ASSEMBLY__ symbol shall be defined in assembler + - uVision_gcc: + - There should be one fake .S file in projects that has been defined __ASSEMBLY__ in assembler. + - In Option/CC tab : disable warning + - In Option/CC tab : select Compile thump code (or Misc control = -mthumb) + - template_nuttx_lib.uvproj shall add 'Post build action' to copy .a file to .\lib + - template_nuttx_main.uvproj Linker: + - Select 'Do not use Standard System Startup Files' and 'Do not use Standard System Libraries' + - Do not select 'Use Math libraries' + - Misc control = --entry=__start + + 5) How to create template for other configurations: + 1) uVision with gcc toolchain: + - Copy 3 uVision project files + - Select the MCU for main and lib project + - Correct the path to ld script if needed + 2) iar: + - Check if the arch supportes iar (only armv7-m is supprt iar now) + - Select the MCU for main and lib project + - Add new ld script file for iar + NuttX EABI "buildroot" Toolchain ================================