www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Absolute ARM Basics


Autor: Beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich suche ein Buch, Tutorial oder eine andere Einführung, die mir die 
absoluten Basics im Umgang mit einem ARM7 (vorzugsweise an einem ATMEL) 
erklärt. Mir geht es dabei nicht um das Programmieren, das beherrsche 
ich, sondern wirklich nur um die Eigenheiten des Controllers, wie die 
Pins angesteuert werden, SPI, etc. Wichtig wäre mir dabei, dass nicht 
einfach ein Block Code mit 'nem Kommentar da steht, sondern das wirklich 
genau erklärt wird, was da passiert. Ich will danach verstehen, wie das 
Ganze funktioniert und nicht nur den Code kopieren. Entwicklungsumgebung 
ist auch schon vorhanden.

Gelesen habe ich schon ein paar Tutorials (und natürlich das Datenblatt 
zu meinem Controller), aber das war alles nicht das, was mir das nötige 
Wissen vermittelt um selbst etwas zu starten.

http://www.mikrocontroller.net/articles/ARM-elf-GCC-Tutorial
http://www.embedded.com/design/opensource/20000063...
...

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wird nicht einfach. Es gibt nur eine Firma, die ein Interesse daran 
hat den Chip so genau wie moeglich zu beschreiben und das ist der 
Hersteller, in deinem Fall Atmel. Wenn das Datenblatt (oder Programmers 
Manual), wie es auch immer heissen mag, in den 500-1000 Seiten die Info 
nicht hat, die du suchst, dann kann nur noch Produkttraining des 
Herstellers helfen. Oder natuerlich gezielte Fragen koennen evtl. auch 
hier beantwortet werden. Deine Frage lautet, kann mir jemand ein Buch 
empfehlen, das auf Transistor-Ebene beschreibt, wie diese mehr als 1 Mio 
Transistorfunktionen zusammengeschaltet sind?

Bitte nimm mir das nicht uebel, hab frueher selbst Users Manual 
geschrieben und die sind nie ausfuehrlich genug aber immer zu lang ;-)

Ach ja, hab was vergessen. Deine Frage ist etwas merkwuerdig gestellt. 
Eigentlich moechtest du nicht wissen wie ein ARM (das ist der Core mit 
dem ASM Befehlssatz) funktioniert, sondern wie ein bestimmter Chip 
funktioniert und den hast du noch nicht mal benannt. Atmel hat > 50 ARM 
basierende Chips.

Gruss, Robert

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du schon Ahnung hast, dann ist es ganz einfach:

1.) Die CPU hat beist einen umfangreichen Clock-Generator mit PLL und 
anderen Qlock-Quellen (Intern, Extern, 32KHz Extern usw.) Die muss man 
zu anfang einstellen.

2.) Alle Pherieperie-Teileinheiten haben extra Clock, den man aktivieren 
muss (die haben meist so viel Pheriperie drin, da spart man doch einige 
mA Strom). Dieser Extra Clock kann anderes parametriert werden als wie 
der CPU Clock (andere Taktrate, siehe Datenbaltt über größt mögliche 
Taktrate dieser Pheriperieeinheit).

3.) Alle IO_Port sind umfangreich in der Parametrierung, (Eingang mit 
Pull-Up/Down, Analogeingang, Ausgang, Ausgangs Frequenz usw.)

Jetzt wo Du das weißt, sollte es leicht fallen etwas mit einem 
ARM7-Controller anfangen zu können.

PS: Besser einen Cortex-M3 nehmen, denn der Cortex hat gleich einen 
Systemtimer integriert. (z.B. für ms Takt)

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.elektor.de/products/books/english/c-pro...

Hat mir auch geholfen. Ist zwar in englisch aber trotzdem gut lesbar.

Gruß Daniel

Autor: Beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht ganz konkret um den AT91SAM7X256. Dafür existieren ja schon ein 
paar Beispiele im Internet, aber die fangen leider nicht bei Null an.
Wenn ich jetzt mein eigenes Programm schreiben will, verstehe ich schon 
nicht, wie ich vernünftig die Hardware initialisiere.
/* Enables the PIO to control the corresponding pin
 * (disables peripheral control of the pin). */
AT91C_BASE_PIOB->PIO_PER = LED_MASK; // Set in PIO mode
AT91C_BASE_PIOB->PIO_OER = LED_MASK; // Configure in Output

/* Enable the peripheral clock. */
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB;
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_EMAC;

Die Kommentare hierbei sind zu dürftig, als das ich jetzt wüsste, wie 
ich das bei mir anpassen müsste und das Datenblatt des Controllers setzt 
da auch schon ein gewisses Grundwissen voraus, sodass ich auch nach 
mehrmaliger Lektüre desselben nicht weiter weiß.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.