Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.arch.embedded > #27170
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Newsgroups | comp.arch.embedded |
| Subject | Re: Engineering degree for embedded systems |
| Date | 2017-08-17 09:37 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <on3gra$84q$1@dont-email.me> (permalink) |
| References | (11 earlier) <opqjocdfqhq89f66icao8l4m84etid3o1p@4ax.com> <omefd2$917$1@dont-email.me> <80cooclfcuqrkdhibclmk5h8jklnbnnhrf@4ax.com> <omhlpo$eo6$1@dont-email.me> <on2hjo$1jsg$1@gioia.aioe.org> |
On 17/08/17 00:39, Walter Banks wrote: > On 2017-08-10 9:11 AM, David Brown wrote: >> That sounds like a disaster for coupling compilers, linkers, OS's, and >> processor MMU setups. I don't see this happening automatically. Doing >> so/manually/ - giving explicit sections to variables, and explicitly >> configuring an MMU / MPU to make a particular area of the address space >> non-cached is fine. I have done it myself on occasion. But that's >> different from trying to make it part of the standard language. > > > couple comments on this. Compiling for multiple processors I have used > named address spaces to define private and shared space. IEC/ISO 18037 "IEC/ISO 18037" completely misses the point, and is a disaster for the world of embedded C programming. It is an enormous disappointment to anyone who programs small embedded systems in C, and it is no surprise that compiler implementers have almost entirely ignored it in the 15 years of its existence. Named address spaces are perhaps the only interesting and useful idea there, but the TR does not cover user-definable address spaces properly. > The nice part of that is applications can start out running on a single > platform and then split later with minimum impact on the source code. > > Admittedly I have done this on non MMU systems. > On some systems, such a "no_cache" keyword/attribute is entirely possible. My comment is not that this would not be a useful thing, but that it could not be a part of the C standard language. For example, on the Nios processor (Altera soft cpu for their FPGAs - and I don't remember if this was just for the original Nios or the Nios2) the highest bit of an address was used to indicate "no cache, no reordering", but it was otherwise unused for address decoding. When you made a volatile access, the compiler ensured that the highest bit of the address was set. On that processor, implementing a "no_cache" keyword would be easy - it was already done for "volatile". But on a processor that has an MMU? It would be a serious problem. And how would you handle casts to a no_cache pointer? Casting a pointer to normal data into a pointer to volatile is an essential operation in lots of low-level code. (It is implementation-defined behaviour, but works "as expected" in all compilers I have heard of.) So for some processors, "no_cache" access is easy. For some, it would require support from the linker (or at least linker scripts) and MMU setup, but have no possibility for casts. For others, memory barrier instructions and cache flush instructions would be the answer. On larger processors, that could quickly be /very/ expensive - much more so than an OS call to get some uncached memory (dma_alloc_coherent() on Linux, for example). uncached accesses cannot be implemented sensible or efficiently in the same way on different processors, and in some systems it cannot be done at all. The concept of cache is alien to the C standards. Any code that might need uncached memory is inherently low-level and highly system dependent. Therefore it is a concept that has no place in the C standards, even though it is a feature that could be very useful in many specific implementations for specific targets. A great thing about C is that there is no problem having such implementation-specific features and extensions. > > I have linked across multiple processors including cases of > heterogeneous processors. > > An other comment about inter-processor communication. We found out a > long time ago that dual or multi port memory is not that much of an > advantage in most applications. The data rate can actually be quite low. > We have done quite a few consumer electronics packages with serial data > well below a mbit some as low as 8Kbits/second. It creates skew between > processor execution but generally has very limited impact on application > function or performance. > > w.. > > w..
Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Engineering degree for embedded systems "hogwarts" <122707@EmbeddedRelated> - 2017-07-27 07:35 -0500
Re: Engineering degree for embedded systems Stef <stef33d@yahooI-N-V-A-L-I-D.com.invalid> - 2017-07-27 15:25 +0200
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-07-30 12:05 -0400
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-07-30 19:05 +0100
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-01 08:55 -0400
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-01 14:23 +0100
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-03 11:03 -0400
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-06 10:35 +0100
Re: Engineering degree for embedded systems John Devereux <john@devereux.me.uk> - 2017-08-06 14:40 +0100
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-06 12:51 -0400
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-06 20:13 +0100
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-06 19:21 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 12:40 -0400
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-07 15:18 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 15:27 -0400
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-07 16:47 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 17:30 -0400
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-07 18:35 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 18:56 -0400
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-07 19:02 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 19:08 -0400
Re: Engineering degree for embedded systems Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-08-08 01:30 +0200
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 19:32 -0400
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-07 19:53 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 20:02 -0400
Re: Engineering degree for embedded systems stephen@mpeforth.com (Stephen Pelc) - 2017-08-07 23:49 +0000
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 20:07 -0400
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-08 08:00 +0100
Re: Engineering degree for embedded systems George Neuner <gneuner2@comcast.net> - 2017-08-07 01:21 -0400
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-06 17:15 +0300
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-06 20:21 +0100
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-07 10:35 +0300
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-07 12:54 +0200
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-07 12:34 +0200
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 12:43 -0400
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-06 12:50 -0400
Re: Engineering degree for embedded systems Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2017-08-07 12:36 -0400
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-07 18:40 +0100
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-08 10:23 +0200
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-08 09:46 +0100
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-08 11:26 +0200
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-08 11:09 +0100
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-08 12:56 +0200
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-08 15:56 +0100
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-08 17:11 +0200
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-08 16:33 +0100
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-08 21:07 +0300
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-09 10:03 +0200
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-10 14:30 +0300
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-10 15:11 +0200
Re: Engineering degree for embedded systems Walter Banks <walter@bytecraft.com> - 2017-08-16 18:39 -0400
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-17 09:37 +0200
Re: Engineering degree for embedded systems Walter Banks <walter@bytecraft.com> - 2017-08-17 08:24 -0400
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-17 16:06 +0200
Re: Engineering degree for embedded systems Walter Banks <walter@bytecraft.com> - 2017-08-17 12:15 -0400
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-18 14:45 +0200
Re: Engineering degree for embedded systems Walter Banks <walter@bytecraft.com> - 2017-08-25 09:51 -0400
Re: Engineering degree for embedded systems Les Cargill <lcargill99@comcast.com> - 2017-08-01 20:46 -0500
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-02 09:30 +0200
Re: Engineering degree for embedded systems Les Cargill <lcargill99@comcast.com> - 2017-08-05 15:11 -0500
Re: Engineering degree for embedded systems Paul Rubin <no.email@nospam.invalid> - 2017-08-08 00:22 -0700
Re: Engineering degree for embedded systems Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-08-08 08:36 +0100
Re: Engineering degree for embedded systems David Brown <david.brown@hesbynett.no> - 2017-08-08 12:37 +0200
Re: Engineering degree for embedded systems "tim..." <tims_new_home@yahoo.com> - 2017-07-27 17:46 +0100
Re: Engineering degree for embedded systems Grant Edwards <invalid@invalid.invalid> - 2017-07-27 16:54 +0000
Re: Engineering degree for embedded systems "tim..." <tims_new_home@yahoo.com> - 2017-07-27 19:57 +0100
Re: Engineering degree for embedded systems Frank Miles <fpm@u.washington.edu> - 2017-07-27 16:58 +0000
Re: Engineering degree for embedded systems Theo Markettos <theom+news@chiark.greenend.org.uk> - 2017-07-28 00:43 +0100
Re: Engineering degree for embedded systems jim.brakefield@ieee.org - 2017-07-30 15:26 -0700
Re: Engineering degree for embedded systems Chris <xxx.syseng.yyy@gfsys.co.uk> - 2017-07-27 23:45 +0000
Re: Engineering degree for embedded systems Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-08-03 19:50 +0200
Re: Engineering degree for embedded systems Les Cargill <lcargill99@comcast.com> - 2017-08-05 15:20 -0500
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-06 09:17 +0300
Re: Engineering degree for embedded systems "tim..." <tims_new_home@yahoo.com> - 2017-08-06 10:12 +0100
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-06 13:19 +0300
Re: Engineering degree for embedded systems Les Cargill <lcargill99@comcast.com> - 2017-08-06 09:59 -0500
Re: Engineering degree for embedded systems "tim..." <tims_new_home@yahoo.com> - 2017-08-06 18:06 +0100
Re: Engineering degree for embedded systems rickman <gnuarm@gmail.com> - 2017-08-06 21:31 -0400
Re: Engineering degree for embedded systems "tim..." <tims_new_home@yahoo.com> - 2017-08-07 09:32 +0100
Re: Engineering degree for embedded systems Les Cargill <lcargill99@comcast.com> - 2017-08-06 09:53 -0500
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-07 10:59 +0300
Re: Engineering degree for embedded systems Les Cargill <lcargill99@comcast.com> - 2017-08-07 20:09 -0500
Re: Engineering degree for embedded systems upsidedown@downunder.com - 2017-08-08 21:31 +0300
Re: Engineering degree for embedded systems Stef <stef33d@yahooI-N-V-A-L-I-D.com.invalid> - 2017-08-21 11:28 +0200
csiph-web