SPARC VScode EIDE GDB 使用配置

news2024/11/19 10:23:08

前言

	搞了多年的SPARC 最近接触了VSCODE插件感觉好用。想想看不是能方便调试和编译SPARC,决定使用开源的SPARC仿真环境和编译器来试试。感觉的却不错,借此献给使用SPARC的朋友们。

安装

1.找微软官方的下载VSCODE.
2.电机左边的方块形状的图标,搜索下面的插件点击安装即可在线安装。有的插件是安装插件时附带安装的。必须安装C/C++的插件和Embedded IDE。

在这里插入图片描述

设置编码格式

在这里插入图片描述

设置EIDE嵌入式开发环境的编译器相关内容

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

在这里插入图片描述
${userRoot}/.eide/tools/sdcc

#EIDE的配置可以在这修改
在这里插入图片描述

任意其他处理器的编译器设置

在这里插入图片描述

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

选择编译器和编译器的前缀:
在这里插入图片描述

修改Link Script file .
在这里插入图片描述

GDB调试需要在编译时添加 -g 参数加入符号表

D:***\gcc_mcu\gcc_mcu\ldscripts\sparcleon.x

添加头文件和库文件和编译的宏定义

在这里插入图片描述

DEBUG 配置可以修改

网上有个“Debugging Guide for GDB and VS Code”的文档可以参考

vscode介绍链接

在这里插入图片描述

可以添加自定义的链接工具
在这里插入图片描述
上面是标准JTAG的

    "configurations": [
        {
            "cwd": "${workspaceRoot}",
            "type": "cortex-debug",
            "request": "launch",
            "name": "jlink",
            "servertype": "jlink",
            "interface": "swd",
            "executable": "build\\Debug\\gcc_mcu.elf",
            "runToEntryPoint": "main",
            "device": "null"
        }
    ]
   

添加的标准模板,

 "configurations": [
        {
            "name": "(gdb) Windows 上的 Bash 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
           "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": false,
            "pipeTransport": {
                "debuggerPath": "/usr/bin/gdb",
                "pipeProgram": "${env:windir}\\system32\\bash.exe",
                "pipeArgs": ["-c"],
                "pipeCwd": ""
            },
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
        {
            "cwd": "${workspaceRoot}",
            "type": "cortex-debug",
            "request": "launch",
            "name": "jlink",
            "servertype": "jlink",
            "interface": "swd",
            "executable": "build\\Debug\\gcc_mcu.elf",
            "runToEntryPoint": "main",
            "device": "null"
        }
    ]

我使用的模板,

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "GCC Debug ",
            "type": "cppdbg",//使用C/C++的调试,如果是JTAG 可以选择其他的 ,比如微软的“cppdbg” 或者是直接使用“gdb”,不同类型下面参数不一样
            "request": "launch",
            "program": "${workspaceRoot}/build/Debug/gcc3.elf",//工程编译的程序
            "args": [],//调用type 功能 运行的参数,gdb用不上其他调试可以用的上
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "targetArchitecture": "arm",//可以用arm 其实没有关系,屏蔽也行
            "environment": [],
            "externalConsole": true,//内置控制台或外置控制台输出externalTerminal
            "MIMode": "gdb",//MIMode:指示VS代码将连接到的调试器。必须设置为gdb或lldb。
            "miDebuggerPath": "C:\\Users\\topma\\.eide\\tools\\bcc-2.2.3-gcc\\bin\\sparc-gaisler-elf-gdb.exe",//gdb版不能过低,会出现步匹配建议6以上
            //"miDebuggerServerAddress": "localhost:12345",//setupCommands运行后连接gdb 服务器的IP和端口 ,不是本地localhost 直接换成IP地址

             "setupCommands": [
                {//如果是要下载使用命令手动连接需要用miDebuggerServerAddress
                "text": "target remote :12345"
                },   
                {
                "text": "file 'D:/**/gcc_mcu/mcu-gcc3/gcc3/build/Debug/gcc3.elf'"
                },
                              
                {
                 "description": "下载",
                 "text": "load",
                 "ignoreFailures": false           
                }        

            ],


            //"preLaunchTask": "make",//launch 前的操作
            "launchCompleteCommand": "None"
        },
    ]
}

GDB 模板

