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


Groups > comp.arch.embedded > #28242

Re: $0.03 microcontroller

From Philipp Klaus Krause <pkk@spth.de>
Newsgroups comp.arch.embedded
Subject Re: $0.03 microcontroller
Date 2018-10-16 10:00 +0200
Organization solani.org
Message-ID <pq45rr$v0k$1@solani.org> (permalink)
References (4 earlier) <pppg8a$q0u$1@solani.org> <pppjcf$k13$1@dont-email.me> <kro1sdh5sm1kaq11l38bqpdv0v959ac248@4ax.com> <pq1k0o$8qn$1@solani.org> <g2k7o2Fah3jU1@mid.dfncis.de>

Show all headers | View raw


Am 15.10.2018 um 21:22 schrieb Hans-Bernhard Bröker:
> Am 15.10.2018 um 10:44 schrieb Philipp Klaus Krause:
>> Am 12.10.2018 um 20:30 schrieb upsidedown@downunder.com:
>>>
>>> With such small ROM/RAM sizes, who needs reentrant functions ?
>>
>> Everyone. 
> 
> Absolutely not.  Reentrant functions are a massive nuisance on fully
> embedded systems, if only because they routinely make it impossible to
> determine the actual stack size usage.

What is the problem?
Either you use recursion - in which case the functions need to be
reentrant, there is no alternative, or you don't. In the latter case
you'd need to do whole-program analysis to efficiently overlay the
variables - a very similar analysis could tell you the the total stack
usage.

> 
>> With an efficent stack-pointer-relative addresing mode, you
>> put all local varibles on the stack and only need as much RAM as the
>> local variables along the longest path in the call tree.
> 
> And without such an addressing mode, you don't, because you'll suffer
> badly in every conceivable aspect.

Yes. So compilers like SDCC when targeting MCS-51 or HC08 don't use the
stack by default (--stack-auto puts local variables on the stack
per-file, __reentrant does so per function).

> 
>> Compilers can sometimes overly local variables on non-reentrant
>> functions as an optimization, but that will only work for some cases;
>> often it would require link-timeoptimization, which is not that common
>> in compilers for small µCs.
> 
> On the contrary: it's precisely the compilers for such stack-starved
> architectures (e.g. the 8051) that have been coupling behind-the-scenes
> static allocation of automatic variables with whole-program overlay
> analysis since effectively forever.  They really had to, because the
> alternative would be painful to the point of being unusable.
> 

Well, SDCC when targeting MCS-51 or HC08 would be the combination that I
know a bit about (though personally, I mostly use SDCC to target Z80 or
STM8, which can both use the stack efficiently). SDCC doesn't really
have link-time optimization yet, compilation units are handled
independently. Regarding different compilation units, it can still
overlay the variables of leaf functions - i.e. non-reentrant differnet
that do not call non-reentrant functions, but not much more.

Philipp

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


Thread

