Mod aaa-12 更新demo工程模板

RCA:
SOL:
修改人:huangxin
检视人:huangxin
This commit is contained in:
黄昕 2019-06-19 14:21:51 +08:00
parent 1cbcaf062c
commit 6ed6f48f81
4 changed files with 71 additions and 68 deletions

View File

@ -37,14 +37,14 @@ ARM64_CROSS_AS := aarch64-fsl-linux-as
ifeq ($(TARGET_TYPE), KO)
ARM64_CROSS_LD := aarch64-fsl-linux-ld
LINUX_CROSS_LD := ld
LINUX_CROSS_LD := ld
else
ARM64_CROSS_LD := $(ARM64_CROSS_CC)
LINUX_CROSS_LD := $(CC)
endif
# 检查必要的环境变量是否设置
ifeq ($(PLAT_ARM64), TRUE)
ifeq ($(PLAT_ARM64), TRUE)
# ARM64 SDK 环境变量
ifeq ($(SDKTARGETSYSROOT), )
@ -83,7 +83,7 @@ endif
ifeq ($(ENABLE_MAKE_LOG), TRUE)
MLOG :=
else
MLOG ?= @
MLOG ?= @
endif
# 判断构建模式 debug/release
@ -101,8 +101,8 @@ INSTALL_ROOT := $(addprefix ../,$(DIR)/$(TARGET_OUT_DIR))
endif
# 定义常用命令
RM = rm -rf
MKDIR = mkdir -p
RM = rm -rf
MKDIR = mkdir -p
CP = cp -f
ECHO_COLOR = echo
@ -112,7 +112,7 @@ ARM64_KERNEL := $(HUACHENG_ARM64_KERNEL)
LINUX_KERNEL := $(HUACHENG_LINUX_KERNEL)
endif
# 设置 ARM64 平台 SDK 头文件和库文件路径
# 设置 ARM64 平台 SDK 头文件和库文件路径
ARM64_SDK_INCLUDE := $(SDKTARGETSYSROOT)/usr/include
ARM64_SDK_LIBDIR := $(SDKTARGETSYSROOT)/usr/lib
@ -164,7 +164,7 @@ INSTALL_IDK_ITEM_COLOR := \033[36;48m\033[1m[INSTALL IDK ITEMS]\033[0m
TARGET_TYPE_COLOR := \t\033[35;48m\033[1m$(shell env printf "%5s" [$(TARGET_TYPE)])\033[0m
TARGET_OBJ_COLOR := \t\033[34;48m\033[1m$(shell env printf "%5s" [$(TARGET_OBJ)])\033[0m
TARGET_OBJ_COLOR := \t\033[34;48m\033[1m$(shell env printf "%5s" [$(TARGET_OBJ)])\033[0m
TARGET_MIX_COLOR := $(TARGET_TYPE_COLOR)$(TARGET_OBJ_COLOR)
PLAT_ARM64_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [ARM64])\033[0m$(TARGET_MIX_COLOR)
PLAT_LINUX_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [LINUX])\033[0m$(TARGET_MIX_COLOR)
@ -185,15 +185,15 @@ LINUX_EXTFLAG += -w
endif
TARGET_BOX ?= $(TARGET_NAME)
# 设置编译参数
# 设置编译参数
ifeq ($(TARGET_OBJ), DRV)
ifeq ($(PLAT_LINUX), TRUE)
LINUX_SYSTEM = $(shell $(CC) -print-file-name=include)
endif
ifeq ($(PLAT_ARM64), TRUE)
ifeq ($(PLAT_ARM64), TRUE)
ARM64_SYSTEM = $(shell $(ARM64_CROSS_CC) -print-file-name=include)
endif
@ -227,7 +227,7 @@ LINUX_EXTFLAG += $(DEBUG_CFLAGS) $(LINUX_DRV_CFLAGS) \
-I$(LINUX_KERNEL)/include/generated/uapi \
-include $(LINUX_KERNEL)/include/linux/kconfig.h
# ARM64 linux 内核模块编译参数,提取自 arm 模块编译命令行
# ARM64 linux 内核模块编译参数,提取自 arm 模块编译命令行
ARM64_DRV_CFLAGS := -nostdinc -isystem $(ARM64_SYSTEM) \
-D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing \
-fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 \
@ -238,7 +238,7 @@ ARM64_DRV_CFLAGS := -nostdinc -isystem $(ARM64_SYSTEM) \
-fno-optimize-sibling-calls -fno-var-tracking-assignments -g -Wdeclaration-after-statement -Wno-pointer-sign \
-fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack \
-Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types \
-DKBUILD_BASENAME='"$(TARGET_NAME).mod"' -DKBUILD_MODNAME='"$(TARGET_NAME)"' -DMODULE -mcmodel=large
-DKBUILD_BASENAME='"$(TARGET_NAME).mod"' -DKBUILD_MODNAME='"$(TARGET_NAME)"' -DMODULE -mcmodel=large
ARM64_EXTFLAG += $(DEBUG_CFLAGS) $(ARM64_DRV_CFLAGS) \
-I$(ARM64_KERNEL)/arch/arm64/include \
@ -248,14 +248,14 @@ ARM64_EXTFLAG += $(DEBUG_CFLAGS) $(ARM64_DRV_CFLAGS) \
-I$(ARM64_KERNEL)/arch/arm64/include/uapi \
-I$(ARM64_KERNEL)/include/uapi \
-I$(ARM64_KERNEL)/include/generated/uapi \
-include $(ARM64_KERNEL)/include/linux/kconfig.h
-include $(ARM64_KERNEL)/include/linux/kconfig.h
# x86 Linux 内核模块链接参数,提取自 x86 模块连接命令行
LINUX_DRV_LDFLAGS = -r -m elf_x86_64 -z max-page-size=0x200000 -T $(LINUX_KERNEL)/scripts/module-common.lds --build-id
LINUX_DRV_LDFLAGS = -r -m elf_x86_64 -z max-page-size=0x200000 -T $(LINUX_KERNEL)/scripts/module-common.lds --build-id
# arm64 Linux 内核模块链接参数,提取自 arm64 模块连接命令行
ARM64_DRV_LDFLAGS = -EL -r -T $(ARM64_KERNEL)/scripts/module-common.lds --build-id
else ifeq ($(TARGET_OBJ), APP)
# 用户态模块编译参数
# 用户态模块编译参数
ARM64_EXTFLAG += $(DEBUG_CFLAGS) -I$(ARM64_SDK_INCLUDE)
# show all warring
@ -334,10 +334,10 @@ PLAT_ARM64_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-arm64$(TARGET_EXT)
PLAT_LINUX_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-linux$(TARGET_EXT)
# ARM64 平台生成目标、编译参数、链接参数、依赖库
ifeq ($(PLAT_ARM64), TRUE)
ifeq ($(PLAT_ARM64), TRUE)
BUILD_TARGET += $(PLAT_ARM64_TARGET)
PLAT_ARM64_CFLAGS += -DPLATFORM_ARM64 $(ARM64_EXTFLAG)
PLAT_ARM64_LDFLAGS += $(ARM64_DRV_LDFLAGS)
PLAT_ARM64_CFLAGS += -DPLATFORM_ARM64 $(ARM64_EXTFLAG)
PLAT_ARM64_LDFLAGS += $(ARM64_DRV_LDFLAGS)
PLAT_ARM64_LIBFLAGS := $(ARM64_LIBFLAGS)
PLAT_ARM64_LIBS := $(ARM64_LIBS)
endif
@ -345,10 +345,10 @@ endif
# ARM64 平台生成目标、编译参数、链接参数、依赖库
ifeq ($(PLAT_LINUX), TRUE)
BUILD_TARGET += $(PLAT_LINUX_TARGET)
PLAT_LINUX_CFLAGS += -DPLATFORM_LINUX $(LINUX_EXTFLAG)
PLAT_LINUX_CFLAGS += -DPLATFORM_LINUX $(LINUX_EXTFLAG)
PLAT_LINUX_LDFLAGS += $(LINUX_DRV_LDFLAGS)
PLAT_LINUX_LIBFLAGS := $(LINUX_LIBFLAGS)
PLAT_LINUX_LIBS := $(LINUX_LIBS)
PLAT_LINUX_LIBS := $(LINUX_LIBS)
endif
# 根据源文件推算出生成目标的依赖项
@ -386,7 +386,7 @@ endif
endif
ifeq ($(UNMAKE_PROCESS), TRUE)
BUILD_TARGET :=
BUILD_TARGET :=
endif
ifneq ($(OPT), clean)
@ -407,8 +407,8 @@ endif
endif
endif
.PHONY : all
all: $(BUILD_TARGET)
.PHONY : all
all: $(BUILD_TARGET)
# Build ARM64
ifeq ($(PLAT_ARM64), TRUE)
$(PLAT_ARM64_TARGET): $(PLAT_ARM64_OBJS)
@ -417,32 +417,32 @@ $(PLAT_ARM64_TARGET): $(PLAT_ARM64_OBJS)
ifeq ($(TARGET_TYPE), LIB)
# 打包生成库文件
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) AR $@"
$(MLOG)$(ARM64_CROSS_AR) $(PLAT_ARM64_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_ARM64_LIBS)
$(MLOG)$(ARM64_CROSS_AR) $(PLAT_ARM64_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_ARM64_LIBS)
else
# 链接生成可执行文件
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) LD $@"
$(MLOG)$(ARM64_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(PLAT_ARM64_LDFLAGS) $+ $(PLAT_ARM64_LIBS)
ifeq ($(TARGET_STRIP), TRUE)
# 将目标的调试信息复制到另外一个新文件中
# 将目标的调试信息复制到另外一个新文件中
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) OBJCOPY $@.debug"
$(MLOG)$(ARM64_CROSS_OBJCOPY) --only-keep-debug $(TARGET_OUT_DIR)$@ $(TARGET_OUT_DIR)/$@.debug
# 清理掉目标中的调试信息
# 清理掉目标中的调试信息
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) STRIP $@"
$(MLOG)$(ARM64_CROSS_STRIP) -g $(TARGET_OUT_DIR)$@
# 建立目标文件和调试信息文件的管理,供 gdb 自动识别
# 建立目标文件和调试信息文件的管理,供 gdb 自动识别
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) OBJCOPY $@"
$(MLOG)$(ARM64_CROSS_OBJCOPY) --add-gnu-debuglink=$(TARGET_OUT_DIR)$@.debug $(TARGET_OUT_DIR)$@
endif
endif
endif
# C 源文件编译规则
$(PLAT_ARM64_DIR)/%.o : %.c
$(PLAT_ARM64_DIR)/%.o : %.c
-@test -d $(dir $@) || $(MKDIR) $(dir $@)
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) CC $<"
$(MLOG)$(ARM64_CROSS_CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(PLAT_ARM64_CFLAGS) -o $@ -c $<
# 汇编文件编译规则
$(MLOG)$(ARM64_CROSS_CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(PLAT_ARM64_CFLAGS) -o $@ -c $<
# 汇编文件编译规则
$(PLAT_ARM64_DIR)/%.o : %.s
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) CC $<"
@$(ECHO_COLOR) "$(PLAT_ARM64_COLOR) CC $<"
$(MLOG)$(ARM64_CROSS_CC) -c $< -o $@
endif
@ -459,32 +459,32 @@ else
# 链接生成可执行文件
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) LD $@"
$(MLOG)$(LINUX_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(PLAT_LINUX_LDFLAGS) $+ $(PLAT_LINUX_LIBS)
ifeq ($(TARGET_STRIP), TRUE)
ifeq ($(TARGET_STRIP), TRUE)
# 将目标的调试信息复制到另外一个新文件中
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) OBJCOPY $@.debug"
$(MLOG)$(OBJCOPY) --only-keep-debug $(TARGET_OUT_DIR)$@ $(TARGET_OUT_DIR)$@.debug
# 清理掉目标中的调试信息
# 清理掉目标中的调试信息
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) STRIP $@"
$(MLOG)$(STRIP) -g $(TARGET_OUT_DIR)$@
# 建立目标文件和调试信息文件的管理,供 gdb 自动识别
# 建立目标文件和调试信息文件的管理,供 gdb 自动识别
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) OBJCOPY $@"
$(MLOG)$(OBJCOPY) --add-gnu-debuglink=$(TARGET_OUT_DIR)$@.debug $(TARGET_OUT_DIR)$@
endif
endif
endif
# C 源文件编译规则
$(PLAT_LINUX_DIR)/%.o : %.c
-@test -d $(dir $@) || $(MKDIR) $(dir $@)
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) CC $<"
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) CC $<"
$(MLOG)$(CC) -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" $(PLAT_LINUX_CFLAGS) -o $@ -c $<
# 汇编文件编译规则
# 汇编文件编译规则
$(PLAT_LINUX_DIR)/%.o : %.s
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) CC $<"
$(MLOG)$(CC) -c $< -o $@
@$(ECHO_COLOR) "$(PLAT_LINUX_COLOR) CC $<"
$(MLOG)$(CC) -c $< -o $@
endif
# 安装功能
# 安装功能
.PHONY : install
install:
ifeq ($(INSTALL_ROOT), )
@ -500,7 +500,7 @@ ifneq ($(UNMAKE_PROCESS), TRUE)
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_ARM64_COLOR) $(TARGET_OUT_DIR)$(PLAT_ARM64_TARGET) $(PLAT_ARM64_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_ARM64_TARGET) $(PLAT_ARM64_PUBLISH_DIR)
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_ARM64_TARGET).debug $(PLAT_ARM64_PUBLISH_DEBUG_DIR)
endif
endif
ifneq ($(PLAT_ARM64_USER_INS_ITEMS), )
@$(ECHO_COLOR) "$(INSTALL_USER_ITEM_COLOR) $(PLAT_ARM64_COLOR) $(notdir $(PLAT_ARM64_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)"
@$(CP) $(PLAT_ARM64_USER_INS_ITEMS) $(PLAT_ARM64_PUBLISH_DIR)
@ -514,18 +514,18 @@ ifeq ($(PLAT_LINUX), TRUE)
-@test -d $(PLAT_LINUX_PUBLISH_DIR) || $(MKDIR) $(PLAT_LINUX_PUBLISH_DIR)
-@test -d $(PLAT_LINUX_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_LINUX_PUBLISH_DEBUG_DIR)
ifneq ($(UNMAKE_PROCESS), TRUE)
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_LINUX_COLOR) $(TARGET_OUT_DIR)$(PLAT_LINUX_TARGET) $(PLAT_LINUX_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(ECHO_COLOR) "$(INSTALL_COLOR) $(PLAT_LINUX_COLOR) $(TARGET_OUT_DIR)$(PLAT_LINUX_TARGET) $(PLAT_LINUX_TARGET).debug $(INSTALL_PATH_COLOR)"
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_LINUX_TARGET) $(PLAT_LINUX_PUBLISH_DIR)
@$(CP) $(TARGET_OUT_DIR)/$(PLAT_LINUX_TARGET).debug $(PLAT_LINUX_PUBLISH_DEBUG_DIR)
endif
ifneq ($(PLAT_LINUX_USER_INS_ITEMS), )
@$(ECHO_COLOR) "$(INSTALL_USER_ITEM_COLOR) $(PLAT_LINUX_COLOR) $(notdir $(PLAT_LINUX_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)"
@$(CP) $(PLAT_LINUX_USER_INS_ITEMS) $(PLAT_LINUX_PUBLISH_DIR)
endif
@$(CP) $(PLAT_LINUX_USER_INS_ITEMS) $(PLAT_LINUX_PUBLISH_DIR)
endif
ifneq ($(USER_MULTILE_PLATFORM_HEAD_ITEMS), )
@$(ECHO_COLOR) "$(INSTALL_MULT_PLAT_COLOR) $(PLAT_LINUX_COLOR) $(notdir $(USER_MULTILE_PLATFORM_HEAD_ITEMS)) $(INSTALL_PATH_COLOR)"
@$(CP) $(USER_MULTILE_PLATFORM_HEAD_ITEMS) $(SDK_HEADFILE_PUBLIST_DIR)
endif
endif
endif
endif
@ -534,11 +534,11 @@ endif
# 清理功能
.PHONY : cleanall
cleanall:
@$(ECHO_COLOR) "$(CLEAN_COLOR) $(PATH_COLOR) $(OUTPUT_DIR) $(BUILD_TARGET) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) $(TARGET_OUT_DIR) *.debug"
@$(ECHO_COLOR) "$(CLEAN_COLOR) $(PATH_COLOR) $(OUTPUT_DIR) $(BUILD_TARGET) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) $(TARGET_OUT_DIR) *.debug"
@-$(RM) $(TARGET_OUT_DIR) $(OUTPUT_DIR) $(BUILD_TARGET) $(notdir $(DEPEND_LIB)) $(USER_CLEAN_ITEMS) *.debug
.PHONY : clean
clean:
@$(ECHO_COLOR) "$(CLEAN_COLOR) $(PATH_COLOR) $(ALL_OBJS) $(BUILD_TARGET) $(ALL_DEPS) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) $(TARGET_OUT_DIR) *.debug"
clean:
@$(ECHO_COLOR) "$(CLEAN_COLOR) $(PATH_COLOR) $(ALL_OBJS) $(BUILD_TARGET) $(ALL_DEPS) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) $(TARGET_OUT_DIR) *.debug"
@-$(RM) $(TARGET_OUT_DIR) $(ALL_OBJS) $(BUILD_TARGET) $(ALL_DEPS) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) *.debug

