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

2024-01-03 19:59

本文主要是介绍嘉楠勘智k230开发板上手记录(三)--K230_GPU应用实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

按照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并运行

上传

运行

 

 

这篇关于嘉楠勘智k230开发板上手记录(三)--K230_GPU应用实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/566876

相关文章

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Java使用Tesseract-OCR实战教程

《Java使用Tesseract-OCR实战教程》本文介绍了如何在Java中使用Tesseract-OCR进行文本提取,包括Tesseract-OCR的安装、中文训练库的配置、依赖库的引入以及具体的代... 目录Java使用Tesseract-OCRTesseract-OCR安装配置中文训练库引入依赖代码实

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加