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/200000632?_requestid=75269 ...
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
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)
http://www.elektor.de/products/books/english/c-programming-for-embedded-microcontrollers.934392.lynkx Hat mir auch geholfen. Ist zwar in englisch aber trotzdem gut lesbar. Gruß Daniel
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.
1 | /* Enables the PIO to control the corresponding pin
|
2 | * (disables peripheral control of the pin). */
|
3 | AT91C_BASE_PIOB->PIO_PER = LED_MASK; // Set in PIO mode |
4 | AT91C_BASE_PIOB->PIO_OER = LED_MASK; // Configure in Output |
5 | |
6 | /* Enable the peripheral clock. */
|
7 | AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA; |
8 | AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB; |
9 | 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ß.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.