全志D1s开发板裸机开发之坏境搭建

环境搭建

开发板介绍

张天飞老师编写的《RISC-V体系结构编程与实践》,里面的源码是基于 QEMU 模拟器的,可以认为它是一款虚拟的开发板。如果需要在真实开发板上学习,可以使用百问网的 DongshanPI-D1S 开发板。

DongshanPI-D1S 是百问网推出的一款基于 RISC-V 架构的学习裸机、 RTOS 的最小开发板。集成 CKLink 调试器,支持 OTG 烧录、 GDB 调试、串口打印,并将主芯片所有的信号全部引出,其中左右两侧兼容了树莓派的电源信号定义,可以很方便扩展模块。

D1S 是针对智能解码市场推出的高性价比 AIoT 芯片,它使用阿里平头哥的 64bit RISC-V 架构的 C906 处理器,内置了 64M DDR2 ,支持 FreeRTOS、RT-Thread 等 RTOS ,也支持 Linux 系统。同时集成了大量自研的音视频编解码相关 IP ,可以支持 H.265、H.264、MPEG-1/2/4、JPEG 等全格式视频解码,支持 ADC、DAC、12S、PCM、DMIC、OWA 等多种音频接口,可以广泛应用于智能家居面板、智能商显、工业控制、车载等产品。

在这里插入图片描述

下载资料

资料分两部分:开发板通用资料、《RISC-V体系结构编程与实践》的 D1S 源码。前者比较庞大,放在百度网盘;后者放在书籍配套的 GITEE 网站。

《RISC-V体系结构编程与实践》的 D1S 源码:

打开https://gitee.com/weidongshan/riscv_programming_practice,登录后按如下界面操作:

在这里插入图片描述

点击“克隆/下载”按钮之后,如下点击 下载ZIP 即可:

在这里插入图片描述

如果你没有点击 下载ZIP,而是使用 GIT 命令来下载,那么下载成功后还需要执行如下命令:

git checkout DongShanPI_D1

安装软件

需要安装如下5个软件,它们都位于网盘资料 开发板通用资料\05_开发配套工具\ 目录下:

Git\Git-2.39.1-64-bit.exe:我们把它当做命令行,不能使用 Windows 自带的 DOS 命令行、Powershell(在里面无法执行 make 命令)

make\make-3.81.exe:make 工具

toolchain\Xuantie-900-gcc-elf-newlib-mingw-V2.6.1-gdbtui-20230210.tar.gz:这是 Windows 版本的交叉编译工具,并且支持 TUI

CKLinkServer\T-Head-DebugServer-windows-V5.16.6-20221102-1510.zip:这是调试服务软件

xfe\xfe.exe:烧写工具

Git Bash

双击 开发板通用资料\05_开发配套工具\Git\Git-2.39.1-64-bit.exe 即可安装。

启动 Git Bash 有两种方法:

① 点击 开始->Git->Git Bash

② 在文件浏览器进入某个目录后,在空白处点击右键弹出菜单后选择 Git Bash Here

在 Git Bash 中各种命令的用法跟 Linux 完全一样,比如也有cdlsrm 等命令。在 Git Bash 中,对路径的表示方法也跟 Linux 一样,比如 D 盘下的 abc 子目录使用 /d/abc 表示,而不是 D:\abc

在 Git Bash 中使用命令简单示范如下:

在这里插入图片描述

make

双击 开发板通用资料\05_开发配套工具\make\make-3.81.exe 即可安装。安装时,要记住安装的路径,需要把安装路径下的 bin 目录放入环境变量 Path 里。

在这里插入图片描述

如下图把 C:\Program Files (x86)\GnuWin32\bin 添加进环境变量 Path :

在这里插入图片描述
在这里插入图片描述

验证:启动 Git Bash 后执行 make -v 命令,如下图所示。

在这里插入图片描述

交叉工具链

