avr - kod w ram

na atmege niedawno przelazlem z 51 wiec zanim zaczne kopac w pdfach zapytam - moze ktos powie mi definitywnie tak lub nie :) czy w atmedze mozna uruchomic kod w pamieci ram - zeby bylo jednoznacznie - program laduje dane z romu do ramu a potem wykonuje skok do ramu intrerpretujac te dane jako dalszy ciag programu. Robilem takie numery z z80 i nie bylo mozliwe to z 8051. Podobno potrafia to mikrokontrlery motoroli. Ale jest jeden warunek ktory nawet jesli tak sie da to zastosowanie to czyni bezuzytcznym - program z ramu nie moze czytac kodu z romu - wlasnie w mlotorolach da sie (podobno bo sam tego nie robilem) odczytac zawartosc eeproomu i czasami romu ladujac taki program. Nie intreresuje mnie tez z pewnych wzgledow ladowanie tego kodu do flascha - zbyt czeste modyfikacje.

pozdrawiam w mazurek

formatting link
CMMS Maszyna Golem OEE ArchiwumPLC

Reply to
neuron
Loading thread data ...

Takie rzeczy to tylko w von Neumannie (Z80, HC05/08, ST7...) natomiast 8051 i AVR są Harvard wiec się nie da. W 8051 niby się dało, ale tylko na zewnętrznych pamięciach i odpowiednio zmodyfikowanej przestrzeni adresowej.

Reply to
Venus z Milowic

neuron pisze:

Nie można.

Trzeba było od razu przesiąść się na ARM'y - tam jest wspólna przestrzeń adresowa do wszystkiego (ROM, RAM, rejestry I/O) i do tego adresowanie

32-bitowe więc bez problemu się mieści duuużo RAMu.
Reply to
Adam Dybkowski

Daloby sie - ale pod jednym warunkiem:

- w ROMie masz interpreter Fortha,

- do RAMu ladujesz program w Forth do wykonania.

Moze nawet znajdzie sie jakis konwerter C->Forth.

Problem moze byc ze zmieszczeniem sie z interpreterem w ROMie.

Reply to
Pawel Sklarow

Pawel Sklarow pisze:

W ten sposób to można zastosować interpreter dowolnego języka, niekoniecznie Forth. Tyle tylko że program tak wykonywany będzie wielokrotnie wolniejszy od skompilowanego natywnie (do asemblera procesora).

Reply to
Adam Dybkowski

Z kolei Forth bedzie wielokrotnie szybszy od wszystkich innych interpretetow :)

Reply to
Pawel Sklarow

Nie tak do konca.

Istnieja rozwiazania gdy nasz program zamienia sie na postac polskompilowana, czy moze raczej skompilowana do rozkazow maszyny wirtualnej, i jest to wykonywane przez intrerpreter tejze maszyny. P-code Pascal, kilka Basicow, Java, .NET - z tym ze te ostatnie to jeszcze dalej poszly. I to sie wykonuje wtedy podobnie szybko jak FORTH. Ale zasadniczo sporo wolniej od natywnie skompilowanego programu, no chyba ze program wymaga obliczen na typach danych wysokiego poziomu, np zmiennym przecinku .

J.

Reply to
J.F.

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.