SPARC VScode EIDE GDB 使用配置

devtools/2024/10/19 2:23:15/

前言

	搞了多年的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.ppmy.cn/devtools/27794.html

相关文章

『大模型笔记』Code Example: Function Calling with ChatGPT

Code Example: Function Calling with ChatGPT 文章目录 一. Code Example: Function Calling with ChatGPT二. 参考文献一. Code Example: Function Calling with ChatGPT from openai import OpenAI from dotenv import load_dotenv import json# --------------------------…

汇川AM400PLC和禾川X3E伺服EtherCAT通信

1、汇川H5UPLC和X3E伺服EtherCAT总线控制 汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服_伺服驱动器 ethercat csdn 汇川-CSDN博客文章浏览阅读1.7w次,点赞3次,收藏37次。首先我们看下系统硬件和软件配置:汇川H5U PLC的编程软件是:AutoShop V4.6.3.0 硬件:PLC H5U-161…

PHP学习笔记

一、格式化输出&#xff0c;使用pre后在浏览器可以格式化的观看 <pre><?php print_r($_SERVER[SERVER_ADDR]); ?> </pre> 二、自定义函数&#xff0c;自定义getFactors函数,输入一个正整数参数&#xff0c;返回该正整数的所有因子 function getFactors…

如何使用Go语言的标准库和第三方库?

文章目录 一、如何使用Go语言的标准库示例&#xff1a;使用标准库中的fmt包打印输出 二、如何使用Go语言的第三方库示例&#xff1a;使用第三方库github.com/gin-gonic/gin创建Web服务器 总结 在Go语言中&#xff0c;标准库和第三方库的使用是日常编程中不可或缺的一部分。标准…

操作DOM:性能优化之道

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

介绍一款.NET开源架构.NET MAUI

.NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。 使用 .NET MAUI&#xff0c;可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款开放源代码应用&#xff0c;是 Xamarin.…

java-spring-mvc(服务端接收客户端传参)

目录 &#x1f3af; 服务端接收参数 ✨HttpServletRequest接收 ✨ 声明参数接收 ✨声明pojo类来接收 &#x1f52a;小试牛刀 &#x1f3af; 服务端接收参数 ✨HttpServletRequest接收 HttpServletRequest是Java Servlet规范中定义的一个接口&#xff0c;它提供了与HTTP请求…

Spring Data Redis简单使用

Spring Data Redis是一个用于简化应用程序与Redis交互的开发框架。它提供了简单的配置和方便的操作API&#xff0c;使得与Redis的集成变得更加容易。下面是一个快速入门使用Spring Data Redis的步骤&#xff1a; 步骤 1&#xff1a;添加依赖 在您的项目中添加Spring Data Redi…