对于lpc3250板,我们必须开发一个Linux内核模块来控制PWM输出。我创建了一个“帮助程序”模块,其中包含PMW1_ENABLE之类的方法,这些方法将正确的位设置为1。
不幸的是,当我创建多个.c和.h文件时,我遇到了问题。当我将所有代码放入一个文件中时,该解决方案可以正常工作。当我将它很好地分割为其他.c和.h文件时,发生了一些奇怪的事情。即使只是printk语句也不会显示在控制台上。
最奇怪的部分是,在交叉编译过程中,未显示任何错误,因此看起来二进制文件可以,但不是。
这听起来像家族吗?我的makefile可能有问题吗?
ARCH := arm
CROSS_COMPILE := /usr/local/xtools/arm-unknown-linux-uclibcgnueabi/bin/arm-linux-
CC= $(CROSS_COMPILE)gcc
obj-m := pwmdriver.o
pwmdriver-objs := pwmhelper.o pwmdriver.o
KDIR := /home/student/felabs/sysdev/tinysystem/linux-2.6.34
WORKINGDIRFIXED := /home/student/PRT/5_AssigPWM
export
all:
$(MAKE) -C $(KDIR) M=$(WORKINGDIRFIXED) modules
clean:
$(MAKE) -C $(KDIR) M=$(WORKINGDIRFIXED) clean