在编译linux驱动的时候添加-g等调试选项将会很方便调试,如反汇编等。
添加方法很简单。只需要给环境变量EXTRA_CFLAGS赋值-g就行了,开始我以为需要明确指定-g,就像编译应用程序那样,gcc main.c -g -o test,原来系统中保留的环境变量EXTRA_CFLAGS,直接给他赋值就行了。
如下面的Makfile:
1 TOP := $(shell pwd)/../../..
2 -include $(TOP)/make/Makefile.param
3
4 MOD_PCM = snd-soc-pcm
5 MOD_I2S = snd-soc-i2s
6 MOD_CARD = snd-soc-card
7
8 MOD_NAME += $(MOD_PCM) $(MOD_I2S) $(MOD_CARD)
9
10 LINUX_SRC = $(KERNEL_DIR)
11 LINUX_SRC_MODULE = $(IMAGE_DIR)/sys/lib/modules/$(LINUX_VERSION)/kernel/sound/soc/
12 LINUX_VERSION = $(shell cat $(KERNEL_DIR)/include/config/kernel.release 2> /dev/null)
13 BASE_DIR = $(SYS_DIR)
14 EXTRA_CFLAGS = -g
15
16 ifneq ($(KERNELRELEASE),)
17 obj-m := $(MOD_PCM).o $(MOD_I2S).o $(MOD_CARD).o
18 $(MOD_PCM)-objs := pcm.o
19 $(MOD_I2S)-objs := i2s.o
20 $(MOD_CARD)-objs := card.o
21
22 else
23 PWD:=$(shell pwd)
24 default:
25 make -C $(KERNEL_DIR) M=$(PWD) modules
26
27 install:
28 install -d $(LINUX_SRC_MODULE)
29 install -m 644 -c $(addsuffix .ko,$(MOD_NAME)) $(LINUX_SRC_MODULE)
30 echo $(LINUX_VERSION)
31 /sbin/depmod -b $(BASE_DIR) -F $(LINUX_SRC)/System.map -v $(LINUX_VERSION) -a
32
33 clean:
34 rm -rf *.symvers *.order *.o *.mod.c *.mod.o *.ko .*.ko.cmd .*.o.cmd .tmp_versions
35 rm -rf $(addprefix $(LINUX_SRC_MODULE),$(addsuffix .ko,$(MOD_NAME)))
36 /sbin/depmod -b $(BASE_DIR) -F $(LINUX_SRC)/System.map -v $(LINUX_VERSION) -a
37 endif
38
39 cp:
40 cp -frv *.ko /home/tftpboot/me