博流RISC-V芯片JTAG debug配置与运行
文章目录
- 1、Windows下安装与配置
- 2、Linux下安装与配置
- 3、芯片默认 JTAG PIN 列表
- 4、命令行运行JTAG
- 5、Eclipse下使用JTAG
1、Windows下安装与配置
- CKLink 驱动安装
Windows版驱动下载地址: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1666331581133/T-Head-DebugServer-windows-V5.16.5-20221021-1018.zip
解压后按照默认配置安装,安装成功后插上 cklink-lite 后,可以在设备管理器中找到 cklink-lite 已经找到

- 运行
双击桌面上的 T-HeadDebugServer 即可运行

正确连接 cklink-lite 与目标芯片,然后点击 T-HeadDebugServer 上的 Run debug server,如硬件连接正确,图标会由三角形编程圆形,并在软件窗口上显示芯片内核信息

Running Debug Server, auto to check the target at first...
T-HEAD: CKLink_Lite_V2, App_ver unknown, Bit_ver null, Clock 2526.316KHz,5-wire, With DDC, Cache Flush On, SN CKLink_Lite_Vendor-rog 2C115D.
+-- Debug Arch is RVDM. --+
+-- CPU 0 --+
RISCV CPU Info:WORD[0]: 0x0814050dWORD[1]: 0x11080000WORD[2]: 0x202bf97bMISA : 0x40909125
Target Chip Info:CPU Type is E907FP, Endian=Little, Version is R1S2P0.DCache size is 16K.ICache size is 32K.MGU zone num is 8.MGU zone size is 4B.HWBKPT number is 3, HWWP number is 3.MISA: (RV32IMAFCXP, Imp M-mode, U-mode)GDB connection command for CPUs(CPU0):target remote 192.168.135.1:1025target remote 192.168.22.1:1025target remote 192.168.188.23:1025
默认端口:1025
2、Linux下安装与配置
-
CKLink 驱动安装
Linux x86_64版驱动下载地址:https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1666331533949/T-Head-DebugServer-linux-x86_64-V5.16.5-20221021.sh.tar.gz -
在 linux 命令行下执行
$ tar zxvf T-Head-DebugServer-linux-x86_64-V5.16.5-20221021.sh.tar.gz
$ sudo ./T-Head-DebugServer-linux-x86_64-V5.16.5-20221021.sh -i
其中参数含义为:
-i:安装
-u:卸载
然后按照提示输入 yes 就可以。
注意:必须要 ubuntu 22 以上才可以,ubuntu 20.04 不行。。
- 完成安装后,插上 CKlink-Lite,通过 lsusb 可以看到已经检测到了CKlink-Lite
$ lsusb
Bus 002 Device 004: ID 42bf:b210 Bouffalo C-Sky CKLink-Lite
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
- 运行
- 确认安装完成,查看参数
$ DebugServerConsole -h
- server 端口号,默认 1025,可以通过
-p修改
$ DebugServerConsole -p 3333
注意:在运行 jtag 功能器件,T-HeadDebugServer 要一直运行。
3、芯片默认 JTAG PIN 列表
| CHIP/Pin | BL602/BL604 | BL702/BL704/BL706 | BL616/BL618 | BL808 |
|---|---|---|---|---|
| TMS | GPIO12 | GPIO0 | GPIO0 | GPIO6 |
| TCK | GPIO14 | GPIO2 | GPIO1 | GPIO12 |
| TDO | GPIO11 | GPIO9 | GPIO2 | GPIO7 |
| TDI | GPIO17 | GPIO1 | GPIO3 | GPIO13 |
4、命令行运行JTAG
- 运行 gdb
$ riscv64-unknown-elf-gdb helloworld_bl616.elf
GNU gdb (Xuantie-900 elf newlib gcc Toolchain V2.6.1 B-20220906) 10.0.50.20200724-git
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=i686-w64-mingw32 --target=riscv64-unknown-elf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from .\helloworld_bl616.elf...
(gdb)
也可以先只运行 riscv64-unknown-elf-gdb 命令,然后在连接 gdb server 完成后,使用 file helloworld_bl616.elf 命令加载 elf 文件。
- 设置等待远程目标响应240秒的超时限制,默认为2秒。
(gdb) set remotetimeout 240
- 连接 gdb server
(gdb) target remote :1025
- 加载
(gdb) load
- 运行
(gdb) c
更多指令可查询 gdb 手册
5、Eclipse下使用JTAG
- 选择 Debug Configurations …

- 选择当前需要调试的目标项目的 elf 文件

