Forum: Mikrocontroller und Digitale Elektronik externes Flash


von Ich (Gast)


Lesenswert?

Hi Leute!
Ich habe eine prinzipielle Frage. Das interne Flash ist nicht 
ausreichend, also kann man ja ein externes Flash dranhängen.

Nun meine Frage:
* Wie wird das externe Flash programmiert?
* Wie schaut das im Code aus? Welche Codestücke werden dann im Flash 
abgelegt und wo?
* wie werden die dann aus dem externen Flash exekutiert?

Es geht nur ums Prinzip! Bitte um Hinweise :-)

thx

von Zwirbeljupp (Gast)


Lesenswert?

> Das interne Flash ist nicht ausreichend, also kann man ja ein externes
> Flash dranhängen.
Im Prinzip ja.

> * Wie wird das externe Flash programmiert?
kommt darauf an

> * Wie schaut das im Code aus? Welche Codestücke werden dann im Flash
> abgelegt und wo?
hängt davon ab...

> * wie werden die dann aus dem externen Flash exekutiert?
mal so mal so

> Bitte um Hinweise :-)
Es gibt nicht nur eine(n) Prozessor(architektur).
Grundsätzlich muss natürlich ein Businterface für externen 
(Programm)Speicher vorhanden sein.

von Ich (Gast)


Lesenswert?

Zwirbeljupp schrieb:
>> Das interne Flash ist nicht ausreichend, also kann man ja ein externes
>> Flash dranhängen.
> Im Prinzip ja.
>
>> * Wie wird das externe Flash programmiert?
> kommt darauf an
>
Was gibt's da für Möglichkeiten?

>> * Wie schaut das im Code aus? Welche Codestücke werden dann im Flash
>> abgelegt und wo?
> hängt davon ab...
>
Wovon? Wie sag ich das dieser Code im Flash liegt? Bzw. wie sag ich das 
dem Compile?

>> * wie werden die dann aus dem externen Flash exekutiert?
> mal so mal so
>
und zwar?

>> Bitte um Hinweise :-)
> Es gibt nicht nur eine(n) Prozessor(architektur).
> Grundsätzlich muss natürlich ein Businterface für externen
> (Programm)Speicher vorhanden sein.
Naja nehmen wir nen einfach Adress-Daten-Bus?

von Zwirbeljupp (Gast)


Lesenswert?

>>> * Wie wird das externe Flash programmiert?
>> kommt darauf an
> Was gibt's da für Möglichkeiten?
üblicherweise über einen Bootloader.

>>> * Wie schaut das im Code aus? Welche Codestücke werden dann im Flash
>>> abgelegt und wo?
>> hängt davon ab...
> Wovon? Wie sag ich das dieser Code im Flash liegt? Bzw. wie sag ich das
> dem Compile?
Dem Compiler ist das egal, der Linker muss über den externen Speicher 
bescheidwissen. Für sowas gibt es z.B. Linkerskripts. Aber wie gesagt: 
hängt davon ab (vom Prozessor, von der verwendeten 
Entwicklungsumgebung...)

>>> * wie werden die dann aus dem externen Flash exekutiert?
>> mal so mal so
> und zwar?
Wenn der externe Speicher so angebunden ist, dass der Prozessor darauf 
zugreifen kann, wie auf seinen internen Programmspeicher, dann brauchst 
Du Dich um nichts kümmern. Andernfalls musst Du den Code aus dem 
externen Speicher erstmal in einen internen Speicher kopieren, aus dem 
der Prozessor Befehle ausführen kann. Oder einen Befehlsinterpreter 
programmieren... oder oder oder... Alles recht hypothetisch

von Hc Z. (mizch)


Lesenswert?

Für eine brauchbare Beantwortung fehlen grundlegende Angaben, wie µC-Typ 
und verwendeter Compiler.

von Ich (Gast)


Lesenswert?

OK danke für die Info!

µC: LPC32x0
Compiler: GCC

Der genannteµC hat ein internes RAM von 256 kByte. Über ein 
angeschlossenes Flash kann über den Flash Controller der Programcode 
beim booten ins interne RAM geladen werden. Sehe ich das Richtig?

Kann der Programmcode größer sein als das interne RAM - so dass dies 
entsprechend nachgeladen werden kann?

Wie programmiere ich dan dieses externe Flash?

thx

von Helmut L. (helmi1)


Lesenswert?

Ich schrieb:
> er genannteµC hat ein internes RAM von 256 kByte. Über ein
> angeschlossenes Flash kann über den Flash Controller der Programcode
> beim booten ins interne RAM geladen werden. Sehe ich das Richtig?
>

In deinem Startupcode must du halt dafuer sorgen das das Programm ins 
interne RAM kopiert wird oder das Progamm im externen Flash ausfuehren.
beides geht.

> Kann der Programmcode größer sein als das interne RAM - so dass dies
> entsprechend nachgeladen werden kann?
>

Theoretisch ja. Aber dann must dein Compiler das aber auch 
unterstuetzten.
Verschiedene Programmteile liegen ja dann im RAM auf den gleichen 
Addressen.
Wie soll der Compiler das unterscheiden ?  Der Compiler muss dann 
Codebanking beherrschen.

> Wie programmiere ich dan dieses externe Flash?

In dem du dir eine Programmierroutine zum flashen des externen Flash 
schreibst und die bei Inbetriebnahme dir deinen Code in externe Flash 
schreibt.

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.