#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

  • Liviu Ionescu (ilg)

    • status: open --> open-accepted
     
  • Liviu Ionescu (ilg)

    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.

     
  • Liviu Ionescu (ilg)

    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
        • 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
          • Liviu Ionescu (ilg)

            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?

             
  • Liviu Ionescu (ilg)

    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
      • Liviu Ionescu (ilg)

        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.

         
  • Liviu Ionescu (ilg)

    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

     
    • Liviu Ionescu (ilg)

      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.

       
  • Liviu Ionescu (ilg)

    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/

     
  • Liviu Ionescu (ilg)

    • status: open-accepted --> closed-fixed
     
  • Liviu Ionescu (ilg)

    fixed in 2.2.1-201404120702