注:使用 JTAG 调试前,需先下载完成对应目标项目的 bin 文件。
相关文章:
博流RISC-V芯片JTAG debug配置与运行
文章目录 1、Windows下安装与配置2、Linux下安装与配置3、芯片默认 JTAG PIN 列表4、命令行运行JTAG5、Eclipse下使用JTAG 1、Windows下安装与配置 CKLink 驱动安装 Windows版驱动下载地址: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1666331…...
[国产MCU]-W801开发实例-UART控制器
UART控制器 文章目录 UART控制器1、UART控制器介绍2、UART驱动API介绍3、UART使用示例本文将详细如何使用W801的UART模块。 1、UART控制器介绍 UART是一种通用串行 数据总线 ,用于 异步通信 。该总线支持双向通信,可以实现 全双工传输 和接收。 W801 共 6组普通 UART口,通…...
OpenCV(九):LUT查找表
LUT(Look-Up Table)查找表是OpenCV中一种常用的图像处理方法,用于对图像进行像素级别的颜色映射或图像增强操作。LUT查找表可以实现快速、高效的颜色转换和像素操作,尤其在处理大量像素的情况下具有优势。以下是关于OpenCV LUT查找…...
2023年 Java 面试八股文(25w字)
0.Java八股文上(25w字)2.3w 1.集合容器 2.Java基础链接 目录 一.Java 基础面试题1.Java概述Java语言有哪些特点?Java和C有什么关系,它们有什么区别?JVM、JRE和JDK的关系是什么?**什么是字节码?**采用字…...
STM32f103入门(7)pwm驱动led驱动舵机驱动直流电机
PWM驱动 PWM介绍TIM_OC1Init 配置通道TIM_OCStructInit 输出比较参数默认值输出比较模式 TIM_OCInitstructure输出比较极性 TIM_OCInitstructure设置输出使能以下三个决定了PWM的频率 占空比初始化通道 TIM_OC1Init(TIM2, &TIM_OCInitstructure);GPIO复用 PWM通道 驱动LED复…...
Linux centos7 bash编程——-求质数和
训练项目:使用函数求质数和。 定义一个函数IsPrime(),据此判断一个数是否为质数 由用户输入一个整数,求出比此数大的两个最小质数之和。 一、解决思路: 1.先在键盘上输入一个整数 2.求出比此数大的最小质数 3.再求出比此质数大的另一个…...
给Hexo添加说说功能
首发博客地址 官网地址 效果 👀 前言 GitHub 仓库:Artitalk.js 🎉 特性 增删查改全方面支持 支持针对每条说说的评论 支持 Markdown/html 语法 支持图片上传 🚀 快速使用 下列主题已将本项目整合进去,可以直接使用。 感…...
Tensorflow调用训练好的yolov5模型进行推理
文章目录 1、安装TensorFlow-GPU版本1.2、验证是否安装正常 2、将训练好的pt文件转换成onnx文件2.2、什么是Onnx模型和Tensorflow模型2.1、将onnx文件转换成pb文件 1、安装TensorFlow-GPU版本 1、创建虚拟环境python3.8 conda create -n TF2.4 python3.82、进入虚拟环境 conda…...
【场景方案】我所积累的一些跨页面的数据传递方式,持续更新,欢迎补充~
文章目录 Iframe内嵌相互传递BroadcastChannel同标签页数据传递localStorage中间人传递未完待续... Iframe内嵌相互传递 使用window.postMessage()的这个html5特性去跨域传递数据,不受跨域限制。 父层: sendMes(){ // 向iframe发送let iframdom this…...
ASP.NET Core 的错误页面
异常处理 Developer 环境的异常页面 ASP.NET Core App 会可以在开发阶段用UseDeveloperExceptionPage启用 Developer 异常页面: app.UseDeveloperExceptionPage();当遇到Unhandled 异常信息时,可以输出异常信息页面: 异常信息包括…...
Android静态ip设置的坑
Android静态ip设置的坑 Android静态ip设置,对于这个功能,如果没有接触过,会给人感觉是个特别简单的功能,直接调用系统的接口即可,其实这个功能还是有许多坑的,因为谷歌在Android SDK中对相关的API进行非系…...
电源管理(PMIC)TPS63070RNMR、TPS650942A0RSKR、LM5175RHFR器件介绍、应用及特点。
一、TPS63070RNMR,降压升压 开关稳压器 IC 正 可调式 2.5V 1 输出 3.6A(开关) 15-PowerVFQFN 1、概述 TPS63070高输入电压降压-升压转换器是一款高效的低静态电流降压-升压转换器。这些器件适用于输入电压高于或低于输出电压的应用。升压模式…...
k8s(kubernetes)介绍篇
一、Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。 Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对…...
gRPC + Spring Boot 编程教程 - piot
在本文中,您将学习如何实现通过 gRPC 通信的 Spring Boot 应用程序。gRPC 是一个现代开源远程过程调用 (RPC) 框架,可以在任何环境中运行。默认情况下,它使用 Google 的 Protocol Buffer 来序列化和反序列化结构化数据。当然,我们…...
新建Spring Boot项目
使用IDEA 来创建: 文件-新建-项目 填写项目元数据 选择依赖项 此处可以先选 web-spring web 关于这些依赖项,更多可参考: IDEA创建Spring boot项目时各依赖的说明(Developer Tools篇)[1] 项目结构介绍 展开项目,此时…...
Python数据分析的第三方库
ython作为一种简单易学、功能强大的编程语言,逐渐成为数据分析领域的首选工具。在Python数据分析中,有许多优秀的第三方库可以帮助我们进行数据处理、可视化和建模。 常用第三方库: NumPy:提供了高性能的多维数组对象和用于数组…...
EF列表分页查询(单表、多表),排除参数为空的条件
在日常使用EF框架查询数据库时,有时传入的参数为空,那么我们应该把该条件排除,不应列入组装的sql中,本篇文件以分页查询为例介绍EF框架的单表、多表的多条件查询,参数为空时排除条件。 首先我们要有派生自DBContext类的数据上下文…...
VisualStudio配置pybind11-Python调用C++方法
个人测试下来Debug生成的dll改pyd,py中import会报错gilstate->autoInterpreterState 如果遇到同样问题使用Release吧 目录 1.安装pybind11 1.pip: 2.github: 2.配置VS工程 2.在VC目录中的包含目录添加: 3.在VC目录中的库目录…...
ZZULIOJ 1164: 字符串加密,Java
ZZULIOJ 1164: 字符串加密,Java 题目描述 输入一串字符(长度不超过100)和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后…...
联合体(共用体)的简单介绍
目录 概念: 联合的声明: 类比结构体: 联合体的大小: 联合的⼤⼩⾄少是最⼤成员的⼤⼩ 联合体的空间是共用的 联合体内部成员的赋值: 当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候,就要对⻬到最⼤对⻬…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
