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


Groups > comp.arch.embedded > #27746

Re: arm-gcc: avoid calling other system functions

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.arch.embedded
Subject Re: arm-gcc: avoid calling other system functions
Date 2018-05-17 17:06 +0200
Organization A noiseless patient Spider
Message-ID <pdk5qi$qbm$1@dont-email.me> (permalink)
References <pdjt34$18n$1@dont-email.me>

Show all headers | View raw


On 17/05/18 14:37, pozz 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.
> 
> 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.
> 
> Is it possible to force arm-gcc to avoid calling system functions from 
> ISRs, so it can be executed completely in RAM?

There is, AFAIK, no way to force this.  It is not normally a problem as 
ISRs should generally be as short and fast as possible.

For functions that must be run from ram, don't call other functions 
unless it is unavoidable.  And when you do, mark those functions as 
being in the RAM section, or as __attribute__((always_inline)).  This 
doesn't work for language support functions - you avoid these by 
avoiding using such language features (such as division or software 
floating point).

> 
> [*] This is why I need to erase/write Flash memory and during these 
> operations the Flash can't be read and code in Flash can't be executed.

Note that you can't use ISRs during flash operations unless the vector 
table is also moved to ram.

While you are erasing or writing flash, it is usually easiest to simply 
disable interrupts.  If you really need an interrupt or two running, 
disable all but the critical ones and make sure these are short and fast.

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