Darius Galis’s reputation

Darius Galis's reputation

Total 426
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+1
May 17, 2016 Commented Hello Adam, Thank you for choosing the GNUARM-NONE-EABI toolchain. Yes, the GNUARM-NONE-EABI toolchain allows the user to map portions of the code and data into particular pages of internal memory. The documentation which describe how to write your linker script can be found in the toolchain installation folder > Documentation > GNU Manuals > Using ld > 3. Linker Scripts. If you don't like the default implementation, you can write your own linker script as shown in the 3.3 sub-chapter: Simple Linker Script Example. Another solution for mapping portions of code in particular memory regions is provided by the __attribute__ ((section ("section-name"))) keyword. You will find the documentation for this attribute in your toolchain installation folder > Documentation > GNU Manuals > Using gcc > 6.30 Declaring Attributes of Functions > section ("section-name"). By default, all of your written code goes the .text section, but E2studio allows you to create your own sections in the memory regions of your choosing. You can see the memory sections used by your project by right-clicking it > Renesas Tool Settings -> Linker -> Sections. There, at the Section tab, you can add more sections by clicking the third button (Add section) below the Section Viewer label. By clicking it, a new section (named section1) is automatically created and then you can set its details in the right panel: name, starting address, etc. Then, by using the attribute __attribute__ ((section ("section-name"))) keyword for any declared variable or function, it will map that variable/function in your 'section1' defined section. If you have any more questions, or you require any help with the script, please let us know. — Best regards, Darius, The GNU Tools Support Team
+1
May 12, 2016 Commented Hi Adam, Thank you for your feedback! The documentation I sent is surely for libstdc++. The toolchain is not using glibc which is specific to the native compilers (you can find more about it here: https://www.gnu.org/software/libc/documentation.html ), instead it is using newlib/optlib which are just C libraries specifically designed for embedded systems. The C++ components are part of libstdc++ which comes as a GCC element. >> "Although the code links and runs OK without any documentation it is difficult to know if this is correct." This linker error is a known issue with the v14.02 toolchain which was later fixed in v15.01. Therefore, it is recommended to upgrade to v15.01, or to the latest v16.01 toolchain. Please note that while using the '-mfpu' option, the parameter recommended is vfpv3, i.e. "-mfpu=vfpv3" By default, only 'vfp' is passed which is now obsolete, please see the following link: https://wiki.debian.org/ArmHardFloatPort/VfpComparison Therefore, for the default project which is for Cortex-A9 target based on the armv7-a architecture, please change the settings in e2 studio as follows: Properties -> C/C++ Build -> Settings -> CPU -> Target FPU (-mfpu) -> vfpv3 from drop down list This will set the library archive path to (only for v15.01 and above): "${TCINSTALL}/arm-none-eabi/lib/armv7-ar/thumb/fpu" "${TCINSTALL}/lib/gcc/arm-none-eabi/${GCC_VERSION}/armv7-ar/thumb/fpu" "${CONFIGDIR}" Please note that the GNUARM-NONE v15.01 toolchain supports additional target specific multi-libs. e2 studio v4.1.x onwards, "Linker > Archive > Archive search directory" has been modified based on the combination of Architecture, CPU type, Floating-point ABI, Target FPU, Interwork, Endian and Instruction set (from GNUARM-NONE v15.01 toolchain onwards). For the GNUARM-NONE toolchain v14.02 or lower, Linker > Archive > "Archive search directory" will not be modified based on the target specific options. In this case, the paths will be same as in e2 studio v4.0.x. For additional details, please refer E2 studio > Help > Help Contents > e2 studio Tutorial > e2studio Tutorial – KPIT GNU Toolchains > (refer the bottom of the tutorial) GNUARM-NONE TOOLCHAIN MULTI-LIBS > o Archive search directories based on Architecture, Floating-point ABI, Target FPU, Interwork, Endian and Instruction set o Difference in Archive search directories with respect to toolchain version and '-mthumb-interwork' — Kind regards, Darius The GNU Tools Support Team
+10
May 10, 2016 Answered
+1
May 5, 2016 registration
Support