hi3516 mpp modules
原文链接: hi3516 mpp modules
两种方法:
直接通过内核编译
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
内核文件夹外部编译
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
export KERNEL_ROOT?=$(SDK_PATH)/../../osdrv/opensource/kernel/$(KERNEL_NAME)$(POSTFIX)
export CC:=$(CROSS)gcc
export AR:=$(CROSS)ar
OSTYPE:=linux
TARGET := hi_mipi_tx
#*************************************************************************
# 支持文件夹多个c源文件
SRCS := mipi_tx.c \
mipi_tx_hal.c
INIT_FILE := ../init/$(OSTYPE)/mipi_tx_init.c
SRCS += $(INIT_FILE)
#*************************************************************************
EXTRA_CFLAGS += -I./
EXTRA_CFLAGS += -I$(OSAL_ROOT)/include
ifeq ($(OSTYPE),liteos)
EXTRA_CFLAGS += $(CFLAGS)
endif
.PHONY: all clean
all: $(OSTYPE)_build
clean: $(OSTYPE)_clean
#############################################
$(TARGET)-objs = $(SRCS:%.c=%.o)
ifneq ($(KERNELRELEASE),)
obj-m += $(TARGET).o
endif
linux_build:
@$(MAKE) -C $(KERNEL_ROOT) M=$(PWD) modules