uC for Indirect Execution

Hey everyone,

I'm looking at starting a new uClinux platform for myself sometime in the not-too-far-future. I've got a couple favorites I'd like to play with, namely the Blackfin BF561 and the Lpc3180. However, I'm kind of worried about what code I can execute: if i recall correctly, neither of these architectures (ARM9 and blackfin) can execute code indirectly, can run code from ram. I presume this is a restriction of their Harvard architetures.

Where can you store code for these architectures? What are fast & low powered micros that can execute code from memory?

I could be dead wrong, if so, please except my graceful apology.

-Rektide.

Reply to
rektide
Loading thread data ...

On 11 May 2006 17:14:29 -0700, "rektide" wrote in comp.arch.embedded:

I don't know about the Blackfin, but ARM9 processors can most certainly execute code from RAM, both from the internal RAM that they have, and from external RAM, if they have an external bus.

But I have no idea what you mean by "execute code indirectly".

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://c-faq.com/
comp.lang.c++ http://www.parashift.com/c++-faq-lite/alt.comp.lang.learn.c-c++
http://www.contrib.andrew.cmu.edu/~ajo/docs/FAQ-acllc.html
Reply to
Jack Klein

"rektide" skrev i meddelandet news: snipped-for-privacy@y43g2000cwc.googlegroups.com...

Why uCLinux for an ARM9 with an MMU. Curious to know why you want to run Linux without any Ethernet nor LCD?

--
Best Regards,
Ulf Samuelsson
This is intended to be my personal opinion which may,
or may bot be shared by my employer Atmel Nordic AB
Reply to
Ulf Samuelsson

People often run ucLinux in embedded systems even if there is an MMU. An MMU provides two things - flexibility for things like swap space, which is seldom used in embedded systems, and memory protection between processes. In most embedded systems, you have (or should have!) total control over which processes and programs are running, and don't need this sort of protection. MMU's are not free - they often add latency to memory access, and they can greatly increase processes switching overhead, so there are good reasons not to use one even when it is present. Of course, it all depends entirely on your application - there are plenty of good reasons *for* using the MMU as well.

Reply to
David Brown

That presumption is quite universally wrong. Harvard architecture means that the CPU *can* strictly separate code and data memory, because it's designed that way. It doesn't mean that it *has* to be used that way. People have been setting up memory chip selection circuitry for Harvard CPUs to behave like von-Neumann ones since the dawn of the business.

Just consider it: all current PC CPUs are actually Harvard architectures, with separate primary memories for code and data (called the "level 0 cache" or other misguiding names), yet they exactly reproduce the behaviour of the original von-Neumann i386 they've replaced.

The only thing that can actually keep you from executing code out of RAM is if the chip doesn't export its code memory bus to the outside world at all. But that has nothing to do with von Neumann vs. Harvard.

--
Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.
Reply to
Hans-Bernhard Broeker

you are wrong. Blackfin most certainly can (and usually does for speed reasons) execute from SDRAM.

Bob

Reply to
Bob

And the ones that _do_ strictly separate their on-board RAM into program and data spaces, such as the Motorola 56000 and Analog's ADSP21xx series, have special instructions to access program memory as data, or to load program RAM from external flash, or both.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Posting from Google?  See http://cfaj.freeshell.org/google/

"Applied Control Theory for Embedded Systems" came out in April.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

The ARM9 datacache gets disabled when you dont have the MMU enabled. This is a real performance killer.

--
Best Regards,
Ulf Samuelsson
ulf@a-t-m-e-l.com
This message is intended to be my own personal view and it
may or may not be shared by my employer Atmel Nordic AB
Reply to
Ulf Samuelsson

That seems a strange limitation to me - especially as the paper I read showing something like ten times improvement in process switching speed for linux with the MMU disabled was running on an ARM (I forget which). But then, I have never looked at the details of ARMs (at least, not since the days of the Archimedes when I was still at school), so I have no idea of the details.

Reply to
David Brown

For some reason, I was under the impression that Harvard uc's often did have this limitation, that it was only more full blooded cpu's that didnt have this restriction.

Reply to
rektide

As to your peripherial query, USB powered wifi.

Although I hadnt noticed there was no ethernet. Ouch. Ah well.

Good info on the datacache, I probably will run real linux.

Reply to
rektide

What limitation?

What are you talking about?

Please quote appropriately.

--
Grant Edwards                   grante             Yow!  - if it GLISTENS,
                                  at               gobble it!!
                               visi.com
Reply to
Grant Edwards

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.