On Fri, 29 Dec 2006 09:51:56 +0100, "John" <dontmailme@dontmailme.com> wrote:>Well, I could move to another chip, but then there is still one question in >my mind: What in the hell (sorry for the word) is then the difference >between an 8bit AVR and a (let say) 8080 (easier for me to understand at DOS >level) if they both use a full functional ASM language (kindly different >ASM, but that's not the point). In the 8080 you could load programs via DOS >(which is just an ASM file) from out of anywhere to somewhere and run it >(I'm not talking about multiprocessing or threading, just more DOS alike and >I don't know how they do it in ASM, but DOS is working not?). Why is this >not possible on the AVR? I'm really a newbie on this one and I'm still >wondering, where is the difference? It can not lie in the functionality of >the ASM language, nor it could be in the IO pins we have massively? So what >is the basic difference that make this impossible? Can someone give me a >hint on this one so that I can google further, and sleep back normal again. >The AVR is a harvard architecture design which means that it has separate code and data spaces. Programs can be in code space which is in FLASH. Data is in RAM. There are a few AVR devices which has RAM in stead of FLASH for the code space. On these devices you should be able to "load" different applications into RAM and execute them. If you want a small cheap MCU that can execute code from data space, then I suggest you get one of the many ARM variants with an external bus. NXP and Atmel both have devices which with only a few extra components is good enough to run full Linux. Regards Anton Erasmus
Newbie question on Atmel AVR expanding program Flash
Started by ●December 28, 2006
Reply by ●December 29, 20062006-12-29
Reply by ●December 29, 20062006-12-29
Anton Erasmus wrote:> On Fri, 29 Dec 2006 09:51:56 +0100, "John" <dontmailme@dontmailme.com> > wrote: > > >Well, I could move to another chip, but then there is still one question in > >my mind: What in the hell (sorry for the word) is then the difference > >between an 8bit AVR and a (let say) 8080 (easier for me to understand at DOS > >level) if they both use a full functional ASM language (kindly different > >ASM, but that's not the point). In the 8080 you could load programs via DOS > >(which is just an ASM file) from out of anywhere to somewhere and run it > >(I'm not talking about multiprocessing or threading, just more DOS alike and > >I don't know how they do it in ASM, but DOS is working not?). Why is this > >not possible on the AVR? I'm really a newbie on this one and I'm still > >wondering, where is the difference? It can not lie in the functionality of > >the ASM language, nor it could be in the IO pins we have massively? So what > >is the basic difference that make this impossible? Can someone give me a > >hint on this one so that I can google further, and sleep back normal again. > > > > The AVR is a harvard architecture design which means that it has > separate code and data spaces. Programs can be in code space > which is in FLASH. Data is in RAM. There are a few AVR devices > which has RAM in stead of FLASH for the code space. On these devices > you should be able to "load" different applications into RAM and > execute them. If you want a small cheap MCU that can execute code > from data space, then I suggest you get one of the many ARM variants > with an external bus. NXP and Atmel both have devices which with only > a few extra components is good enough to run full Linux. >Have a look at the DS80C410/DS80C411 from Maxim, an 8051 derivative that has the ability to selectively combine program and data space. And it can remote boot over the network. --Rocky
Reply by ●December 29, 20062006-12-29
Thanks a lot to you all for this information. I really do! I'm learning on an ATmega8 and was just wondering if I could overrule the limits of the program memory without much effort or changes in the code itself. It was not my goal to re-invent the wheel. I didn't know about the program/data bus designs properties (as you all guessed). I love the ATmega8 for what it is and if I could do all my dreams on this little creature then ... ooo ... then... then I declare myself as god the almighty :) But that will never happen! I will go and google further. For you all, I whishes you all a happy inventive splendid new 2007. Cheers!