使用VSCode调试全志R128的C906 RISC-V核心

news2024/9/23 3:24:19

使用 VSCode 调试

调试 XuanTie C906 核心

准备工具

  • T-Head DebugServer(CSkyDebugServer) - 搭建调试服务器
    • 下载地址:T-Head DebugServer
    • 手册:T-Head Debugger Server User Guide
    • 驱动:cklink_dirvers
  • VSCode - 开发&调试
    • 下载地址:VSCode

配置 SDK 启用调试功能

在对应的C906的 main.c 函数最后面加上下列代码,配置 GPIO MUX 为 JTAG

writel(0x00f66660, 0x4004a40c);

在这里插入图片描述

参考手册:

在这里插入图片描述

然后编译下载。

安装驱动

连接上CKLink,在设备管理器新增的USB设备上->右键->更新驱动程序->浏览我的电脑以查找驱动程序->浏览对应的驱动然后包括子文件夹->然后下一步即可。

在这里插入图片描述

运行配置CSkyDebugServer

CSkyDebugServer->setting->Target Setting

在这里插入图片描述

CSkyDebugServer->setting->Socket Setting

在这里插入图片描述

启动CSkyDebugServer

确保R128正常运行,CKLink 正常连接,点击红色按钮启动调试

在这里插入图片描述

此时如果电脑本地上有编译环境,可以使用 riscv64-unknown-elf-gdb 进行调试,假设编译获得的文件路径为 /lichee/rtos/build/r128_module_c906/img/rt_system.elf,运行命令如下:

riscv64-unknown-elf-gdb -ex 'set arch riscv:rv64' -ex 'file ./lichee/rtos/build/r128_module_c906/img/rt_system.elf' -ex 'set remotetimeout 20' -ex 'target remote 127.0.0.1:3333'

也可以如下操作

riscv64-unknown-elf-gdb ./lichee/rtos/build/r128_module_c906/img/rt_system.elf

控制台界面输入
set remotetimeout 20
target remote :3333
才可以建立连接

配置 VSCode

