Guten Tag miteinander, ich hoffe, ich finde hier eine Antwort auf meine Frage. Ich möchte ein ausgewähltes Testmuster in den Daten-RAM des Mikrocontrollers schreiben. Was muss ich tun, damit mir das gelingt? Ich sage schon mal vielen Dank.
Was ist ein Testmuster? Einige Leute hier versuchen "Testmuster" (Samples) von IC's bei Herstellern oder Distributoren zu "schnorren"... Falls du aber normale Daten (Registerinhalte) mit dem SRAM tauschen willst, dann schau dir mal die Transferbefehle an, die im Datenblatt aufgelistet sind. Das sind eine ganze Menge, da man das SRAM auf verschiedene Art und Weise ansprechen kann. Die meisten fangen mit LD oder ST an... ...
Ich möchte nicht "schnorren". Bin Student und möchte ne Aufgabe lösen. Also ganz normal auf den Controller zugreifen. Kannst du mir denn einen Befehl nennen, mit dem ich unter C Registerinhalte auslesen kann?
Ohne daß Du den Controller, den verwendeten C-Compiler und das nennst, was für Dich ein "Register" sein mag, kann diese Frage nicht beantwortet werden. War die Frage vor zwei Postings in diesem Thread nicht auch eine etwas andere?
Ich arbeite mit dem 80C537 von Infineon und einem dafür kompatiblen C-Compiler. Weißt du, wie man eine Bitfolge(Testmuster) in den Daten-RAM dieses Controllers schreiben kann?
pass auf Ich würde das so machen: #define anz_datem xxx byte * ptr; byte * ptr_AnfDaten; ptr = malloc(xxx); ptr_AnfDaten = ptr; int i=0; for(i=0;i< max ;i++,ptr++) { // hier solltest du die Testdaten generieren *ptr = Testmuster; // hier schreibst das Testmuster ins ram }
Schon mal vielen Dank. Es ist aber trotzdem immer schwer sich in die Syntax eines anderen reinzuversetzen. Könntest du es noch mal kurz kommentieren. Z.B. Was soll der Ausdruck "xxx" bedeuten? Was macht malloc?
xxx ist durch eine Dezimalzahl zu ersetzen, die die Größe des Speicherblocks angibt. malloc ist eine Funktion, die Speicher auf dem Heap belegt, und der liegt im RAM. Daher ist der Rückgabewert ein Pointer auf eben das Daten-RAM. Allerdings: Bevor Du hier noch weitere Fragen über C stellst, rate ich Dir dringend, Dir ein Buch über C anzuschaffen und durchzulesen. Der K&R (Kernighan & Ritchie, Programmieren in C, zweite Auflage, Hanser Verlag) ist da anzuraten.
Das hat im direkten Sinne nichts mit C-Programmierung zu tun. Malloc ist eine spezifische Funktion, die nur in Verbindung mit Controller-Programmierung verwendet wird. Trotzdem danke für den Buch-Tipp. Hab trotzdem noch mal ne Frage zur Syntax (die allerletzte). Was soll ich an die Stelle schreiben, wo der Kommentar steht: // hier solltest du die Testdaten generieren. Was meint "toddoy" damit?
"Das hat im direkten Sinne nichts mit C-Programmierung zu tun. Malloc ist eine spezifische Funktion, die nur in Verbindung mit Controller-Programmierung verwendet wird." Ich fass' es nicht. Wie kommst Du denn auf diese völig irrige Annahme? Bevor Du hier noch weitere Fragen über C stellst, rate ich Dir äußerst dringend, Dir ein Buch über C anzuschaffen und durchzulesen.
1. Meide malloc auf Mikrocontrollern, 2. Meide malloc auf PCs, 3. MEIDE malloc! Wie man ein Muster ins RAM schreiben kann, um beispielsweise Kollisionen zwischen zwei Datenbereichen feststellen zu können, kannst Du im GCC-Forum nachlesen. Da hat Peter Dannegger eine schöne Lösung zu geschrieben. Evtl. hilft Dir das ja weiter: http://www.mikrocontroller.net/forum/read-2-133551.html#135930
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.