Hallo, ich bin neu hier und habe gleich einige Fragen. Meine Aufgabe besteht darin mit dem miniModul 167 Dateien in den Flash-Speicher zu schreiben und wieder auszulesen. Ich benutze Microvision 3 von Keil. 1. Frage: Wie stelle ich in C SYSCON und BUSCON0 ein? Diese sind ja anscheinend wichtig, damit ich z.B. den EBC einschalten kann. 2. Frage: Ab welcher Adresse geht der Flash-Speicher eigentlich los. Beginnt der Flash-Speicher bei 0x00000 los oder hat man immer den Offset von den ersten 2 Sektoren, da ja dort eigentlich u.a. die SFRs drinstehen. 3. Frage: In der Anlage ist eine C-Datei, die Flashroutinen für den AM29F160DB enthält. Kann man diese evtl. mit einigen Anpassungen auch für den AM29F010 benutzen? Außerdem verstehe ich den Befehl "M16(base_adr + 0xAAA) = 0xAA;" nicht. Kann mir da jemand helfen. Diese Fragen sind jetzt sicherlich recht stümperhaft gestellt, aber vielleicht kann mir ja trotzdem jemand helfen. Ich scheitere wie gesagt leider schon an den Einstellungen für SYSCON und BUSCON0. Vielen Dank für eure Hilfe
Marc Fischer schrieb: > Hallo, > > ich bin neu hier und habe gleich einige Fragen. > > Meine Aufgabe besteht darin mit dem miniModul 167 Dateien in den > Flash-Speicher zu schreiben und wieder auszulesen. Ich benutze > Microvision 3 von Keil. µVision3 > 1. Frage: Wie stelle ich in C SYSCON und BUSCON0 ein? Diese sind ja > anscheinend wichtig, damit ich z.B. den EBC einschalten kann. Knappe Antwort: Datenblatt vom µC lesen. > 2. Frage: Ab welcher Adresse geht der Flash-Speicher eigentlich los. > Beginnt der Flash-Speicher bei 0x00000 los oder hat man immer den Offset > von den ersten 2 Sektoren, da ja dort eigentlich u.a. die SFRs > drinstehen. ? Stellt Du mit der entsprechenden EBC-Konfiguration und dem verwendeten CS ein. > 3. Frage: In der Anlage ist eine C-Datei, die Flashroutinen für den > AM29F160DB enthält. Kann man diese evtl. mit einigen Anpassungen auch > für den AM29F010 benutzen? Außerdem verstehe ich den Befehl > "M16(base_adr + 0xAAA) = 0xAA;" nicht. Kann mir da jemand helfen. > > Diese Fragen sind jetzt sicherlich recht stümperhaft gestellt, aber > vielleicht kann mir ja trotzdem jemand helfen. Ich scheitere wie gesagt > leider schon an den Einstellungen für SYSCON und BUSCON0. > > Vielen Dank für eure Hilfe
Zu den SYSCON(bzw. BUSCON)-Einstellungen: Es ist so, dass ich im Programm gern diese Einstellungen vornehmen möchte. Wenn ich jetzt z.B. "SYSCON=0x109C;" als Befehl eingebe und mir im Debug-Modus, das Register anschaue, dann steht dieses bspw. auf 0x0004, obwohl das so weder in der Start-Up-File noch in meinem Befehl so steht :( Zu der dritten Frage hoffe ich, dass das mit dem Datenanhang jetzt klappt. Frage bleibt aber immer noch offen.
Der Code sagt ja erst mal gar nichts aus. Da werden auch keine Basis-Konfigurationen durchgeführt. Ist übrigens für die ARM-µC-Familie - willst Du wohl irgendwie für den C166-Core Übernehmen? Egal. Du hast doch deine Startup-Datei. In der konfigurierst Du alle notwendigen Register. Prüfe doch mal nach, ob die von Dir ausgelesene Konfiguration aus dem Register zufälligerweise die Default-Konfiguration nach einem Reset ist. Das würde erklären, dass das Register gar nicht konfiguriert wird. In der Startup-Datei (Originale von Keil) werden nämlich funktionale Konfigurationsgruppen gebildet (z.B. für den CS0, CS1, usw.): ; INIT_SYSCON1: Init SYSCON1 register ; --- Set INIT_SYSCON1 = 1 to initilize the SYSCON1 register $SET (INIT_SYSCON1 = 1) Du solltest auch schauen, ob die Register überhaupt im laufenden Betrieb geändert werden können. Also nach "EINIT".
Hallo, Ich habe mittlerweile eine AMD_flash.c und AMD_flash.h gefunden, die die richtigen Routinen für das minimodul enthalten sollten, allerdings habe ich noch Probleme bei der Anwendung. Ich weiß nicht welche Adresse ich eintragen soll, weil ich nicht genau weis, wo mein Flash-Speicher liegt. Ich habe an BUSCON und ADRSEL nirgends was verstellt, da nach meinen Recherchen im Handbuch schon alles eingestellt ist für das beschreiben des Flashs. Kann mir jemand bei der adressvergabe helfen? Im Handbuch des Flash-Speichers AM29F010 steht nämlich auch was von einer Linksverschiebung der Adressen. Ich weiß dadurch aber eben nicht was ich konkret für eine Adresse in die Flash-Routine eintragen sollte, wenn ich beispielsweise in Sektor6 des Speichers schreiben will. Wer kann mir helfen? :(
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.