配置如下 .vscode/launch.json 文件

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/lichee/rtos/build/r128_module_c906/img/rt_system.elf", // 对应板子方案的elf文件
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "${workspaceFolder}/lichee/rtos/tools/riscv64-elf-x86_64-20201104/bin/riscv64-unknown-elf-gdb",
            "miDebuggerServerAddress": "localhost:3333", // 端口号,本文电脑的CSkyDebugServer端口3333
            "setupCommands": [ // 不能省略否则会报错,报错如下
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "set remotetimeout 20",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

省略后的报错:

Remote replied unexpectedly to 'vMustReplyEmpty': PacketSize=1000;QStartNoAckMode+;qThreadExtraInfo+;qXfer:features:read+

开始调试

点击 VSCode 调试按键,开始调试。

在这里插入图片描述

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

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

相关文章

TikTok Shop印尼站关闭给所有跨境卖家的警示(附止损解决方案)

01关店事件回顾 10月3日,印尼TikTok卖家迎来了他们的至暗时刻:官方邮件通知明确告知所有人,TikTok Shop于10月4日印尼西部时间17点正式关闭。 至此,TikTok在印尼成为不再拥有“电商功能”的短视频内容平台,所有人都可…

稀疏数组举例详解(Java形式表示)

稀疏数组 稀疏数组的定义稀疏数组的形式稀疏数组的用途Java形式实现稀疏数组1.创建稀疏矩阵2.遍历矩阵提取有效元素个数,来确立稀疏数组创建的行数(行数有效元素个数1)3.通过有效元素个数创建稀疏数组的个数4.填入初始行(第一行&a…

2023 年最新 MySQL 数据库 Windows 本地安装、Centos 服务器安装详细教程

MySQL 基本概述 MySQL是一个流行的关系型数据库管理系统(RDBMS),广泛应用于各种业务场景。它是由瑞典MySQL AB公司开发,后来被Sun Microsystems收购,最终被甲骨文公司(Oracle Corporation)收购…

求二叉树的宽度(可执行)

输入:abd##e##cf### 输出结果:3 运行环境.cpp 注意:若无运行结果,则一定是建树错误 #include "bits/stdc.h" using namespace std; typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild; }BiTNode,*Bi…

day30_servlet

今日内容 零、复习昨日 一、接收请求 二、处理响应 三、综合案例 零、复习昨日 画图, 请求处理的完整流程(javaweb开发流程) 零、注解改造 WebServlet注解,相当于是在web.xml中配置的servlet映射 Servlet类 package com.qf.servlet;import javax.servlet.ServletException; im…

leetcode:914. 卡牌分组(python3解法)

难度:简单 给定一副牌,每张牌上都写着一个整数。 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌。组内所有的牌上都写着相同的整数。 仅当你可选的 X > 2 时返回 tru…

作为测试你连K8S都不懂,你还有脸说自己是测试?

kubernetes,简称 K8s,是用 8 代替中间 8 个字符 “ubernete” 而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kuberne…

vue3之echarts区域折线图

vue3之echarts区域折线图 效果&#xff1a; 核心代码&#xff1a; <template><div class"abnormal"><div class"per">单位&#xff1a;{{ obj.data?.unit }}</div><div class"chart" ref"chartsRef"&g…

如何在Linux以docker-compose方式快速部署运行StackEdit,并实现公网访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…

井下特种兵——智能管网监测终端

深入井下&#xff0c;守护每一滴水的智慧——井下特种兵&#xff0c;智能管网监测终端 你是否曾为地下管网的监测和维护感到困扰&#xff1f;现在&#xff0c;我们向你介绍一款强大的井下特种兵——智能管网监测终端。这是一款专门为解决地下管网监测难题而设计的智能设备&…

单/三相dq解耦控制与特定次谐波抑制

1. 单相整流器dq坐标系下建模 单相整流器的拓扑如图所示&#xff0c;可知 u a b u s − L d i s d t − R i s {u_{ab}} {u_{s}} - L\frac{{d{i_s}}}{{dt}} - R{i_s} uab​us​−Ldtdis​​−Ris​。   将电压和电流写成dq的形式。 { u s U s m sin ⁡ ( ω t ) i s I …

FPGA_探针(ISSP)调试工具

探针则是将 FPGA 内部的节点信号通过 JTAG 电缆传输到 PC 机上&#xff0c;方便用户观察。对于一些变化比较缓慢或者实时性要求不高的信号&#xff0c;使用该工具调试非常的方便&#xff0c;例如观察 ADC 的采样结果。 为了更便捷地进行板级调试&#xff0c;这里介绍 Qusrtus …

前端本地存储数据库IndexedDB

前端本地存储数据库IndexedDB 1、前言2、什么是 indexedDB&#xff1f;3、什么是 localForage&#xff1f;4、localForage 的使用5、VUE 推荐使用 Pinia 管理 localForage 1、前言 前端本地化存储算是一个老生常谈的话题了&#xff0c;我们对于 cookies、Web Storage&#xff…

键盘控制ROS车运动

键盘控制ROS车运动 上位机 使用pyseria库与stm32单片机进行通信控制 #!/usr/bin/env python # -*- coding: utf-8 -*import sys, select, termios, tty import serialmsg """ ---------------------------w a x ds w : x a : y s : -x …

NX二次开发UF_CAM_ask_cam_preferences 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 UF_CAM_ask_cam_preferences Defined in: uf_cam.h int UF_CAM_ask_cam_preferences(UF_CAM_preferences_p_t prefs ) overview 概述 This function provides the current settings of the CAM pre…

2024一定要看的文章系列!!!接口自动化测试框架思路和实战(5):【推荐】混合测试自动化框架(关键字+数据驱动)

混合测试自动化框架(关键字数据驱动) 关键字驱动或表驱动的测试框架 这个框架需要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具&#xff0c;并可以用来“驱动&#xff02;待测应用程序和数据的测试脚本代码&#xff0c;关键字驱动测试看上去与手工测…

Leetcode 153. 寻找旋转排序数组中的最小值

class Solution {//因为最小值和最大值总是相邻的&#xff08;除了初始状态&#xff09;//1.用二分查找&#xff0c;如果右侧是有序则最小值在左侧//2.如果右侧无序则最小值在右侧//如果mid正好是最小值&#xff0c;那么右侧自然是有序的&#xff0c;//为了将mid加入到搜索的一…

如何用内容营销推动企业成长?媒介盒子教你三步实现

信息时代下每个人都能通过网络了解自己所需的信息&#xff0c;企业与受众的接触也更加直接&#xff0c;企业在获得更多消费者触达通道的同时&#xff0c;消费者也在经历信息爆炸和碎片化&#xff0c;如何在大量信息中脱颖而出&#xff0c;抓住消费者心智&#xff0c;成为许多品…

外卖小程序系统:数字化餐饮的编码之道

在当今数字化时代&#xff0c;外卖小程序系统成为了餐饮业的一项技术巨制。这个系统不仅提供了便捷的点餐体验&#xff0c;更通过先进的技术手段&#xff0c;实现了高效订单处理、实时配送追踪以及个性化推荐。让我们深入了解外卖小程序系统的技术魔法&#xff0c;一起揭秘数字…

API接口接入1688电商数据平台获取商品详情数据示例

1688电商数据平台是一个提供海量商品信息的数据平台&#xff0c;通过API接口可以方便地获取商品详情数据。以下是一个示例&#xff0c;演示如何接入1688电商数据平台&#xff0c;获取商品详情数据。 步骤一&#xff1a;注册1688账号并获取API权限 首先需要在1688电商数据平台…