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
Interrupt Demo für PNP 2110 funktioniert nicht bei irqnr=42

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



Joined: 30 Oct 2006
Posts: 2
Location: Nordstemmen

PostPosted: 30.10.2006, 15:06    Post subject: Interrupt Demo für PNP 2110 funktioniert nicht bei irqnr=42 Reply with quote

Hallo all,

habe das Interrupt Demoprogramm getestet, allerdings mit dem PNP2110 (Forum dafür ist noch nicht vorhanden). User Space Applikationen und Kernel Module lassen sich mit der PXA Toolchain erstellen. Ein Versuch das Kernel Module mit irqnr=42 zu laden (insmod) schlägt fehl mit der Meldung: "ssvirq: can't get assigned irq 42". Es liegt offensichtlich daran, dass das Valid Flag der Interrupt Descritpion Table auf 0 steht. Ein Versuch mit set_GPIO_IRQ_edge(IRQ_TO_GPIO(irqnr), GPIO_RISING_EDGE) schlägt leider auch fehl. Erst wenn man den IRQ mit request(irqnr-2,...) anfragt läßt sich das Modul laden. Ein Vergleich von

IRQ_TO_GPIO(42) = 17 mit
IRQ_GPIO(17) = 40, (das sollte eigentlich der Rückweg sein, und damit sollte 42 wieder herauskommen)

läßt vermuten, dass in den MAKROS was nicht stimmig ist. Dies passt auch zum Verhalten der Interrupts. Ich bekomme auf IRQ=42 nämlich keine.

Habe ich etwas übersehen oder vergessen ?

Viele Grüße
Thomas
Back to top
View user's profile Send private message
mha



Joined: 05 May 2006
Posts: 28

PostPosted: 02.11.2006, 15:11    Post subject: Reply with quote

Hallo,

für die GPIO0 und GPIO1 wird der Macro IRQ_TO_GPIO() benutzt.
Bei den GPIO2 bis GPIO80 muß der Macro IRQ_TO_GPIO_2_80()
benutzt werden.

Folgendes Mapping (siehe http://www.dilnetpc.com/mht-dp2-01.pdf) für die
IRQ-Leitungen über das LCD-Interface beim PNP/2110 sollte funktionieren:

Linux Module Macros für "init_module()" (ssvirq.c)
--------------------------------------------------
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(70)),
GPIO_RISING_EDGE); /* GPIO70 = EXT_INT2 */
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(71)),
GPIO_RISING_EDGE); /* GPIO71 = EXT_INT3 */
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(72)),
GPIO_RISING_EDGE); /* GPIO72 = EXT_INT4 */
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(73)),
GPIO_RISING_EDGE); /* GPIO73 = EXT_INT5 */

Pin - Name - GPIOx - Linux Interrupt (irqnr)
------------------------------------------------
F1 - LCD.D12 - GPIO70 - 93 (=70+23)
E2 - LCD.D13 - GPIO71 - 94
E1 - LCD.D14 - GPIO72 - 95
E3 - LCD.D15 - GPIO73 - 96

Beispiel SSVIRQ Demo Modul beim PNP/2110 für den INT2 laden:


Marco Hasewinkel
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/2110 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