Avatar billede bandersen2200 Nybegynder
09. juni 2011 - 22:38 Der er 7 kommentarer og
1 løsning

Linux input subsystem - /dev/event0

Hej

Jeg prøver at læse et input gennem Linux input subsystem. Jeg har følgende kode:

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/input.h>

#define EVLED_AI_2 0

int main (void)
{
    struct input_event ev;
    int fd;
    /* Turn do5 on */
    fd = open("/dev/event0", O_RDWR);
    ev.type = EV_LED;
    ev.code = EVLED_AI_2;
    int temp = ev.value;
    ev.value = 1; /* 0=off, 1=on */
    write (fd, &ev, sizeof(ev));
    close(fd);
    return 0;
}

Problemet er at <linux/input.h> ikke er en del af den MinGW GCC compiler pakke ? Jeg har prøvet at finde filen på nettet men så skal man blot tilføje flere og flere filer. Nogen der ved om man kan hente en samlet udvidelse af filer der indeholder <linux/input.h> og alle de filer den har brug for ?
Avatar billede bertelbrander Novice
09. juni 2011 - 23:54 #1
MinGW er ikke Linux, så det er sandsynligt at det ikke kan lade sig gøre; der er vist ikke rigtigt nogen event system på Windows.

Så hvad er det du forsøger at opnå?
Avatar billede bandersen2200 Nybegynder
10. juni 2011 - 08:43 #2
Hej

Jeg sidder og programmere en ARM processor der kører Linux. Jeg bruger MinGW compileren for at kunne afvikle min C kode på Linux kernen.

Mvh
Benjamin
Avatar billede bandersen2200 Nybegynder
10. juni 2011 - 15:58 #3
Hej

Jeg mangler blot en tilføjelses pakke, der indeholder filerne der understøtter <linux/input.h>. Så jeg kan compile programmet og køre det på min Linux kerne.

Håber nogen kan hjælpe ?? Er der nogen C/Linux eksperter ?
Avatar billede bertelbrander Novice
10. juni 2011 - 19:44 #4
Udover header-filen (input.h) skal du bruge noget objekt kode, oftest i form af et bibliotek. Du kan ikke bare finde en header-fil, og biblioteket er specifikt for processoren.
Jeg ved ikke om det findes, og i så fald hvor. Hvilken ARM er det? Hvilken Linux? Hvilket board?
Avatar billede bandersen2200 Nybegynder
11. juni 2011 - 12:59 #5
Hej bertelbrander

Tak for interessen, jeg sidder rimelig fast med det. Der står følgende i manualen om kernen:

The kernel used is a recent 2.6 kernel (http://www.kernel.org/pub/linux/kernel/v2.6/), currently version 2.6.35.x, with a board support patch for the SBC-2800. The patch mainly contains drivers for the specific SBC-2800 hardware functions.

Processoren er en 400 MHz ARM9 CPU (Atmel AT91SAM9G20).

Udviklingskortet er danskproduceret og hedder SBC-2800/Nanobird. Her er et link til den: http://micro-technic.dk/hardwaredesignengineering/arm9-sbc

Mvh
Benjamin
Avatar billede bandersen2200 Nybegynder
11. juni 2011 - 13:02 #6
Her er et link til vejledningen til udviklingskortet: http://embeddedsolutions.dk/UM_2800_Series_R1.0.pdf
Avatar billede bandersen2200 Nybegynder
11. juli 2011 - 22:49 #7
Hej

Jeg har fundet ud af hvad jeg skal gøre mangler blot lidt hjælp til Eclips. Jeg skal have tilføjet følgende linux kerne til Eclips så den undersøger de h filer den indeholder: linux-2.6.39.2

Hvordan tilføjer jeg en sti i Eclips så den undersøger om linux/input.h eksistere i folderen linux-2.6.39.2 ?

Mvh
Benjamin
Avatar billede bandersen2200 Nybegynder
24. juli 2011 - 02:05 #8
Lukker spørgsmålet. Har ikke fået Eclips til at forstå de ønskede kommandoer, men da jeg bruger en anden compiler til at lave den om så C koden kan køre på Linux behøves jeg det ikke :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester