neuron
Guest
Fri Oct 05, 2007 12:54 am
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
www.neuron.com.pl
CMMS Maszyna
Golem OEE
ArchiwumPLC
Venus z Milowic
Guest
Fri Oct 05, 2007 7:26 am
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.
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl
dziadek Ben
Guest
Fri Oct 05, 2007 6:57 pm
Quote:
W 8051 niby się dało, ale tylko na zewnętrznych
pamięciach...
Jak choćby w Dallasowskim DS80C400, który jest na tyle szybki, że przy
pełnym zegarze żaden flash się nie wyrabia (oficjalna informacja producenta,
nie tylko użytkowników) - startuję na wolniejszym, kopiuję program do RAMu i
z niego uruchamiam program właściwy, który rozpoczyna się od przestawienia
zegara na maksimum.
--
dziadek Ben
[z adresu wytnij co trzeba]
Adam Dybkowski
Guest
Sun Oct 07, 2007 2:01 am
neuron pisze:
Quote:
czy w atmedze mozna uruchomic kod w pamieci ram
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.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Pawel Sklarow
Guest
Fri Oct 12, 2007 11:43 pm
neuron wrote:
Quote:
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.
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.
--
Pawel
Adam Dybkowski
Guest
Sat Oct 13, 2007 1:01 am
Pawel Sklarow pisze:
Quote:
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.
Daloby sie - ale pod jednym warunkiem:
- w ROMie masz interpreter Fortha,
- do RAMu ladujesz program w Forth do wykonania.
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).
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Pawel Sklarow
Guest
Tue Oct 16, 2007 2:14 am
Adam Dybkowski wrote:
Quote:
(...)
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).
Z kolei Forth bedzie wielokrotnie szybszy od wszystkich innych
interpretetow :)
--
Pawel
J.F.
Guest
Tue Oct 16, 2007 10:33 am
On Tue, 16 Oct 2007 03:14:36 +0200, Pawel Sklarow wrote:
Quote:
Adam Dybkowski wrote:
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).
Z kolei Forth bedzie wielokrotnie szybszy od wszystkich innych
interpretetow
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.