Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S256 EEPROM vs. SRAM / Flash-Loader / Startup


von Peter P. (uncle-sam7)


Lesenswert?

Hallo Newsgroup,

nachdem ich ja jetzt schon positive Erfahrungen (SDCard, HD44780, 
SID...) mit dem AT91SAM7S256 und C gesammelt habe, bleiben doch noch ein 
paar Fragen zu den Grundlagen offen, nachdem ich jetzt mit Assembler 
weitermachen werde.

Der Flash-Speicher liegt ja bei 0x200000. Was muss denn da alles 
(minimal) reingepackt werden, so dass ein Programm ausgeführt wird, 
nachdem der uC (bzw. das Dev-Board) angeschaltet wird?

Wenn ich ein minimales LED-Blinken (Endlosschleife ohne IRQs) ins EEPROM 
laden möchte, reicht da nicht einfach
- Stackpointer
- Watchdog ausschalten & "fastmode" an
- PINs konfigurieren und los?

Sind die Flash-Loader nur bei C-Programmen mit dabei um irgendwelche 
programmtechnischen Dinge ins SRAM zu laden?
Habe hier z.B. unter yagarto "low_level_init.o" und "startup.o". Sind 
das solche Flash-Loader?

Viele Grüße,
Peter

von peter (Gast)


Lesenswert?

... kennt vielleicht jemand ein Tool wie
http://home.pacbell.net/michal_k/6502.html
für ARM7 ?

von Stephan W. (sir_wedeck)


Lesenswert?

Hi,
du brauchst auf jeden Fall die Init für die PLL, sonst läuft dein MC auf 
32 kHz.

>reicht da nicht einfach
>- Stackpointer
>- Watchdog ausschalten & "fastmode" an
>- PINs konfigurieren und los?

eigentlich sollte das plus die PLL ausreichen.
Aber was hindert dich dran die org. Startsequenzen zu nehmen?
Da wo der Sprung nach Main ist schreibst du einfach dein Label rein.

Wenn du die anderen Dinger raus nimmst, gibs später Probleme wenn du 
dann doch einen IRQ benötigst.

Stephan

von Peter P. (uncle-sam7)


Lesenswert?

Vielen Dank, Stephan für Deinen Beitrag. Dachte schon, dass nur ich 
meine Posts im Forum sehen kann :-)

Stephan W. schrieb:
> eigentlich sollte das plus die PLL ausreichen.
> Aber was hindert dich dran die org. Startsequenzen zu nehmen?

naja, eigentlich nichts. Ich würde nur ganz genau wissen wollen, was im 
startupcode passiert, und ob was vom SRAM "abgezwickt" wird.

Ich bin vom Typ her halt immer eher so, dass zuerstmal nur minimal was 
laufen soll, und dann nach bedarf "nachrüsten".

> Da wo der Sprung nach Main ist schreibst du einfach dein Label rein.

Werde das glaube ich mal mit der IAR-Workbench testen. Soweit ich mich 
erinnern kann, konnte man da auch step-by-step das Programm 
durcharbeiten und die Register entsprechend ansehen...

> Wenn du die anderen Dinger raus nimmst, gibs später Probleme wenn du
> dann doch einen IRQ benötigst.

Für den SID-Player werde ich definitiv keinen IRQ nehmen.

Gruß Peter

von Stephan W. (sir_wedeck)


Lesenswert?

Hi
>Dachte schon, dass nur ich meine Posts im Forum sehen kann :-)
Das glaube ich manchmal auch, aber im Moment sind bestimmt viele im 
Winterurlaub und fahre Ski oder Snowboard. will ich auch!!! :'-(

>Ich würde nur ganz genau wissen wollen, was im
>startupcode passiert, und ob was vom SRAM "abgezwickt" wird.
Also normaler weise wird für die entsprechenden, ich nenne das mal, 
"SystemModies", ein Stack kreiert und so mit SRAM abgezwackt.

Wenn du nur die minimal Version machst, brauchst du diese Modies 
bestimmt auch ( wenn auch nur Teilweise).
Oder du lässt diese wirklich in einer Endless Loop enden.

>Für den SID-Player werde ich definitiv keinen IRQ nehmen.
Was ist mit DMA-Transfer für die SPI oder den Watchdog für das Programm?

Stephan

von Peter P. (uncle-sam7)


Angehängte Dateien:

Lesenswert?

peter schrieb:
> ... kennt vielleicht jemand ein Tool wie
> http://home.pacbell.net/michal_k/6502.html
> für ARM7 ?

Wollte der Vollständigkeit halber erwähnen, dass ich das gefunden habe, 
was ich gesucht habe: Dir IAR Workbench bringt einen "Simulator" gleich 
mit. Register & Co. lassen sich damit betrachten.

Gruß,
Peter

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.