bugAVR C Runtime Library - Bugs: bug #37104, ATtiny5/9/10/20/40 interrupt...

 
 

bug #37104: ATtiny5/9/10/20/40 interrupt wrapper uses invalid register

Submitted by:  Jonathan Oakley <jro_at_team>
Submitted on:  Wed 15 Aug 2012 09:36:16 AM UTC  
 
Category: LibrarySeverity: 3 - Normal
Priority: 5 - NormalItem Group: Unknown
Status: InvalidPercent Complete: 0%
Assigned to: Joerg Wunsch <joerg_wunsch>Open/Closed: Closed
Release: 1.8.0Fixed Release: None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 16 Sep 2012 11:19:59 AM UTC, comment #4:

> Can upstream GCC not use the [ATtiny5/9/10/20/40] patches
> Atmel provides in their toolchain releases?


Atmel never proposed such patches for GCC at gcc-patches@gcc.gnu.org, at least none I am aware of.

AFAIK Atmel's toolchain is based on the GCC 4.6 release series.
These patches are pretty much outdated and must be ported to trunk (future 4.8 or later).

Without having read the 4.6 patches, I can say that they will trigger merge conflicts in many, many place if used against GCC trunk...

Georg-Johann Lay <gjlayde>
Wed 15 Aug 2012 04:04:22 PM UTC, comment #3:

I don't have access to the internal tracker at home, but this specific issue has been corrected in an internal build of the toolchain and should be released soon.

Joerg: can upstream GCC not use the patches Atmel provides in their toolchain releases?

Dean Camera <abcminiuser>
Wed 15 Aug 2012 09:49:55 AM UTC, comment #2:

OK, I'll do that. Thanks for the prompt response, Joerg

Jonathan Oakley <jro_at_team>
Wed 15 Aug 2012 09:43:04 AM UTC, comment #1:

Function prologue/epilogue generation is a matter of GCC,
not the library.

Anyway, the official GCC sources don't support ATtiny4/5/9/10
at all. By now, this is all done in private hacks by your
toolchain vendor, so please file a bug report against your
toolchain vendor for this.

Joerg Wunsch <joerg_wunsch>
Project AdministratorIn charge of this item.
Wed 15 Aug 2012 09:36:16 AM UTC, original submission:

I'm not sure if this is the fault of the library or GCC, but the wrapper/prologue+epilogue generated for interrupt service routines by ISR(vect) uses r0 and r1, which don't exist on the ATtiny5/9/10/20/40 family (they only implement r16-r31). The result is six "register not supported" errors when the intermediate assembler file is compiled.

The only workaround I can see is to use the ISR_NAKED attribute and generate the correct wrapper yourself, which is obviously pretty tedious!

Jonathan Oakley <jro_at_team>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by gjlayde (Posted a comment)
  • -unavailable- added by abcminiuser (Posted a comment)
  • -unavailable- added by joerg_wunsch (Posted a comment)
  • -unavailable- added by jro_at_team (Submitted the item)
  •  

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 15 Aug 2012 09:43:04 AM UTCjoerg_wunschStatusNone=>Invalid
      Assigned toNone=>joerg_wunsch
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1