嘉楠勘智k230开发板上手记录(三)

阅读: 评论:0

嘉楠勘智k230开发板上手记录(三)

嘉楠勘智k230开发板上手记录(三)

按照K230_GPU应用实战.md

一、开发环境的准备

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

mkdir my_vglite_code
cd my_vglite_code

Makefile

# 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. vglite_drm

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

 

最后一行就是文档里说的vglite_drm

2. 需要的代码

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

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

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

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

 3. 编译

 4. 上传k230并运行

上传

运行

 

 

本文发布于:2024-01-31 06:48:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170665490126380.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:上手   开发板   嘉楠勘智
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23