View File

@ -1,11 +1,11 @@
/* This file is auto generated,for vBRAS version info */
/* This file is auto generated,for sGATE version info */
/* Used readelf to get this information form driver of application */
/* "readelf --debug-dump=macro <filename>" */
#define vBRAS_COMPILE_DATE "2019-05-30"
#define vBRAS_COMPILE_TIME "14:14:26"
#define vBRAS_COMPILE_MAJOR "20190530"
#define vBRAS_COMPILE_SUB "141426"
#define vBRAS_COMPILE_BY "hx"
#define vBRAS_COMPILE_HOST "esgwdev01"
#define vBRAS_GIT_TAGS ""
#define vBRAS_GIT_VERS ""
#define sGATE_COMPILE_DATE "2019-06-19"
#define sGATE_COMPILE_TIME "14:18:13"
#define sGATE_COMPILE_MAJOR "20190619"
#define sGATE_COMPILE_SUB "141813"
#define sGATE_COMPILE_BY "hx"
#define sGATE_COMPILE_HOST "esgwdev01"
#define sGATE_GIT_TAGS "c0ad51e6f-dev"
#define sGATE_GIT_VERS "c0ad51e6f27589e51268ec92a14ee1cb701a2d5f"

12
Product/user/demo/main.c Executable file → Normal file
View File

@ -6,20 +6,18 @@
/**
* @brief
* @note
* @param argc:
* @param **argv:
* @retval 0
* @param argc
* @param argv
* @return 0
*/
int main(int argc, char **argv)
{
int c, optidx = 0;
opterr = 0;
static struct option long_opts[] = {
{ "help", 0, 0, 'h' },
{ "version", 0, 0, 'v' },
// TODO 添加其它需要处理的参数配置
{ 0, 0, 0, 0 }
{NULL, 0, 0, 0}
};
while((c = getopt_long(argc, argv, "hv", long_opts, &optidx)) != -1)
@ -27,7 +25,7 @@ int main(int argc, char **argv)
switch (c)
{
case 'v':
fprintf(stdout, "User demo version: %s(%s)\n", sGATE_GIT_TAGS, sGATE_GIT_VERS);
fprintf(stdout, "User demo version: %s(%s)\n", sGATE_GIT_TAGS, sGATE_GIT_VERS);
break;
//TODO 添加其它必要处理参数过程

View File

@ -1,6 +1,11 @@
#include <stdio.h>
/**
* @brief Get the version object
*
* @return const char*
*/
const char* get_version(void)
{
return "0.0.0.2";
}
}