Hi,

I'm the reporter of the same issue, mentioned in [1].
I confirm that adding -fdata-sections is causing the errors.

Any update?

best regards,
Pieter

On 02/24/13 16:40, Martin Zoller wrote:
I'm using the tp-freeforall/prod repository. To avoid any doubt I retested it on a new clone of the repository.
To the Makefile of Blink I added:
  CFLAGS += -ffunction-sections -fdata-sections

As far as I understand, the problem is caused by the MSP430REG_NORACE_EXPAND macro in msp430hardware.h: It generates asm statements which reference a memory address, rather than a symbol. Unfortunately I don't know enough about macros to be able to fix this right now.

However I've noticed that only -fdata-sections is troublesome, and -ffunction-sections works fine. So by using
  CFLAGS += -Wl,--section-start=.text=0xBC00
  CFLAGS += -ffunction-sections -mdata-region=far
  LDFLAGS += -Wl,--gc-sections
I can achieve my goal of splitting the app into a "near" and a "far" part without wasting memory in between. Of course this only works as long as the "far" part is larger than the data section. Note that my app's "near" part starts at 0xBC00; the lower 30k of flash are used by a bootloader and a second app.


Martin

On 02/23/2013 12:57 AM, Eric Decker wrote:

I've built Blink for near memory using 4.7 without problem for a 5437a. I've also build Blink for the telosb without problems.

I haven't tried different memory models.

Not sure what exactly martin is using...   ie.   what source tree.

The current new msp430 core code can be obtained via git from https://github.com/tp-freeforall/prod

On Fri, Feb 22, 2013 at 9:58 AM, Peter Bigot <big...@acm.org <mailto:big...@acm.org>> wrote:

    Figure out why those asm statements are getting emitted and
    replace it with
    something that references a linker symbol like __P3OUT and __P4OUT.

    I believe Eric Decker was looking into reworking the MSP430 port
    support in
    TinyOS to fix this.

    Peter

    On Fri, Feb 22, 2013 at 11:49 AM, Martin Zoller
<martin.zol...@tinynode.com <mailto:martin.zol...@tinynode.com>>wrote:

> Hi,
> I'm experimenting with the -ffunction-sections and -fdata-sections
> parameters of mspgcc.
> The goal is to split a TinyOS application between near and far flash
> memory using the large memory model. If I do this without
    special compile
> parameters, only a small amount of code ends up in the .text section
> (presumably the ISRs), and the rest is put in .far.text, rather than
> filling up .text first.
>
> Now unfortunately -ffunction-sections and -fdata-sections seem to be
> broken in mspgcc 4.7.0 20120911.
> For example, if I compile the TinyOS Blink application for
    telosb with
> them, I get:
>
> /tmp/ccb7btaA.s:1220: Error: Missing symbol name in directive
> /tmp/ccb7btaA.s:1220: Error: junk at end of line, first unrecognized
> character is `x'
> /tmp/ccb7btaA.s:1221: Error: expected comma after name `' in .size
> directive
> /tmp/ccb7btaA.s:1222: Error: junk at end of line, first unrecognized
> character is `0'
> /tmp/ccb7btaA.s:1224: Error: Missing symbol name in directive
> /tmp/ccb7btaA.s:1224: Error: junk at end of line, first unrecognized
> character is `x'
> /tmp/ccb7btaA.s:1225: Error: expected comma after name `' in .size
> directive
> /tmp/ccb7btaA.s:1226: Error: junk at end of line, first unrecognized
> character is `0'
> /tmp/ccb7btaA.s:1229: Error: Missing symbol name in directive
> ... and lots more of those.
>
> The problem is that the assembler code contains addresses instead of
> symbol names:
> .LIRD0:
>     .size    main, .-main
>     .section    .bss.0x0019,"aw",@nobits
>     .type    0x0019, @object    ;Line 1220
>     .size    0x0019, 1
> 0x0019:
>     .zero    1
>     .type    0x0019, @object
>     .size    0x0019, 1                ;Line 1225
> 0x0019:
>     .zero    1
>     .section    .bss.0x001D,"aw",@nobits
>     .type    0x001D, @object
>     .size    0x001D, 1                ;Line 1230
>
> I tried this without any special options, i.e. with memory model
    "none".
> It compiles fine on mspgcc 4.6.3 20120406.
> The thread at [1] mentions the same issue, but without a
    solution. And in
> [2] Peter suggests the problem is caused by the asm statement,
    which is
> treated differently by gcc 4.7.
> However, the code above seems to correspond to the following
    declarations
> in app.c (each appearing in several functions):
>
> static volatile uint8_t r __asm("0x0019");
> static volatile uint8_t r __asm("0x001D");
>
> So they are already static.
> Is there a known workaround for this issue?
>
>
> Thanks,
> Martin
>
> [1] - http://lists.gnu.org/archive/**html/bug-binutils/2012-10/**
>
msg00111.html<http://lists.gnu.org/archive/html/bug-binutils/2012-10/msg00111.html>
> [2] -
    http://sourceforge.net/**mailarchive/forum.php?thread_**name=**
> CAPOJ94M1tobePYig6XdJjwTVamFj1**DC2uDFyUu%3DZChzFHBApUw%**
> 40mail.gmail.com
<http://40mail.gmail.com>&forum_name=**mspgcc-users<http://sourceforge.net/mailarchive/forum.php?thread_name=CAPOJ94M1tobePYig6XdJjwTVamFj1DC2uDFyUu%3DZChzFHBApUw%40mail.gmail.com&forum_name=mspgcc-users
<http://sourceforge.net/mailarchive/forum.php?thread_name=CAPOJ94M1tobePYig6XdJjwTVamFj1DC2uDFyUu%3DZChzFHBApUw%40mail.gmail.com&forum_name=mspgcc-users>>
>
> --
>
> Martin Zoller ? Tinynode <http://www.tinynode.com/> ? System
    Architect ?
> Lausanne ? D: +41 21 510 11 81 <tel:%2B41%2021%20510%2011%2081>
    ? F: +41 21 510 11 71 <tel:%2B41%2021%20510%2011%2071> ?
> martin.zol...@tinynode.com <mailto:martin.zol...@tinynode.com>
<mailto:martin.zoller@ <mailto:martin.zoller@>**tinynode.com
<http://tinynode.com><martin.zol...@tinynode.com
<mailto:martin.zol...@tinynode.com>>
> >
>
>
>
>
------------------------------------------------------------------------------
> 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_feb
> _______________________________________________
> 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_feb
    _______________________________________________
    Mspgcc-users mailing list
    Mspgcc-users@lists.sourceforge.net
<mailto:Mspgcc-users@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/mspgcc-users




--
Eric B. Decker
Senior (over 50 :-) Researcher




------------------------------------------------------------------------------
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_feb


_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to