开发板通用资料\05_开发配套工具\toolchain\Xuantie-900-gcc-elf-newlib-mingw-V2.6.1-gdbtui-20230210.tar.gz 解压即可,注意路径名不要有中文。

解压后要确认如下目录里的文件不是 0 字节:

在这里插入图片描述

使用有些解压工具比如 banzip 可能会得到 0 字节的文件,建议使用 7-Zip 解压。

解压成功后,可以看到 riscv64-unknown-elf-gcc.exe 文件,如下图所示:

在这里插入图片描述

需要把 riscv64-unknown-elf-gcc.exe 文件所在目录放入 Path 环境变量里,具体方法可以参考 《1.3.2 make》。结果如下图所示:

在这里插入图片描述

验证:启动 Git Bash 后执行 riscv64-unknown-elf-gcc -v 命令,如下图所示( Git Bash 支持命令补全功能,输入 risc 后按 TAB 键会自动补全命令)。

在这里插入图片描述

调试服务软件

先解压文件: 开发板通用资料\05_开发配套工具\CKLinkServer\T-Head-DebugServer-windows-V5.16.6-20221102-1510.zip

再双击里面的 setup.exe 即可安装。

烧写工具

开发板通用资料\05_开发配套工具\xfel 目录复制到其他非中文路径即可。

还需要把 xfel.exe 文件所在目录放入 Path 环境变量里,具体方法可以参考 《1.3.2 make》 。结果如下图所示:

在这里插入图片描述

验证:启动 Git Bash 后执行 xfel --help 命令,如下图所示。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/726574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python web自动化测试 —— 文件上传!

​文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 步骤:1、找到定位元素,2&#…

Git分支操作

Git分支操作 理解分支查看当前分支git branch 查看有几个分支git branch 新分支的名字 创建新分支git checkout -b 分支名 直接创建并切换到该分支下 切换分支git checkout 分支名 切换到指定分支 合并分支git merge 分支名 合并指定名字的分支 删除分支git branch -d 分支 删…

Linux:kubernetes(k8s)探针的简介(7)

相当于我们用于监控容器的一个东西,通过给我们的不同探针来判断容器内的状态情况,实现故障的一个自动恢复。 我们在上一章的yaml文件中写入了一个这个东西 那么他什么情况下重启,就是通过探针进行一个监控,加入监控某一个端口&…

云原生(一)、linux快速上手

Linux是一种开源的Unix-like操作系统内核。它是由Linus Torvalds于1991年首次发布,其后经过全球的自由软件社区的持续开发和改进。Linux内核是操作系统的核心部分,但通常与GNU项目合作,以形成完整的操作系统,被称为Linux发行版&am…

ROS从入门到精通4-2:Docker安装ROS、可视化仿真与终端复用

目录 0 专栏介绍1 Docker安装ROS2 Docker可视化仿真2.1 显示配置2.2 启动容器 3 终端复用工具3.1 session操作3.2 window操作3.3 pane操作3.4 其他操作 0 专栏介绍 本专栏旨在通过对ROS的系统学习,掌握ROS底层基本分布式原理,并具有机器人建模和应用ROS…

机器学习项目的流程:从数据到部署

目录 前言1 数据收集1.1 任务定义与数据需求明确1.2 数据采集与清洗 2 模型训练2.1 数据预处理2.2 选择适当的模型2.3 模型训练与调优2.4 模型评估 3 模型部署3.1 部署环境准备3.2 模型集成3.3 测试和优化 4 模型维护和更新4.1 模型性能监测4.2 数据漂移处理4.3 定期更新模型 结…

Unity 整体界面淡入淡出效果

在Unity中,如果我们要实现控制多个组件同时淡出,同时淡入的效果,可以使用DOTween插件实现。 如图,一个页面中带有背景,一张图片,一个文本,一个滑动条。 要实现以上界面的整体淡入淡出&#xff…

PolarDB for PostgreSQL-概述

