If you file a tracker ticket on the SF project and attach a self-contained
and reduced reproducing example along with what you did (exact build
commands), what you saw, and what you expected to see, I'll take a look.
Don't send any questions or code to me personally unless I've invited you
to do so, or you've contracted with me for support (which would be a
different email address).

Read ESR's "smart questions" document, and please be very accurate and
concise with what you provide.  In the first email you say it failed with
medium model; in this new one you say it works with medium model and fails
with large model.  If, like #342, what you provide does not allow me to
reproduce the problem in a few minutes effort I'm going to consider it a
problem with your code or environment, and I don't provide support for that
for free.

Note that I probably don't have whatever LCD hardware you're targeting, so
you'll have to make it reproducible with something that produces serial
output (via printf).

Peter

On Fri, Mar 15, 2013 at 7:42 AM, Nils Faerber <
nils.faer...@kernelconcepts.de> wrote:

> Hello Peter!
> Thanks for taking care of the problem!
>
> See more comments below...
>
> Am 15.03.2013 12:48, schrieb Peter Bigot:
> > On Fri, Mar 15, 2013 at 3:07 AM, Daniel Sulik <d...@meta-designs.com
> > With respect to Nils' problem: I also tried creating a file with the
> > declaration in this thread under different memory models and can see no
> > obvious issue.  More information would be needed, but first keep in mind
>
> Hmm... this is strange since I can reproduce this reliably - compile
> with "medium" and it works, compile using "large" and it fails.
>
> I will have a look at the map file tonight, maybe I can spot a
> difference in the output addresses.
>
> If you allow I could also tar my current code together and send it to
> you? It is a pretty simple test program... I do not expect you to fix it
> of course ;) I just thought it might be easier so that we have the same
> code base and maybe you can more easily spot the difference (and donÄt
> have to write test code youself).
>
> > the following two pieces of information, mentioned several times in the
> > archives of this list (which should always be reviewed before asking for
> > help: see http://www.catb.org/esr/faqs/smart-questions.html):
> >
> > * large memory model is not robust, and caused a lot of difficulty due
> > to problems described at
> >
> https://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Design#Warning_about_Mixing_Memory_Models
> .
> > I'm not sure whether there are any known problems with it beyond
> > https://sourceforge.net/p/mspgcc/bugs/345/.  I don't personally large
> > memory mode.  I am unaware of any issues with medium memory mode.
>
> Well, medium works for me, at least concerning the application running
> or not issue. But I will need large soon I guess, once I include static
> font bitmaps etc.
>
> > * msp430-gdb is out of date and unmaintained.  If it tells you anything
> > helpful, that's great.  If it lies to you, don't be surprised.  If it
> > tells you:
> >
> >   (gdb) x/bx 0x1c00
> >   0x1c00: 0x00
> >   0x1c01: 0x04
> >   0x1c02: 0x00
> >
> > well, maybe it's so, maybe it isn't.  Use mspdebug to dump the memory as
> > bytes; mspdebug normally tells the truth.  If the data is not what you
> > expected, look at the generated assembly to see how it got that way.  If
> > you still think there's a problem, file a ticket, but provide enough
> > information that I can help you.
>
> Well, while this might also be true, i.e. mspgdb lying, my second proof
> for the wring data is that as soon as I see the wrong data the attached
> LCD also does not perform the expected function, as soon as the data is
> reported correctly the LCD does what it should.
> So in this case I assume GDB is telling the truth here.
>
> > Peter
> >
> >
> >     Adding static qualifier fixes the issue,
> >     although I am convinced there is a bug in mcpgcc compiler.
> >     I experienced the same problem on msp430-gcc (GCC) 4.7.0 20120322
> >
> >     WRT 20-bit support in msp430-gcc (GCC) 4.7.0 20120322 my code seems
> >     to work
> >     OK for me so far.
> >     I am targeting  MSP430F2417 and MSP430F2618 with
> -mmemory-model=large.
> >
> >     Good luck
> >     Dan
> >     >-----Original Message-----
> >     >From: Nils Faerber [mailto:nils.faer...@kernelconcepts.de
> >     <mailto:nils.faer...@kernelconcepts.de>]
> >     >Sent: 15 March 2013 01:13
> >     >To: mspgcc-users@lists.sourceforge.net
> >     <mailto:mspgcc-users@lists.sourceforge.net>
> >     >Subject: [Mspgcc-users] Weird behavior - 'const' changes byte
> order!?
> >     >
> >     >Hello!
> >     >I am just starting my travel through MSP and GCC wonderland, so
> >     excuse me
> >     if
> >     >this is a really dumb question...
> >     >
> >     >I have just compiled my own toolchain (running Debian Linux
> "unstable"
> >     >on amd64) and am now using
> >     >       msp430-gcc (GCC) 4.7.0 20120322 (mspgcc dev 20120911) on a
> >     >msp430f5438a (-mmcu=msp430f5438a).
> >     >
> >     >I have a small program which I translate using
> "-mmemory-model=medium".
> >     >Inside the program I have the following (global) declaration:
> >     >
> >     >#define LCD_CLEAR_CMD          0x04
> >     >static unsigned char LCD_CLEAR_COMMAND[] = {LCD_CLEAR_CMD, 0x00,
> 0x00};
> >     >
> >     >When I compile it this way, attach GDB to mspdebug then I can see
> that
> >     >LCD_CLEAR_COMMAND ends up at address 0x1c00 - fine. BUT at 0x1c00 I
> >     find
> >     >the following content:
> >     >
> >     >(gdb) x/bx 0x1c00
> >     >0x1c00:        0x00
> >     >0x1c01:        0x04
> >     >0x1c02:        0x00
> >     >
> >     >which is wrong, it should be 0x04 0x00 0x00 !?
> >     >
> >     >If I declare it as const:
> >     >
> >     >static const unsigned char LCD_CLEAR_COMMAND[] = {LCD_CLEAR_CMD,
> 0x00,
> >     >0x00};
> >     >
> >     >it ends up in another segment at 0x62f6 and the content is correct:
> >     >
> >     >(gdb) x/bx 0x62f6
> >     >0x62f6 <LCD_CLEAR_COMMAND>:    0x04
> >     >0x62f7 <LCD_CLEAR_COMMAND+1>:  0x00
> >     >0x62f8 <LCD_CLEAR_COMMAND+2>:  0x00
> >     >
> >     >What is going on here? Or am I doing something wrong or unexpected
> >     here?
> >     >Well, defining it const might make sense anyway, but I would expect
> the
> >     other
> >     >way at least to work too, even if suboptimal.
> >     >
> >     >
> >     >Another severe issue is that as soon as I compile the application
> >     to use
> >     >20 bit data (-msd20) or use -mmemory-model=large the controller
> >     enters an
> >     >uncontrollable state after reset, i.e. mspdebug wrongly reports a
> blown
> >     fuse and
> >     >it can be recovered pressing and holding the reset button on the
> >     msp board
> >     and
> >     >releasing the button as soon as mspdebug tries to open the device.
> >     >
> >     >Sooner or later I will have to use the 20 bit data area - as you
> >     can guess
> >     from the
> >     >above command I am using a LCD and need to store fonts and some
> >     bitmaps...
> >     >
> >     >Did anyone else already successfully use 20 bit data with mspgcc?
> >     >
> >     >I should probably also mention that "large" did work in the
> >     beginning as
> >     long as
> >     >the application was *really* small. When it grew a little (I am now
> >     at #
> >     msp430-
> >     >size gccfwtest.elf
> >     >   text           data     bss     dec     hex filename
> >     >   1845              0    1348    3193     c79 gccfwtest.elf
> >     >) it started to go haywire.
> >     >
> >     >
> >     >Strange strange...
> >     >
> >     >Cheers
> >     >  nils
> >     >
> >     >--
> >     >kernel concepts GmbH      Tel: +49-271-771091-12
> >     >Sieghuetter Hauptweg 48
> >     >D-57072 Siegen            Mob: +49-176-21024535
> >     >http://www.kernelconcepts.de
> >     >
> >
> >---------------------------------------------------------------------------
> >     ---
> >     >Everyone hates slow websites. So do we.
> >     >Make your web apps faster with AppDynamics Download AppDynamics
> >     Lite for
> >     >free today:
> >     >http://p.sf.net/sfu/appdyn_d2d_mar
> >     >_______________________________________________
> >     >Mspgcc-users mailing list
> >     >Mspgcc-users@lists.sourceforge.net
> >     <mailto:Mspgcc-users@lists.sourceforge.net>
> >     >https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> >
> >
> >
> ------------------------------------------------------------------------------
> >     Everyone hates slow websites. So do we.
> >     Make your web apps faster with AppDynamics
> >     Download AppDynamics Lite for free today:
> >     http://p.sf.net/sfu/appdyn_d2d_mar
> >     _______________________________________________
> >     Mspgcc-users mailing list
> >     Mspgcc-users@lists.sourceforge.net
> >     <mailto:Mspgcc-users@lists.sourceforge.net>
> >     https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> >
> >
>
>
> Viele Grüße
>   nils faerber
>
> --
> kernel concepts GmbH       Tel: +49-271-771091-12
> Sieghuetter Hauptweg 48
> D-57072 Siegen             Mob: +49-176-21024535
> http://www.kernelconcepts.de
>
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to