TOP
SSV SOFTWARE SYSTEMS REGISTER  REGISTER
Log in to check your private messages  Log in to check your private messages
START FAQ SEARCH MITGLIEDER PROFILE  Log in 
SSV-Forum
Zugriff auf den Expansion Bus

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/9200
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
nfgs



Joined: 08 Dec 2006
Posts: 3

PostPosted: 08.12.2006, 12:01    Post subject: Zugriff auf den Expansion Bus Reply with quote

Für eine Semester-Projektarbeit muss es mir möglich sein auf den Expansion Bus des DNP9200 zugreifen zu können.

Leider ist mir aus den Datenblättern, welche auf der CD vom SK23 (EVA9) mitgeliefert sind, nicht ersichtlich wie ich auf den Expansion Bus zugreifen kann.
Ist der Expansion Bus am External Bus Interface (EBI) des AT91RM9200 angeschlossen?
Falls ja, besteht weiterhin die Frage wie, da laut Datenblatt von Atmel das EBI über einen 16 oder 32-bit Daten Bus, einen bis zu 26-bit Adress Bus und 8 CS Leitungen verfügt. Am Expansion Bus befinden sich jedoch nur 8 Daten- 4 Adress- und 4 CS-Leitungen.
Oder erfolgt der Zugriff über den PIO Controller der über 32 programmierbare I/O Leitungen verfügt?

Sind diese Fragen geklärt besteht weiterhin die Frage ob ich unter dem embedded Linux direkt in einem Programm auf den Bus zugreifen kann, oder ich einen Kernel Mode Treiber für meine Peripherie programmieren muss.

Ich bitte um Ratschläge.
Danke schon mal im Voraus

Nicolas
Back to top
View user's profile Send private message
ssc



Joined: 05 May 2006
Posts: 36

PostPosted: 04.01.2007, 11:34    Post subject: Reply with quote

Hallo nfgs,

der externe Datenbus ist direkt an die Datenleitungen des AT91RM9200 angeschlossen.
Es werden nur die untern 8Bit verwendet. Ebenso verhält es sich mit den Adressleitungen. Es sind lediglich die unteren 4 Adress-Bits auf den Sockel geführt.

Die CS-Leitungen sind festen Adressen im Speicherraum des AT91RM9200 zugewiesen:
0x4000.0000 - 0x4FFF.FFFF Sockel-Pin CS1 (NCS3 des AT91) 8-bit R/W
0x5000.0000 - 0x5FFF.FFFF Sockel-Pin CS2 (NCS4 des AT91) 8-bit R/W
0x6000.0000 - 0x6FFF.FFFF Sockel-Pin CS3 (NCS5 des AT91) 8-bit R/W
0x7000.0000 - 0x7FFF.FFFF Sockel-Pin CS4 (NCS6 des AT91) 8-bit R/W

Siehe auch http://www.dilnetpc.com/dnp0070.htm

Über das EBI kannst du Waitstates, Zugriffszeiten und andere BUS relevante Dinge einstellen (siehe Datenblatt).

Schöne Grüße,

ssc
Back to top
View user's profile Send private message
nfgs



Joined: 08 Dec 2006
Posts: 3

PostPosted: 14.01.2007, 19:09    Post subject: Reply with quote

Danke für die Informationen. Jetzt sind wir jedoch auf ein weiteres Problem gestoßen.
Um vom Bus zu lesen, wollen wir ein Kernel Modul schreiben. Der Aktuelle Stand des Moduls ist dass es beim laden und entladen eine entsprechende Meldung auf der Konsole ausgibt. Mehr ist momentan nicht implementiert.
Kompiliert wurde das Modul mit der auf der CD enthaltenen Toolchain.
Das Problem ist, dass sich das Modul nicht laden lässt. Es erscheint folgende Fehlermeldung:
Code:

expbus.o: kernel-module version mismatch
          expbus.o was compiled for kernel version 2.4.0-test5-rmk1-np1
          while this kernel is version 2.4.27-vrs1-ssv1.

ich denke das liegt daran dass die falschen kernel header in der toolchain enthalten sind.
Meine Frage ist nun, wo ich die richtigen konfigurierten kernel header finde, oder auf welche Art ich dieses Problem lösen kann. Die kernel header Dateien müssen meines Wissens nach konfiguriert sein, so dass einfaches kopieren der header aus den Kernel Sourcen nicht aus reicht (Quelle: Building Embedded Linux Systems von Karim Yaghmour , O'REILLY ISBN 0-596-00222-X)

Gruß
Nico
Back to top
View user's profile Send private message
ssc



Joined: 05 May 2006
Posts: 36

PostPosted: 15.01.2007, 10:39    Post subject: Reply with quote

Hallo Nico,

du hast deinen Treiber mit den falschen Quellen übersetzt, oder in die falsche Kernelversion eingebaut.
Du solltest deinen Treiber in die Kernelquellen 2.4.27-vrs1-ssv1 des DNP/9200 einpflegen, bzw. diesen Kernel verwenden um deinen Treiber zu übersetzen.

Schöne Grüße,

ssc
Back to top
View user's profile Send private message
nfgs



Joined: 08 Dec 2006
Posts: 3

PostPosted: 15.01.2007, 14:41    Post subject: Reply with quote

Hallo ssc,
danke erstmal für die schnelle Antwort, jedoch war mir bereits klar dass ich den Treiber mit den falschen Quellen übersetzt habe.
Was ich eigentlich wissen wollte ist, wie ich die richtigen Kernel header in die Toolchain einbinde.
Im Verzeichnis "/usr/local/arm-linux/arm-linux/sys-include/linux" sind die Header der Version "2.4.0-test5-rmk1-np1"
Auf der mir zur Verfügung stehenden CD habe ich im Verzeichnis " Linux/src" folgende Dateien:
Code:

linux-2.4.27-vrs1-ssv1.tar.gz    # kernel sourcen
linux-2.4.27-vrs1-ssv1.diff.gz   # kernel patch
patch-2.4.27-vrs1.bz2            # kernel patch

Entpacke ich die Kernel-sourcen und kopiere die enthaltenen Header nach "sys-include/linux" kann ich das Modul erst gar nicht kompilieren, da die Header-Datei "version.h" nicht existiert (wird beim Konfigurieren des Kernels erzeugt).
Die Kernel-Sourcen scheinen bereits gepatcht zu sein, da der aufruf von patch mit den entsprechenden Parametern mir dies meldet (Reversed (or previously applied) patch detected!).
woher bekomme ich nun die passenden Kernel Header?

Gruß Nico
Back to top
View user's profile Send private message
ssc



Joined: 05 May 2006
Posts: 36

PostPosted: 16.01.2007, 10:30    Post subject: Reply with quote

Hallo Nico,

der Kernel von der CDROM enthält bereits alle Patches für unser Board.
Die Kernel Header der Toolchain können für alle 2.4er Kernel verwendet werden, die Header des DNP/9200 Kernel brauchen nicht in die Toolchain kopiert werden.
Am Besten du versetzt alles wieder in den Urzustand.

Dann versuch einmal mit der Toolchain so wie sie ist (oder war Wink ) einen lauffähigen Kernel zu erzeugen, um sicher zu gehen, das alles funktioiert.

Um den Treiber korrekt zu übersetzen musst du den Pfad zum 2.4.27 Kernel am besten in deinem Makefile "bekannt" machen. Schau dir mal das Beispiel ssvirq-demo auf der CDROM genauer an, da wird dieser Mechanismus benutzt.

Schöne Grüße,

ssc
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/9200 All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV SOFTWARE SYSTEMS

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2024 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015