Re: [Mspgcc-users] Inconsistent d16/d20 attributes

2013-09-09 Thread Peter Bigot
C++ has never been officially supported by mspgcc, and this appears to
require a change to the compiler rather than simple header modification:
C++ apparently does something unexpected with attribute merges.

I've confirmed the behavior.  Please enter this as a bug at
https://sourceforge.net/p/mspgcc/bugs/.  If there is another mspgcc release
I'll may be able to fix it then.

Peter


On Mon, Sep 9, 2013 at 2:45 PM, Andrew Wygle awy...@berkeley.edu wrote:

 After further investigation, I discovered that this code is actually being
 compiled as C++. This explains the difference in our experience, but not
 the error itself. A minimally reproducible example:

 #include msp430.h
 #include stdint.h

 int main(int argc, char *argv[]) {
 uint8_t addr = 0x02;
 P4OUT |= addr;
 return 0;
 }

 Compiled with:

 msp430-g++ -mmcu=msp430fr5969 -c error.cpp -Os





 On Fri, Sep 6, 2013 at 11:35 AM, Peter Bigot big...@acm.org wrote:

 I'm unable to duplicate that with the following program using msp430-gcc
 -Os -mmcu=msp430fr5969 -c x.c and similar variants.

 The attributes are documented at
 https://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Designbut
  it should not be necessary for you to be aware of them for this sort of
 code.

 Peter

 #include msp430.h
 #include stdint.h

 extern uint8_t v;

 int doit ()
 {
   P4OUT |= v;
   return 1;
 }



 On Fri, Sep 6, 2013 at 12:14 PM, Andrew Wygle awy...@berkeley.eduwrote:

 Hello all,

 I'm new to this list, I've been using mspgcc to develop for the new
 MSP430FR5969 (the 64k FRAM MSP), and I recently ran into an error when
 trying to assign to port 4 of that device.

 The line of code is:
 P4OUT |= var;
 where var is an 8-bit unsigned integer less than 8 in this particular
 case.

 The reported error is:
 error: merged types have inconsistent d16/d20 attributes.

 This would seem to indicate some kind of data type width error. This is
 born out by the fact that if I change var to be an unsigned 16-bit
 integer,
 the assignment works just fine. However, P4 should be an 8-bit (byte)
 wide
 port. I'd never seen the d16/d20 notation before, and I wasn't able to
 find
 any information on it through Google, so I'd like to hopefully understand
 what I'm doing wrong and why I'm seeing this error.

 Thanks for the assistance.

 ~Andrew Wygle


 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft
 technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!

 http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk
 ___
 Mspgcc-users mailing list
 Mspgcc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mspgcc-users




--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk___
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users


Re: [Mspgcc-users] Inconsistent d16/d20 attributes

2013-09-06 Thread Peter Bigot
I'm unable to duplicate that with the following program using msp430-gcc
-Os -mmcu=msp430fr5969 -c x.c and similar variants.

The attributes are documented at
https://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Designbut
it should not be necessary for you to be aware of them for this sort
of
code.

Peter

#include msp430.h
#include stdint.h

extern uint8_t v;

int doit ()
{
  P4OUT |= v;
  return 1;
}



On Fri, Sep 6, 2013 at 12:14 PM, Andrew Wygle awy...@berkeley.edu wrote:

 Hello all,

 I'm new to this list, I've been using mspgcc to develop for the new
 MSP430FR5969 (the 64k FRAM MSP), and I recently ran into an error when
 trying to assign to port 4 of that device.

 The line of code is:
 P4OUT |= var;
 where var is an 8-bit unsigned integer less than 8 in this particular case.

 The reported error is:
 error: merged types have inconsistent d16/d20 attributes.

 This would seem to indicate some kind of data type width error. This is
 born out by the fact that if I change var to be an unsigned 16-bit integer,
 the assignment works just fine. However, P4 should be an 8-bit (byte) wide
 port. I'd never seen the d16/d20 notation before, and I wasn't able to find
 any information on it through Google, so I'd like to hopefully understand
 what I'm doing wrong and why I'm seeing this error.

 Thanks for the assistance.

 ~Andrew Wygle


 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk
 ___
 Mspgcc-users mailing list
 Mspgcc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mspgcc-users


--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk___
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users