首页 >> 大全

嘉楠勘智k230开发板上手记录(三)--K230_GPU应用实战

2024-01-04 大全 24 作者:考证青年

按照应用实战.md

一、开发环境的准备

在src下创建文件夹,并在文件夹中创建

mkdir my_vglite_code
cd my_vglite_code

# SDK地址
K230SDK ?= /root/k230/k230_sdk-main
# 生成的可执行文件名字
BIN := test-vglite# 指定交叉编译器
CC := "$(K230SDK)/toolchain/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.0/bin/riscv64-unknown-linux-gnu-gcc"
CXX := "$(K230SDK)/toolchain/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.0/bin/riscv64-unknown-linux-gnu-g++"# 指定头文件搜索路径 
CFLAGS := -I"$(K230SDK)/src/little/buildroot-ext/package/vg_lite/inc" -I"$(K230SDK)/output/k230_evb_defconfig/little/buildroot-ext/host/riscv64-buildroot-linux-gnu/sysroot/usr/include"
CFLAGS += -I "$(K230SDK)/output/k230_evb_defconfig/little/buildroot-ext/host/riscv64-buildroot-linux-gnu/sysroot/usr/include/drm"# 指定库文件搜索路径
LDFLAGS += -L"$(K230SDK)/output/k230_evb_defconfig/little/buildroot-ext/target/usr/lib"# 指定链接库
LDFLAGS += -lvg_lite -lvg_lite_util -ldrm# 编译参数
LDFLAGS += -Wall -gCXXFLAGS := $(CFLAGS) 
CXXFLAGS += $(LDFLAGS)
# 代码所在目录
SRCDIR := ../my_vglitec_code# 编译结果目录
OBJDIR := ../my_vglitec_code/objs# wildcard 用于得到指定文件夹下所有指定匹配模式的文件
SRCS := $(wildcard $(SRCDIR)/*.c) $(wildcard $(SRCDIR)/*.cpp)# patsubst替换字符 filter函数的作用是从字符串列表中过滤出匹配指定通配模式的字符串
OBJS := $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(filter %.c, $(SRCS))) \$(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(filter %.cpp, $(SRCS)))
DEPS := $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.d,$(filter %.c, $(SRCS))) \$(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.d,$(filter %.cpp, $(SRCS)))all: $(BIN)$(OBJDIR):mkdir -p $(OBJDIR)$(BIN): $(OBJS)$(CXX) $(CXXFLAGS) $(OBJS) -o $@$(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR)$(CC) $(CFLAGS) -MMD -c $< -o $@$(OBJDIR)/%.o: $(SRCDIR)/%.cpp | $(OBJDIR)$(CXX) $(CXXFLAGS) -MMD -c $< -o $@-include $(DEPS)clean:rm -rf $(OBJDIR) $(BIN)install:cp $(BIN) "$(K230SDK)/output/k230_evb_defconfig/little/buildroot-ext/target/usr/bin"uninstall:rm "$(K230SDK)/output/k230_evb_defconfig/little/buildroot-ext/target/usr/bin/$(BIN)".PHONY: all clean install

二、编译 1.

官方文档对于编译的实例没有讲的很清楚。文档给了,但是make需要的代码没有说明白。我在里搜索才找到文件夹的位置

最后一行就是文档里说的

2. 需要的代码

把下的.c和.c拷贝到刚刚创建的文件夹中,然后把上一级目录的drm.c也拷贝到文件夹中。

关键的一点是,sdk/src中有多个drm.c

根据文件夹中的推断第二个是我们需要的。第一个中的代码跟第二个有差别,不清楚具体有什么用。第三个猜测是用于生成.so,因为他跟.so一样都没有和等函数的定义 。

这是拷贝完成的文件夹结构

嘉楠勘智k230开发板上手记录(三)--K230_GPU应用实战_嘉楠勘智k230开发板上手记录(三)--K230_GPU应用实战_

3. 编译

4. 上传k230并运行

上传

运行

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了