Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #27750

Re: arm-gcc: avoid calling other system functions

From pozz <pozzugno@gmail.com>
Newsgroups comp.arch.embedded
Subject Re: arm-gcc: avoid calling other system functions
Date 2018-05-18 08:47 +0200
Organization A noiseless patient Spider
Message-ID <pdlsur$sg4$1@dont-email.me> (permalink)
References <pdjt34$18n$1@dont-email.me> <pdjvvv$mnf$1@reader1.panix.com> <pdk0f6$lfl$2@dont-email.me> <pdk2vm$ovs$1@reader1.panix.com>

Show all headers | View raw


Il 17/05/2018 16:18, Grant Edwards ha scritto:
> On 2018-05-17, pozz <pozzugno@gmail.com> wrote:
>> Il 17/05/2018 15:27, Grant Edwards ha scritto:
>>> On 2018-05-17, pozz <pozzugno@gmail.com> wrote:
>>>
>>>> I'm trying to put all ISRs in RAM[*]. Unfortunately, depending on
>>>> the code, arm-gcc could call some system functions that are located
>>>> in Flash.
>>>
>>> By "system functions" do you mean gcc built-in functions from libgcc?
>>
>> Yes, now I know those functions come from libgcc.
>>
>>> Or functions from /usr/lib/*whatever*?
>>>
>>>> For example, if I use a switch statement, the compiler calls a piece of
>>>> code of system libraries (that are in Flash) that use a table lookup to
>>>> manage the switch.
>>>
>>> If you're talking about libgcc, that's not what most people mean when
>>> they refer to "system libraries".
>>
>> Built-in functions is a better name?
> 
> Calling them "libgcc functions" is probably the best choice.  Anybody
> familiar with gcc will know what you mean.
> 
>>> No, I don't think there's any way to prevent gcc from emitting calls
>>> to functions provided by libgcc.  However, you should be able to put
>>> the ISR code in a separate file and link it statically with libgcc,
>>> and then locate the resulting object file's code in RAM.
>>
>> It seems complex.
> 
> Embedded systems development usually is. :)

Not always.  Of course it depends on what you are trying to do.


>>> Alternatively, you could just manually tweak your linker script to
>>> place the specific libgcc functions used by your ISR functions in RAM.
>>
>> Any help?
> 
> https://sourceware.org/binutils/docs-2.30/ld/Scripts.html#Scripts
> https://wiki.osdev.org/Linker_Scripts
> http://www.bravegnu.org/gnu-eprog/
> https://www.embedded.com/design/mcus-processors-and-socs/4026080/Building-Bare-Metal-ARM-Systems-with-GNU-Part-3

Ok, thank you for the references.


>>> Using ISRs to program flash seems pretty strange...
>>
>> No, I need to serve interrupts *during* Flash erasing/writing. So the
>> ISR code must be placed in RAM.
> 
> OK, that makes more sense.
> 

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-17 14:37 +0200
  Re: arm-gcc: avoid calling other system functions Grant Edwards <invalid@invalid.invalid> - 2018-05-17 13:27 +0000
    Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-17 15:35 +0200
      Re: arm-gcc: avoid calling other system functions Grant Edwards <invalid@invalid.invalid> - 2018-05-17 14:18 +0000
        Re: arm-gcc: avoid calling other system functions David Brown <david.brown@hesbynett.no> - 2018-05-17 17:08 +0200
        Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-18 08:47 +0200
  Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-17 15:30 +0200
  Re: arm-gcc: avoid calling other system functions David Brown <david.brown@hesbynett.no> - 2018-05-17 17:06 +0200
    Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-18 09:07 +0200
      Re: arm-gcc: avoid calling other system functions David Brown <david.brown@hesbynett.no> - 2018-05-18 09:51 +0200
        Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-21 09:14 +0200
          Re: arm-gcc: avoid calling other system functions David Brown <david.brown@hesbynett.no> - 2018-05-21 12:50 +0200
        Re: arm-gcc: avoid calling other system functions Joe Chisolm <jchisolm6@earthlink.net> - 2018-05-21 10:15 -0500
          Re: arm-gcc: avoid calling other system functions David Brown <david.brown@hesbynett.no> - 2018-05-21 19:31 +0200
            Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-22 09:05 +0200
              Re: arm-gcc: avoid calling other system functions David Brown <david.brown@hesbynett.no> - 2018-05-22 10:59 +0200
              Re: arm-gcc: avoid calling other system functions Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-05-22 15:24 +0300
                Re: arm-gcc: avoid calling other system functions pozz <pozzugno@gmail.com> - 2018-05-22 14:55 +0200
  Re: arm-gcc: avoid calling other system functions Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-05-18 12:41 +0300

csiph-web