{
    "version": "0.4.2",
    "configurations": [
        {
            "name": "Debug gdb",
            "type": "gdb",
            "request": "attach",
            "executable": "${workspaceRoot}\\LPCProject\\bin\\Debug\\LPCProject.elf",
            "target": "localhost:2331",
            "cwd": "${workspaceRoot}",
            "gdbpath": "C:/gccarm/bin/arm-none-eabi-gdb.exe",
            "remote": true,
            "autorun": [
                "load ./LPCProject/bin/Debug/LPCProject.elf",
                "break main",
                "monitor reset"
            ]            
        }
    ]
}

多个操作一起处理

    "compounds": [
        {
          "name": "Server/Client",
          "configurations": ["Debug gdb", "GCC Debug"],//前面两个调用的名字
          "preLaunchTask": "make",
        }
      ]

点击绿箭头开始GDB调试
在这里插入图片描述

链接上后找到这个浮动的控制TAB可以运行,单步,退出等操作。
在这里插入图片描述

碰到的问题

当前不能通过 “setupCommands” 直接“load”下程序,只能连上后通过再DEBUG CONSOLE 输入下面命令下载后再点击运行。不清楚问什么自动处理不行。报告 vscode gdb -interpreter-exec **错误。
Error: You can’t do that when your target is `exec’ (ExcaliburTM, GDB) ,是没有连接上gdbserver 需要下载必须用命令连接服务器,不能用miDebuggerServerAddress参数。他比较靠后。
-exec monitor gdb reset //有时候傻了可以用改方式复位再连接
-exec load

Monitor 后的命令是server的,需要server 支持’

有时候sh

PostBuild Task 编译后做的处理
O u t D i r / {OutDir}/ OutDir/{ProjectName}.hex

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

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

相关文章

由于找不到msvcr110.dll,无法继续执行代码的解决方法

在日常使用计算机的过程中,可能会遇到系统提示缺少msvcr110.dll文件的情况,这一问题往往导致某些应用程序无法正常运行。幸运的是,有多种方法可以有效应对这一困境,帮助您的计算机恢复顺畅运作。以下是解决计算机丢失msvcr110.dll…

【游戏行业】2024年电子游戏分类,国内游戏产业报告,发展趋势

文章目录 一、电子游戏分类1、传统游戏分类2、混合手游分类3、二次元、开放设计、调查问卷 二、游戏产业报告1、游戏产业数据2、游戏公司名单(独角兽)3、营收与利润(对比互联网、国企) 三、发展趋势1、游戏行业上下游2、游戏行业趋…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-12-蜂鸣器

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

PX4二次开发快速入门(三):自定义串口驱动

文章目录 前言 前言 软件:PX4 1.14.0稳定版 硬件:纳雷NRA12,pixhawk4 仿照原生固件tfmini的驱动进行编写 源码地址: https://gitee.com/Mbot_admin/px4-1.14.0-csdn 修改 src/drivers/distance_sensor/CMakeLists.txt 添加 add…

01-MySQL 基础篇笔记

一、MySQL 概述 1.1 数据库相关概念 数据库:(DB:DataBase) 存储数据的仓库,数据是有组织的进行存储 数据库管理系统:(DBMS:DataBase Management System) 操作和管理数…

IoTDB 入门教程 基础篇⑨——TsFile导入导出工具

文章目录 一、前文二、准备2.1 准备导出服务器2.2 准备导入服务器 三、导出3.1 导出命令3.2 执行命令3.3 tsfile文件 四、导入4.1 上传tsfile文件4.2 导入命令4.3 执行命令 五、查询六、参考 一、前文 IoTDB入门教程——导读 数据库备份与迁移是数据库运维中的核心任务&#xf…

最小费用流相位解包裹

% test_cunwrap.m % % Matlab script to test Costantinis unwrapping % Author: Bruno Luong <brunoluong@yahoo.com> % History: % Orginal: 27-Aug-2009clear all; close all; clc; I1=double(imread(E:\zhenlmailcom-E8E745\华为家庭存储\.public_files\博士阶段\小…

[stm32-1]LED闪烁LED流水灯蜂鸣器

1、LED闪烁&LED流水灯&蜂鸣器 1.使用RCC开启GPIO时钟 2.使用GPIO_Init函数初始化GPIO 3.使用输入或输出函数控制GPIO口 RCC常用的3个库函数&#xff1a; void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); void RCC_APB2PeriphClockC…

C++中的reverse_iterator迭代器结构设计

目录 reverse_iterator迭代器结构设计 reverse_iterator迭代器基本结构设计 operator*()函数 operator()函数 operator->()函数 operator!()函数 rbegin()函数 rend()函数 operator--()函数 operator()函数 测试代码 const_reverse_iterator迭代器设计 reverse…

【数据结构】第四讲:双向链表

目录 一、链表的分类 二、双向链表的结构及实现 1.带头双向链表的结构 2.创建节点 3.初始化 4.尾插 5.打印 6.头插 7.尾删 8.头删 9.在pos位置之后插入数据 10.删除pos节点 11.查找 12.销毁 个人主页&#xff1a;深情秋刀鱼-CSDN博客 数据结构专栏&#xff1a;数…

java基于云计算的SaaS医院his信息系统源码 HIS云平台源码

目录 云HIS功能模块 1、预约挂号&#xff1a; 2、药库管理&#xff1a; 3、门诊医生站&#xff1a; 4、门诊费用&#xff1a; 5、药房管理&#xff1a; 6、治疗室&#xff08;门诊护士工作站&#xff09;&#xff1a; 7、统计分析&#xff1a; 8、财务管理&#xff1a;…

vue 时间轴页面 自己的写法 欢迎交流指正

<div class"first-box"><!--贯穿线--><div class"vertical-line-wrap"><div class"vertical-line"></div><div class"vertical-line-arrow"></div></div><!--开始--><div c…

数据存储-SD卡存储

手机自带内存较小&#xff0c;不适合存储大量数据&#xff0c;一般&#xff0c;大量数据都会采用外部存储&#xff0c;如&#xff1a;服务器存储、SD卡存储、数据库存储等。 本文讲解在SD卡上存储数据&#xff0c;并实现对数据的读和写。 整体思路&#xff1a;静态权限声明、动…

第五篇:通信脉络:探索计算机外设与总线体系的精髓

通信脉络&#xff1a;探索计算机外设与总线体系的精髓 1 引言 在这个技术日新月异的时代&#xff0c;理解计算机系统的基本构成要素 —— 总线和外设 —— 对于每个从事技术工作的人来说都是至关重要的。这些组件不仅是计算机通信的基石&#xff0c;也直接影响着系统的性能、效…

非对称齿轮的跨棒距算的对不对

前面有一期咱们聊了非对称齿轮《》&#xff0c;非对称齿轮的齿厚测量一般都为跨棒距。最近研究了下计算方法&#xff0c;对计算结果的正确性做了下验证。 在MATLAB中编制了相关的计算程序&#xff1a; 齿轮的模数4&#xff0c;左侧分度圆压力角25&#xff0c;右侧分度圆压力角…

CARIS12如何设置kmall船型文件?

最近我们对船上多波束EM2040D的采集软件进行了升级&#xff0c;从SIS4.3升级至SIS5。当使用CARIS11/12处理kmall数据时&#xff0c;发现往返横切海底线性目标时有10-20m错位。 ​编辑​ 我们开始怀疑SIS5采集的设置有问题&#xff0c;似乎跟时间延迟有关系。但是改了如下图两…

JAVA系列 小白入门参考资料 接口

目录 接口 接口的概念 语法 接口使用 接口实现用例 接口特性 实现多个接口和实现用例 接口间的继承 接口 接口的概念 在现实生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&#xff1a;笔记本上的 USB 口&#xff0c;电源插座等。 电脑的 USB 口上&am…

初学python记录:力扣1235. 规划兼职工作

题目&#xff1a; 你打算利用空闲时间来做兼职工作赚些零花钱。 这里有 n 份兼职工作&#xff0c;每份工作预计从 startTime[i] 开始到 endTime[i] 结束&#xff0c;报酬为 profit[i]。 给你一份兼职工作表&#xff0c;包含开始时间 startTime&#xff0c;结束时间 endTime …

水仙花数问题

问题描述&#xff1a; 求出0&#xff5e;100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数&#xff0c;其各位数字的n次方之和确好等于该数本身&#xff0c;如:153&#xff1d;1^3&#xff0b;5^3&#xff0b;3^3&#xff0c;则153是一个“水仙花数”。 #in…

对链表进行插入排序(详细解析)

对链表进行插入排序&#xff08;详解&#xff09; 题目&#xff1a; 对链表进行插入排序 给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&a…