一、安装海思的SDK
这一步在海思的说明文档中有,运行sdk.unpack
二、配置内核
进入osdrv/opensource/kernel/
根据里面的说明文档,没有内核就去下载内核,如果在www.kernel.org
网站下载内核十分慢,推荐使用镜像列表下载,链接:
https://mirror.bjtu.edu.cn/kernel/linux/kernel/
下载完对应的内核,根据文档进行打补丁,配置内核,编译内核
三、编译驱动为ko
将需要编译的驱动放入SDK目录下的drv/extdrv目录下
例如下面是我的驱动
下面是makefile
ifeq ($(EXTDRV_PARAM_FILE), )
EXTDRV_PARAM_FILE:=../Makefile.param
include $(EXTDRV_PARAM_FILE)
endif
SRCS := gpio_i2c.c
#INC += -I$(OSAL_ROOT)/linux/kernel/himedia
INC += -I$(OSAL_ROOT)/include
INC += -I$(REL_INC)
INC += -I$(DRV_ROOT)/extdrv/$(HIARCH)/gpio_i2c-1
EXTRA_CFLAGS += -DI2C_INTERNAL
EXTDRV_CFLAGS += $(INC)
EXTDRV_CFLAGS += $(INC)
#*************************************************************************
TARGET := hi_gpio_i2c-1
#*************************************************************************
# compile linux or HuaweiLite
include $(PWD)/../Make.$(OSTYPE)
在drv目录下执行make
执行make,若出现下面错误,说明没有make menucofig,需要去内核目录下配置一下
配置完内核后,再次编译没有错误,并成功编译出ko