阿里云数据库的概述 本篇罗列了一些知识点和结构。 日志 2. 同步复制:下降20% 异步复制:数据丢失风险, 部署 1.示例: vim polarx.toml 1.测试主库和备库数据一致性 备库是否一致性读 一个节点荡掉,提供服务。 GMS CN…

【DAY08 软考中级备考笔记】机组:计算机组成和数据转换

机组:计算机组成和数据转换 3月2日 – 天气:晴 1. 计算机的基本组成结构 计算机的硬件由运算器,控制器,存储器,输入和输出设备组成其中,控制器和运算器成为CPU控制器又分为了内部存储器和外部存储器。内部…

应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控

作者:古琦 在现代软件架构中,微服务已成为构建可扩展和灵活应用程序的流行方式。每个微服务负责应用程序的一部分功能,它们共同工作以提供完整的服务。由于微服务架构的分散特性,监控变得至关重要,有效的微服务监控是…

AI预测福彩3D第4弹【2024年3月7日预测】

经过前面几次的预测,7码命中率已经有了明显提高,今天,继续咱们的预测。 老规矩,先给各位展示下百十个的神经网络蒙特卡洛统计频次图及部分号码的冷温热走势图。 最终,经过研判分析,2024年3月7日福彩3D的七…

sql 注入 之sqli-labs/less-5 双注入,也称:报错注入

该关卡返回正确或者错误页面,还有错误的代码,所以可以使用报错注入。报错注入的方式: updatexml 函数注入: mysql5.1.5 版本以上支持该函数,返回数据限制32位 模板:select * from user where id1 and (updatexml(&q…

一次一对一服务引起的沉思和笑话(微信号Stefan)

前情提要 客户需求: 分析页面代码和接口请求协议和参数需求,将人工下载视频怎么获得最终的视频链接,这一逻辑清晰的展示并讲解清除。我询问了是否需要成品爬虫,他说代码他自己能搞定。 我给的价格选择: 第一种、首…

超好用的golang工具分享

go-callvis-代码调用关系的可视化工具 go-callvis是一个代码调用关系的可视化工具,它可以帮助我们了解指定项目代码的结构,以达到更快的理解代码意图的目的。 工具使用简单,步骤如下: // 1. 安装 git clone https://github.com…

蓝桥杯练习系统(算法训练)ALGO-983 最大获利

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 Chakra是一位年轻有为的企业家,最近他在进军餐饮行业。他在各地开拓市场,共买下了N个饭店。在初期的…

python 爬虫爬取知乎LOL图片(亲测)

获取信息 访问url后按f12调试 点击network 定位图片信息: 可以看到,每个图片的名字和下载地址在标红处,示例如下: data-actualsrc“https://pic4.zhimg.com/v2-1681ff26afbd5f92aa5790b4dee6a63f_b.jpg” 现在就是requests访问…

Linux之线程概念

目录 一、细粒度划分 1、堆区细粒度划分 2、物理内存和可执行程序细粒度划分 3、虚拟地址到物理地址的转化 二、线程的概念 1、基本概念 2、线程的优点 3、线程的缺点 4、线程异常 5、线程用途 三、Linux下的进程和线程 一、细粒度划分 1、堆区细粒度划分 在语言…

MySQL 备份方案

优质博文:IT-BLOG-CN 一、为什么要备份 【1】容灾恢复:硬件故障、不经意的 Bug 导致数据损坏,或者服务器及其数据由于某些原因不可获取或无法使用等(例如:机房大楼烧毁,恶意的黑客攻击或 Mysql 的 Bug 等&…

8、Linux驱动开发:驱动-读写接口实现(readwrite)

目录 🍅点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记…

Seata 2.x 系列【4】产品简介

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Seata 版本 2.0.0 源码地址:https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 概述2. 发展历史3. 核心术语3.1 TC3.2 TM3.3 RM 4.…