Øvelse+4+-+Linux+Kerne+Moduler

=Lav dit første kernemodul= Vi har kopiret helle world programmet fra bogen "Linux Device Drivers" og indskrevet makefilen fra slides angående Linux Kernel Modules. Når makefilen skal laves til programmet, er denne fil meget følsom overfor opbygningen og navngivningen. Fx skal
 * makefilen starte med stort M --> Makefile
 * hvis der står: $(MAKE) på en linje i makefilen, skal man i makefilen huske at bruge et TAB-indryk. Ellers virker makefilen ikke

Vi kopirede hello.ko over til target og prøvede at skrive dmesg. Dette viste ingen kernel besked med Hello World. For at få programmet loadet i kernel skrives:
 * insmod hello.ko --> Hvis der skrives dmesg, kommer der en kernel besked: Hello World!
 * rmmod hello.ko --> Hvis der skrives dmesg, kommer der en kernel besked: Goodbye, cruel world!

Altså så benytter man dmesg, for at læse printk beskeder!

=Få lysdioden fra sidste øvelse til at lyse= Vi har igen fulgt opgaven og indsat de to kode stumper i henholdsvis init funktionen og exit funktionen.

Først skal vi sørge for at at sætte LED3 (LED1 og LED2 bliver brugt) til høj, så den altså lyser. Dette gøres i init code format="c" //LED3 bliver output iowrite32(ioread32(REG_GPIO6_OE)&~(1<<4), REG_GPIO6_OE);

//Tænd for LED3 iowrite32(ioread32(REG_GPIO6_DOUT)&~(1<<4), REG_GPIO6_DOUT); code

i exit slukkes LED3 igen code format="c" // LED3 slukkes iowrite32(ioread32(REG_GPIO6_DOUT)| (1<<4), REG_GPIO6_DOUT);

// Memory bliver frigivet release_mem_region (0x49058034, 12);

code