Forum: Mikrocontroller und Digitale Elektronik Bascom und externes EPROM an Atmega64


von Johannes (Gast)


Lesenswert?

Hallo,

da ich soweit noch nicht weitergekommen bin,
hier meine Frage an Euch:
Ist es möglich mit Bascom ein Programm so zu
compilieren, dass ich es in einem Eprom speichern kann,
von dem aus dann der Atmega64 'läuft',
d.h. dass das Programm allein vom externen EPROM aus läuft
und nicht mehr vom internen Flash-Rom?

Für Euer Feedback wäre ich sehr dankbar !
Johannes

von Hannes L. (hannes)


Lesenswert?

BASCOM kann deinen Code auch nur in ASM bzw. Maschinencode umwandeln,
denn der AVR kann kein BASCOM, er kann nur Maschinencode (entspricht 1
zu 1 ASM-Code).
Ein Blick ins Datenblatt deines AVRs wird dir zeigen, welche
Speicherarten und Adressbereiche dein AVR hat und auf welche Art die
ASM-Befehle auf diese Speicher zugreifen können.

Du wirst sehen, dass Programmcode im Programmspeicher stehen muss, um
ausgeführt werden zu können. Und Programmspeicher ist nunmal der
interne Flash-Speicher.

Wenn du unbedingt mit externem Programmspeicher (EPROM) arbeiten
willst, dann solltest du dich mal bei den '51ern umsehen, da gibt es
glaube Möglichkeiten. Genaues weiß ich aber nicht, ich kenne mich nur
bei AVRs (halbwegs) aus.

...

von thkais (Gast)


Lesenswert?

Nein, mit Bascom ist das nicht möglich (s. Antwort oben).
Es gäbe einen Workaround: In den Flash des Atmel wird ein Interpreter
programmiert, der dann die Befehle aus dem externen EEPROM
interpretiert (Stichwort: Bytecode). Allerdings musst Du dann den
Interpreter und den dazugehörigen Compiler schreiben.

von Rahul (Gast)


Lesenswert?

Nei, ist es nicht!
Es liegt auch nicht an BASCOM, sondern an der AVR-Architektur, dass
Programme nur aus dem internen  Flash abgearbeitet werden können.

@Hannes & thkais: warum so lange Antworten?

von Hannes L. (hannes)


Lesenswert?

> warum so lange Antworten?

Z.B.:

- Um zu zeigen, dass man das auch ohne unsere Hilfe erfahren kann,
  wenn man einfach mal ins Datenblatt des betreffenden Teils schaut.

- Um nicht als arrogant, unhöflich und nicht hilfsbereit dazustehen.

;-)
Grüß die Sprotten...

...

von Rahul (Gast)


Lesenswert?

>- Um nicht als arrogant, unhöflich und nicht hilfsbereit dazustehen.

bin ich aber gerne...
Der Satz von mir sagt doch alles aus. Über die Architektur eines AVR
steht eher wenig im Datenblatt...

Grüß mir die Christstollen...

von Hannes L. (hannes)


Lesenswert?

> Grüß mir die Christstollen...

Nee, ich nin da nur auf halbem Wege... Die Dresd'ner Christstollen
kommen nicht aus Magdeburg...

...

von Johannes (Gast)


Lesenswert?

....es wäre allgemein schön wenn alle die Aussagen und Antworten andere
einfachstehen lassen würden, ohne sie zu bewerten,
jeder leistet den Beitrag den er kann !!!


Auf jedenfall vielen Dank Euch allen für das Feedback!

Viele Grüsse
Johannes

von Hannes L. (hannes)


Lesenswert?

Nun wird man für das Helfen auch noch beschimpft...

...

von Rahul (Gast)


Lesenswert?

Irgendwer hat hier was falsch verstanden...
Meine Antwort lief nur darauf hinaus, dass man das auch ziemlich kurz
beantworten kann: "Nö, geht nicht!"
Es war ja nicht gefragt, ob man das über den Umweg eines anderen
Controllers oder einen Byte-Interpreter machen kann, sondern nur, ob
man das machen kann. Nö, geht nicht. Liegt an der Architektur des AVR.

>Nun wird man für das Helfen auch noch beschimpft...

Manche wissen haben Hilfe halt einfach nicht verdient...
@Hannes: Gebracht zu haben, scheint es ihm ja auch nichts...

von MicroMann (Gast)


Lesenswert?

Irgendie lese ich hier keine Beschimpfung. Ich glaube ihr überreagiert.

Ich finde die Lösungsansätze sehr interessant, und ein einfaches 'Nö
wegen Architektur' bildet die Wahrheit ungenügend ab (Verhindert
höchstens unangenehme Nachfragen).

Ob man den Aufwand für einen Interpreter aufbringen mag oder kann
sollte  jedem selbst überlassen bleiben.

So long.

von Läubi (Gast)


Lesenswert?

Ich mein der Basic Compiler muß ja auch irgenwie das Basic in ASM
übersetzen, man könnte ja für jeden Befehl eine unteroutine bauen, und
in der dann einfach das was der Bascom Compiler dafür erzeugen würde
einsetzen fg
Fertig ist der Basic Interpreter :D

(Naja ganz so einfach isses dann auch nicht aber wenn ers versuchen
will sollte man ihn nicht aufhalten)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.