mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DIL/NetPC9200_ssvirq


Autor: zeiro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen DIL/NetPC9200 und versuche gerade das Demobeispiel ssvirq 
zu compilieren. Leider bekomme ich folgende Fehlermeldung:

zeiro@6715b:~/test4$ make
/usr/local/arm-linux/bin/arm-linux-gcc -D__KERNEL__ -DMODULE 
-march=armv4 -mtune=arm9tdmi -I/usr/src/linux-2.4.27-vrs1-ssv1/include 
-Os -pipe -mapcs-32 -Uarm -Wall -Wstrict-prototypes -Wno-trigraphs 
-fno-strict-aliasing -fno-common -mshort-load-bytes -msoft-float -c 
ssvirq.c -o ssvirq.o
ssvirq.c: In function `ssvirq_init':
ssvirq.c:90: `AT91PS_SYS' undeclared (first use in this function)
ssvirq.c:90: (Each undeclared identifier is reported only once
ssvirq.c:90: for each function it appears in.)
ssvirq.c:90: parse error before `AT91_SYS'
ssvirq.c:94: `AT91_SYS' undeclared (first use in this function)
make: *** [ssvirq.o] Fehler 1

wie kann in nun herausfinden in welcher Header-Datei sich AT91_SYS 
befinden soll?
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <asm/io.h>
#include <asm/uaccess.h>

#include "ssvirq.h"

static volatile unsigned long ssvirq_count = 0;
static unsigned long *ssvirq_userptr = NULL;
static int ssvirq_used = 0, irqnr = SSVIRQ_IRQNUMBER;
.
.
.

/* load kernel module - insmod ssvirq.o... */
static int __init ssvirq_init(void) {

    AT91PS_SYS AT91_SYS = (AT91PS_SYS) AT91C_VA_BASE_SYS;

    /* change Source Mode Register for
       AIC entry 25 to positive edge triggered */
    AT91_SYS->AIC_SMR[25] = (0x3 << 5);
    /* PIO function disable - enable IRQ0 pin */
    AT91_SYS->PIOB_PDR = (1 << 29);

    /* register irq handler */
    if (request_irq(irqnr, ssvirq_interrupt, SA_INTERRUPT,
        "ssvirq", NULL)) {
        printk(KERN_ERR "ssvirq: can't get assigned irq %i\n", irqnr);
  return -EIO;
    }

    /* register character device handler */
    if (register_chrdev(SSVIRQ_MAJOR,"ssvirq",&ssvirq_fops)) {
  printk(KERN_ERR "ssvirq: unable to get major %d\n", SSVIRQ_MAJOR);
  free_irq(irqnr, NULL);
  return -EIO;
    }

    printk(KERN_INFO "ssvirq module installed.\n");

    return 0;
}

/* unload kernel module - rmmod ssvirq... */
static void __exit ssvirq_cleanup(void) {

    /* unregister irq handler */
    free_irq(irqnr, NULL);
    /* unregister character device handler */
    unregister_chrdev(SSVIRQ_MAJOR, "ssvirq");
    printk(KERN_INFO "ssvirq module removed.\n");
}

EXPORT_NO_SYMBOLS;

module_init(ssvirq_init);
module_exit(ssvirq_cleanup);

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.