|
|
hellodrv.c
#include
#include
MODULE_LICENSE("GPL");
MODULE_AUTHOR("jj");
MODULE_DESCRIPTION("my first driver");
static int hello_init(void)
{
//printk(KERN_ALERT,"Hello, world\n");
printk("Hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk("Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile
CC = /opt/eldk/usr/bin/arm-linux-gcc
LD = /opt/eldk/usr/bin/arm-linux-ld
#CFLAGS = -D__KERNEL__ -I/HHARM9-EDU/kernel/include -Wall -DMODULE
#CFLAGS = -D__KERNEL__ -DMODULE
#CFLAGS = -D__KERNEL__ -DMODULE -I/disk/linux/linux-2.6.17.9/include
CFLAGS = -D__KERNEL__ -I/disk/linux/linux-2.6.17.9/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs -fno-strict-aliasing -fno-common -fno-common -pipe -march=armv4 -mtune=arm9tdmi -msoft-float -DMODULE
hellodrv.o: hellodrv.c
$(CC) $(CFLAGS) -c $^ -o $@
.PHONY: clean
clean:
-rm -f *.o
distclean:
@make clean
rm -f tags *~
编译输出信息:
[root@jj program]# make
/opt/eldk/usr/bin/arm-linux-gcc -D__KERNEL__ -I/disk/linux/linux-2.6.17.9/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs -fno-strict-aliasing -fno-common -fno-common -pipe -march=armv4 -mtune=arm9tdmi -msoft-float -DMODULE -c hellodrv.c -o hellodrv.o
[root@jj program]#
将hellodrv.o tftp到9200板子上,运行insmod就出现错误:
# insmod -f hellodrv.o
No module found in object
insmod: cannot insert `hellodrv.o': Invalid module format (-1): Exec format errr
Linux是2.6.17.9 |
|