$0.03 microcontroller Clifford Heath <no.spam@please.net> - 2018-10-10 12:05 +1100
  Re: $0.03 microcontroller lasselangwadtchristensen@gmail.com - 2018-10-10 16:12 -0700
  Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-10 17:51 -0700
    Re: $0.03 microcontroller lasselangwadtchristensen@gmail.com - 2018-10-10 18:56 -0700
  Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-10 19:29 -0700
    Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-11 11:39 +0300
      Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-11 16:08 -0700
        Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-12 08:50 +0200
          Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-12 09:44 +0200
            Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-12 21:30 +0300
              Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-12 22:06 +0200
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-12 23:45 +0300
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-13 21:47 +0200
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-14 11:58 +0300
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-15 08:14 +0200
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-11-11 09:27 +0100
                Re: $0.03 microcontroller Klaus Kragelund <klauskvik@hotmail.com> - 2018-12-26 02:23 -0800
              Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-15 10:44 +0200
                Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-15 07:29 -0700
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-16 09:19 +0200
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-16 13:48 +0200
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-15 21:34 +0300
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-16 09:29 +0200
                Re: $0.03 microcontroller Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2018-10-15 21:22 +0200
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-16 10:00 +0200
                Re: $0.03 microcontroller Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2018-10-16 22:52 +0200
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-16 14:01 -0700
                Re: $0.03 microcontroller Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2018-10-17 00:03 +0200
                Re: $0.03 microcontroller Clifford Heath <no.spam@please.net> - 2018-10-17 09:22 +1100
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-16 15:29 -0700
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-17 00:46 +0200
                Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-17 09:35 +0300
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-17 09:31 +0200
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-17 07:08 -0700
                Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-17 18:37 +0300
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-17 10:04 -0700
                Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-17 23:07 +0300
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-17 08:23 +0200
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-17 19:43 +0300
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-17 20:24 +0200
                Re: $0.03 microcontroller George Neuner <gneuner2@comcast.net> - 2018-10-17 11:31 -0400
            Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-11-05 12:41 +0100
          Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-12 09:11 -0700
            Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-13 12:46 +0200
              Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-13 05:06 -0700
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-13 18:00 +0300
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-13 18:27 +0200
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-13 20:50 +0300
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-14 14:26 +0200
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-13 18:20 -0700
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-14 08:53 +0200
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-14 08:55 +0200
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-14 14:32 +0200
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-13 18:21 +0200
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-13 18:32 -0700
                Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-13 19:02 -0700
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-14 14:37 +0200
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-14 14:59 +0200
                Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-13 11:06 -0700
            Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-13 18:31 +0300
              Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-13 19:46 +0300
                Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-13 19:59 +0300
                Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-13 21:31 +0300
                Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-13 22:19 +0300
                Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-13 21:24 +0200
                Re: $0.03 microcontroller Niklas Holsti <niklas.holsti@tidorum.invalid> - 2018-10-13 22:50 +0300
                Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-14 14:39 +0200
                Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-15 05:11 -0700
              Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-13 21:03 +0300
              Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-13 18:25 -0700
          Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-15 14:20 +0200
    Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-21 16:27 +0300
      Re: $0.03 microcontroller jim.brakefield@ieee.org - 2018-10-21 07:47 -0700
        Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-21 08:08 -0700
          Re: $0.03 microcontroller jim.brakefield@ieee.org - 2018-10-21 09:31 -0700
            Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-21 10:51 -0700
              Re: $0.03 microcontroller jim.brakefield@ieee.org - 2018-10-21 12:44 -0700
                Re: $0.03 microcontroller Brett <ggtgp@yahoo.com> - 2018-10-22 00:28 +0000
          Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-21 21:43 +0200
      Re: $0.03 microcontroller Phil Martel <pomartel@comcast.net> - 2018-10-21 11:03 -0400
      Re: $0.03 microcontroller George Neuner <gneuner2@comcast.net> - 2018-10-21 20:59 -0400
  Re: $0.03 microcontroller Michael Kellett <mk@mkesc.co.uk> - 2018-10-11 14:04 +0100
    Re: $0.03 microcontroller David Brown <david.brown@hesbynett.no> - 2018-10-11 15:56 +0200
      Re: $0.03 microcontroller Michael Kellett <mk@mkesc.co.uk> - 2018-10-13 09:35 +0100
        Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-13 13:06 -0700
          Re: $0.03 microcontroller Michael Kellett <mk@mkesc.co.uk> - 2018-10-14 11:30 +0100
  Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-12 10:18 +0200
    Re: $0.03 microcontroller upsidedown@downunder.com - 2018-10-12 21:39 +0300
      Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-11-08 13:53 +0100
        Re: $0.03 microcontroller Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2018-11-08 15:08 +0200
          Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-11-08 14:34 +0100
        Re: $0.03 microcontroller upsidedown@downunder.com - 2018-11-08 21:52 +0200
          Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-11-08 21:56 +0100
            Re: $0.03 microcontroller upsidedown@downunder.com - 2018-11-09 00:35 +0200
              Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-11-09 09:00 +0100
    Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-15 14:19 +0200
  Re: $0.03 microcontroller Tim <cpldcpu+usenet@gmail.com> - 2018-10-14 01:46 +0200
    Re: $0.03 microcontroller Theo <theom+news@chiark.greenend.org.uk> - 2018-10-14 10:55 +0100
      Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-24 15:57 +0200
  Re: $0.03 microcontroller Philipp Klaus Krause <pkk@spth.de> - 2018-10-15 14:35 +0200
    Re: $0.03 microcontroller raimond.dragomir@gmail.com - 2018-10-15 06:05 -0700
      Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-15 07:19 -0700
        Re: $0.03 microcontroller Paul Rubin <no.email@nospam.invalid> - 2018-10-15 07:26 -0700
          Re: $0.03 microcontroller gnuarm.deletethisbit@gmail.com - 2018-10-15 07:30 -0700

csiph-web