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

`