Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#88 C++ Example- Incorrect Interrupt Handler

Next release
closed-fixed
5
2014-04-12
2014-02-19
Tom Moxon
No

When creating a C++ Example project, the "weak" attribute of the Interrupt Vectors
is not honored? The Example LED blink project uses the SysTick_Handler, and the debugging
screenshot included shows that it uses the handler from vectors_stm32f10x.c and not the
one from main.cpp, as expected.

Eclipse IDE for Automotive Software Developers 2.0.1.20130919-0803
epp.package.automotive null
GNU ARM C/C++ Cross Compiler Support 1.8.1.201402180751 ilg.gnuarmeclipse.managedbuild.cross.feature.group Liviu Ionescu
GNU ARM C/C++ STM32Fx Project Templates 1.7.2.201402180751 ilg.gnuarmeclipse.templates.stm.feature.group Liviu Ionescu
GNU ARM J-Link Debugging Support 1.4.2.201402180751 ilg.gnuarmeclipse.debug.gdbjtag.jlink.feature.group Liviu Ionescu

1 Attachments

Discussion

    • status: open --> open-accepted
     
  • thank you Tom, for your report, you are right, the C++ versions of the templates require an extra extern "C" for the local definition.

    I'll fix it soon.

     
  • I added the extern "C" to all templates.

    a new beta release is available from

    http://gnuarmeclipse.sourceforge.net/updates-test

    could you test it?

     
    • Tom Moxon
      Tom Moxon
      2014-02-19

      Liviu,

      I've attached the templates I use, they also have the same Doxygen patterns
      as the STM32_periph_lib...

      ;-) Tom Moxon

       
      Last edit: Liviu Ionescu (ilg) 2014-02-19
      • Tom Moxon
        Tom Moxon
        2014-02-19

        Liviu,

        Sure, I can do that after I get out of my next meeting.

        ;-) Tom

         
        Last edit: Liviu Ionescu (ilg) 2014-02-19
        Attachments
        • Tom Moxon
          Tom Moxon
          2014-02-19

          Liviu,

          It's Fixed!

          tested on :
          STM3210E-Eval board, using GDB TCP/IP , ST-LinkV2 JTAG interface with
          ST-Util server, and :

          Eclipse IDE for Automotive Software Developers 2.0.1.20130919-0803
          epp.package.automotive null
          GNU ARM C/C++ Cross Compiler Support 1.8.2.201402191401
          ilg.gnuarmeclipse.managedbuild.cross.feature.group Liviu Ionescu
          GNU ARM C/C++ Freescale Project Templates 1.2.2.201402191401
          ilg.gnuarmeclipse.templates.freescale.feature.group Liviu Ionescu
          GNU ARM C/C++ STM32Fx Project Templates 1.7.2.201402191401
          ilg.gnuarmeclipse.templates.stm.feature.group Liviu Ionescu
          GNU ARM J-Link Debugging Support 1.4.2.201402191401
          ilg.gnuarmeclipse.debug.gdbjtag.jlink.feature.group Liviu Ionescu
          GNU ARM OpenOCD Debugging Support 1.1.1.201402191401
          ilg.gnuarmeclipse.debug.gdbjtag.openocd.feature.group Liviu Ionescu

          best regards,
          Tom Moxon

           
          Last edit: Liviu Ionescu (ilg) 2014-02-19
          • ok, great.

            I took a look at your templates, they are interesting, but I'm not sure I understand them. where do you get the substitution content?

             
  • one more detail Tom, I don't know how you post to this tracker, but please no longer quote the long original messages, the SourceForge system keeps track of them anyway and I have to manually edit each post to get rid of the quoted text.

     
    • Tom Moxon
      Tom Moxon
      2014-02-19

      but please no longer quote the long original message
      Apologies, I'm not used to this format yet...

      I took a look at your templates ... where do you get the substitution
      content?
      You would import them as templates, and when you do a "new -> file from
      template"
      Eclipse will fill in the content based on the current environment settings.
      It automatically creates the guards, etc. based on the file name/root, etc.
      It saves a lot of verbose/repeated typing...

      ;-) Tom Moxon

       
      Last edit: Tom Moxon 2014-02-19
      • You would import them as templates, and when you do a "new -> file from
        template"

        ah, ok, so these are file templates, not project templates.

         
  • Apologies, I'm not used to this format yet...

    please use the SourceForge web pages to access this tracker

     
  • Tom Moxon
    Tom Moxon
    2014-02-20

    please use the SourceForge web pages to access this tracker

    Yes, I'm doing that now, I was replying via email before -
    (which included the entire conversation...)

    Yes, the templates attached are file templates that include
    the extern definition for C++, as well as the Doxygen comment
    format used by the STM32_Perip_Lib -
    so when you generate your project documentation
    you can include all the library functions
    with a consistent format...

    BTW, I'm also happy to help with testing,
    I have many of the different devices on development boards
    as well as several different JTAG pods.
    (I've tested ST-LinkV2, and Segger J-Link,
    and I'm working on getting a Pod supported by OpenOCD.

    I need to learn how to do the project templates next,
    if you have any pointers to good articles on learning that
    I would appreciate it.

    best regards,
    Tom Moxon
    http://www.patternagents.com
    http://www.moxon.com

     
    • BTW, I'm also happy to help with testing,

      thank you Tom, nice to hear this.

      project templates ... pointers to good articles

      unfortunately the official Eclipse documentation is scarce. in addition, I had to add many custom processes to make my projects templates.

      the best source of info are the source files.

       
  • Tom, since you offered to contribute some testing, I would appreciate your comments on the new structure of the projects generated by the templates.

    I created a new tracker for discussions on beta versions, please take a look there and maybe send some feedback there.

    https://sourceforge.net/p/gnuarmeclipse/beta-versions/

     
    • status: open-accepted --> closed-fixed
     
  • fixed in 2.2.1-201404120702