From e6bb1b6bf2e67933609dd0f5a7489bdf75664801 Mon Sep 17 00:00:00 2001 From: Jiasen Huang Date: Sun, 2 Feb 2025 15:27:20 +0000 Subject: [PATCH] =?UTF-8?q?1.=20=E6=89=B9=E9=87=8F=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E4=BA=86=E8=BF=9C=E7=A8=8B=E6=9C=8D=E5=8A=A1=E5=99=A8IP:PORT?= =?UTF-8?q?=E4=B8=BA=E5=BD=93=E5=89=8D=E8=87=AA=E5=B7=B1=E7=94=A8=E7=9A=84?= =?UTF-8?q?=202.=20=E6=89=B9=E9=87=8F=E6=9B=BF=E6=8D=A2=E4=BA=86=E5=90=84?= =?UTF-8?q?=E4=B8=AA=E7=9B=AE=E5=BD=95=E7=9A=84Makefile=E4=B8=AD=E7=9A=84-?= =?UTF-8?q?g=E5=90=8E=E9=9D=A2=E7=9A=84PORT=EF=BC=88=E5=90=8C=E4=B8=8A?= =?UTF-8?q?=E9=9D=A2=E7=9A=84PORT=EF=BC=89=203.=20=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80=E4=B8=AA=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=EF=BC=8C=E5=8D=95=E7=8B=AC=E7=94=A8?= =?UTF-8?q?=E6=9C=AC=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=B8=8A=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E7=9A=84RV=20TOOLCHAIN=E7=BC=96=E8=AF=91=E5=B9=B6=E7=94=A8?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E7=9A=84QEMU=E7=89=88=E6=9C=AC=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BA=86=E6=89=A7=E8=A1=8C=20{=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E3=80=81=E9=94=99=E8=AF=AF}=E7=9A=84=E7=BB=84=E5=90=88?= =?UTF-8?q?=E9=83=BD=E8=AE=B0=E5=BD=95=E5=9C=A8=E4=BA=86=E8=AF=A5=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E4=B8=8B=E7=9A=84README.md=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ hjs-1st-test/README.md | 9 +++++++++ hjs-1st-test/hello-riscv32-unknown-elf-gcc.elf | Bin 0 -> 17032 bytes .../hello-riscv32-unknown-linux-gnu-gcc.elf | Bin 0 -> 7236 bytes hjs-1st-test/hello.c | 6 ++++++ hjs-1st-test/hello.elf | Bin 0 -> 23416 bytes hjs-1st-test/hello_rv64_unknown_elf_gcc.elf | Bin 0 -> 23416 bytes lesson12~13/.vscode/launch.json | 4 ++-- lesson12~13/.vscode/tasks.json | 2 +- lesson12~13/Makefile | 5 +++-- lesson12~13/main.c | 5 +++-- lesson14/.vscode/launch.json | 4 ++-- lesson14/.vscode/tasks.json | 2 +- lesson14/Makefile | 2 +- lesson15/.vscode/launch.json | 4 ++-- lesson15/.vscode/tasks.json | 2 +- lesson15/Makefile | 2 +- lesson16~17/.vscode/launch.json | 4 ++-- lesson16~17/.vscode/tasks.json | 2 +- lesson16~17/Makefile | 2 +- lesson18~19/.vscode/launch.json | 4 ++-- lesson18~19/.vscode/tasks.json | 2 +- lesson18~19/Makefile | 2 +- lesson20/.vscode/launch.json | 4 ++-- lesson20/.vscode/tasks.json | 2 +- lesson20/Makefile | 2 +- lesson21~22/.vscode/launch.json | 4 ++-- lesson21~22/.vscode/tasks.json | 2 +- lesson21~22/Makefile | 2 +- lesson23/.vscode/launch.json | 4 ++-- lesson23/.vscode/tasks.json | 2 +- lesson23/Makefile | 2 +- lesson24/.vscode/launch.json | 4 ++-- lesson24/.vscode/tasks.json | 2 +- lesson25/.vscode/launch.json | 4 ++-- lesson25/.vscode/tasks.json | 2 +- lesson26/.vscode/launch.json | 4 ++-- lesson26/.vscode/tasks.json | 2 +- lesson28/.vscode/launch.json | 4 ++-- lesson28/.vscode/tasks.json | 2 +- lesson29~30/.vscode/launch.json | 4 ++-- lesson29~30/.vscode/tasks.json | 2 +- lesson32/.vscode/launch.json | 4 ++-- lesson32/.vscode/tasks.json | 2 +- lesson34/.vscode/launch.json | 4 ++-- lesson34/.vscode/tasks.json | 2 +- lesson35~36/.vscode/launch.json | 4 ++-- lesson35~36/.vscode/tasks.json | 2 +- 48 files changed, 80 insertions(+), 59 deletions(-) create mode 100644 README.md create mode 100644 hjs-1st-test/README.md create mode 100755 hjs-1st-test/hello-riscv32-unknown-elf-gcc.elf create mode 100755 hjs-1st-test/hello-riscv32-unknown-linux-gnu-gcc.elf create mode 100644 hjs-1st-test/hello.c create mode 100755 hjs-1st-test/hello.elf create mode 100755 hjs-1st-test/hello_rv64_unknown_elf_gcc.elf diff --git a/README.md b/README.md new file mode 100644 index 0000000..9736256 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# 插件安装 +## 高亮显示RISCV assembly +RISC-v Support +zhuwu95 92k diff --git a/hjs-1st-test/README.md b/hjs-1st-test/README.md new file mode 100644 index 0000000..002eff3 --- /dev/null +++ b/hjs-1st-test/README.md @@ -0,0 +1,9 @@ +# 测试记录 +|工具链|模拟器|结果| +|:-----:|:-----:|:-----:| +|riscv64-unknown-elf-gcc|qemu-riscv64|ok| +|riscv64-unknown-linux-gnu-gcc|-|编译就出错:target emulation 'elf32-littleriscv' does not match `elf64-littleriscv'| +|riscv32-unknown-elf-gcc|qemu-riscv32|ok| +|riscv32-unknown-linux-gnu-gcc|qemu-riscv32|ok
1. 为什么elf/linux效果没差别?
2. 为什么RV32用linux版本编译没问题,但是上面的RV64-linux版本就报错?
| +|riscv32-unknown-elf-gcc|qemu-riscv64|执行出错:Invalid ELF image for this architecture
---> 模拟器和编译的指令集架构必须对应| +|riscv32-unknown-elf-gcc
riscv32-unknown-linux-gnu-gcc|qemu-system-riscv32|qemu-system-riscv32要求程序在虚拟机中运行,所以此时在宿主机上无论喂给qemu-system-riscv32哪个工具链编译生成的可执行文件,都会报错:
Image format was not specified for 'hello-riscv32-unknown-elf-gcc.elf/riscv32-unknown-linux-gnu-gcc' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
| diff --git a/hjs-1st-test/hello-riscv32-unknown-elf-gcc.elf b/hjs-1st-test/hello-riscv32-unknown-elf-gcc.elf new file mode 100755 index 0000000000000000000000000000000000000000..409c8e5c0f26204f6e89a45083096c573308ce98 GIT binary patch literal 17032 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 literal 0 HcmV?d00001 diff --git a/hjs-1st-test/hello-riscv32-unknown-linux-gnu-gcc.elf b/hjs-1st-test/hello-riscv32-unknown-linux-gnu-gcc.elf new file mode 100755 index 0000000000000000000000000000000000000000..b1885edf6dc877df13beed559dafb55fb8e02da3 GIT binary patch literal 7236 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 CP_Xy_ literal 0 HcmV?d00001 diff --git a/hjs-1st-test/hello.c b/hjs-1st-test/hello.c new file mode 100644 index 0000000..a5f5277 --- /dev/null +++ b/hjs-1st-test/hello.c @@ -0,0 +1,6 @@ +#include + +int main() { + printf("Hello, QEMU!\n"); + return 0; +} diff --git a/hjs-1st-test/hello.elf b/hjs-1st-test/hello.elf new file mode 100755 index 0000000000000000000000000000000000000000..0b3a95a956da43a4e0d29cbfa47d959917aeb149 GIT binary patch literal 23416 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 Y<=_4oxOuPov&jF+esySNDErs{KXUw+&j0`b literal 0 HcmV?d00001 diff --git a/hjs-1st-test/hello_rv64_unknown_elf_gcc.elf b/hjs-1st-test/hello_rv64_unknown_elf_gcc.elf new file mode 100755 index 0000000000000000000000000000000000000000..0b3a95a956da43a4e0d29cbfa47d959917aeb149 GIT binary patch literal 23416 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 Y<=_4oxOuPov&jF+esySNDErs{KXUw+&j0`b literal 0 HcmV?d00001 diff --git a/lesson12~13/.vscode/launch.json b/lesson12~13/.vscode/launch.json index 62e62a6..67f9f4b 100644 --- a/lesson12~13/.vscode/launch.json +++ b/lesson12~13/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run" //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson12~13/.vscode/tasks.json b/lesson12~13/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson12~13/.vscode/tasks.json +++ b/lesson12~13/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson12~13/Makefile b/lesson12~13/Makefile index 5790519..00386d0 100644 --- a/lesson12~13/Makefile +++ b/lesson12~13/Makefile @@ -1,9 +1,10 @@ MAKEFLAGS = -sR -CC := riscv64-unknown-elf-gcc +# CC := riscv64-unknown-elf-gcc +CC := riscv32-unknown-elf-gcc CCFLAGES := -c -march=rv32imac -mabi=ilp32 -g -Wall LKFLAGES := -march=rv32imac -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson12~13/main.c b/lesson12~13/main.c index 84bd2ba..6edf145 100644 --- a/lesson12~13/main.c +++ b/lesson12~13/main.c @@ -4,7 +4,8 @@ int add(); int main() { int i = 250; - func(); - printf("hello world i is %d %d %d!\n", i, add(), sumdata); + // func(); + // printf("hello world i is %d %d %d!\n", i, add(), sumdata); + printf("hello world!\n"); return 0; } diff --git a/lesson14/.vscode/launch.json b/lesson14/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson14/.vscode/launch.json +++ b/lesson14/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson14/.vscode/tasks.json b/lesson14/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson14/.vscode/tasks.json +++ b/lesson14/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson14/Makefile b/lesson14/Makefile index 60b7ae4..522d5b9 100644 --- a/lesson14/Makefile +++ b/lesson14/Makefile @@ -3,7 +3,7 @@ CC := riscv64-unknown-elf-gcc CCFLAGES := -c -march=rv32imac -mabi=ilp32 -g -Wall -save-temps LKFLAGES := -march=rv32imac -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson15/.vscode/launch.json b/lesson15/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson15/.vscode/launch.json +++ b/lesson15/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson15/.vscode/tasks.json b/lesson15/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson15/.vscode/tasks.json +++ b/lesson15/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson15/Makefile b/lesson15/Makefile index f355a0a..9096f72 100644 --- a/lesson15/Makefile +++ b/lesson15/Makefile @@ -5,7 +5,7 @@ OCFLAGES := -S -O binary CCFLAGES := -c -march=rv32imac -mabi=ilp32 -O0 -Wall -save-temps LKFLAGES := -march=rv32imac -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson16~17/.vscode/launch.json b/lesson16~17/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson16~17/.vscode/launch.json +++ b/lesson16~17/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson16~17/.vscode/tasks.json b/lesson16~17/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson16~17/.vscode/tasks.json +++ b/lesson16~17/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson16~17/Makefile b/lesson16~17/Makefile index 743e405..f35e8eb 100644 --- a/lesson16~17/Makefile +++ b/lesson16~17/Makefile @@ -5,7 +5,7 @@ OCFLAGES := -S -O binary CCFLAGES := -c -march=rv32i -mabi=ilp32 -O0 -Wall -g LKFLAGES := -march=rv32i -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson18~19/.vscode/launch.json b/lesson18~19/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson18~19/.vscode/launch.json +++ b/lesson18~19/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson18~19/.vscode/tasks.json b/lesson18~19/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson18~19/.vscode/tasks.json +++ b/lesson18~19/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson18~19/Makefile b/lesson18~19/Makefile index 743e405..f35e8eb 100644 --- a/lesson18~19/Makefile +++ b/lesson18~19/Makefile @@ -5,7 +5,7 @@ OCFLAGES := -S -O binary CCFLAGES := -c -march=rv32i -mabi=ilp32 -O0 -Wall -g LKFLAGES := -march=rv32i -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson20/.vscode/launch.json b/lesson20/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson20/.vscode/launch.json +++ b/lesson20/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson20/.vscode/tasks.json b/lesson20/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson20/.vscode/tasks.json +++ b/lesson20/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson20/Makefile b/lesson20/Makefile index b3ad58b..f84195f 100644 --- a/lesson20/Makefile +++ b/lesson20/Makefile @@ -5,7 +5,7 @@ OCFLAGES := -S -O binary CCFLAGES := -c -march=rv32iac -mabi=ilp32 -O0 -Wall -g LKFLAGES := -march=rv32iac -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson21~22/.vscode/launch.json b/lesson21~22/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson21~22/.vscode/launch.json +++ b/lesson21~22/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson21~22/.vscode/tasks.json b/lesson21~22/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson21~22/.vscode/tasks.json +++ b/lesson21~22/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson21~22/Makefile b/lesson21~22/Makefile index 55e406d..3cca00c 100644 --- a/lesson21~22/Makefile +++ b/lesson21~22/Makefile @@ -5,7 +5,7 @@ OCFLAGES := -S -O binary CCFLAGES := -c -march=rv32iac -mabi=ilp32 -O0 -Wall -g LKFLAGES := -march=rv32iac -mabi=ilp32 QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson23/.vscode/launch.json b/lesson23/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson23/.vscode/launch.json +++ b/lesson23/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson23/.vscode/tasks.json b/lesson23/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson23/.vscode/tasks.json +++ b/lesson23/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson23/Makefile b/lesson23/Makefile index cc52cfa..6d16b4a 100644 --- a/lesson23/Makefile +++ b/lesson23/Makefile @@ -6,7 +6,7 @@ OCFLAGES := -S -O binary CCFLAGES := -c -march=rv32i -mabi=ilp32 -O3 -Wall -save-temps LKFLAGES := -nostdlib -T ld.lds -Map main.Map QEMU := qemu-riscv32 -QFLAGES := -g 1234 +QFLAGES := -g 22 RM := rm RMFLAGES := -rf diff --git a/lesson24/.vscode/launch.json b/lesson24/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson24/.vscode/launch.json +++ b/lesson24/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson24/.vscode/tasks.json b/lesson24/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson24/.vscode/tasks.json +++ b/lesson24/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson25/.vscode/launch.json b/lesson25/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson25/.vscode/launch.json +++ b/lesson25/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson25/.vscode/tasks.json b/lesson25/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson25/.vscode/tasks.json +++ b/lesson25/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson26/.vscode/launch.json b/lesson26/.vscode/launch.json index 9b8e176..168cc66 100644 --- a/lesson26/.vscode/launch.json +++ b/lesson26/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson26/.vscode/tasks.json b/lesson26/.vscode/tasks.json index 874e3ff..2502388 100644 --- a/lesson26/.vscode/tasks.json +++ b/lesson26/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson28/.vscode/launch.json b/lesson28/.vscode/launch.json index 9b8e176..168cc66 100755 --- a/lesson28/.vscode/launch.json +++ b/lesson28/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson28/.vscode/tasks.json b/lesson28/.vscode/tasks.json index 874e3ff..2502388 100755 --- a/lesson28/.vscode/tasks.json +++ b/lesson28/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson29~30/.vscode/launch.json b/lesson29~30/.vscode/launch.json index 9b8e176..168cc66 100755 --- a/lesson29~30/.vscode/launch.json +++ b/lesson29~30/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson29~30/.vscode/tasks.json b/lesson29~30/.vscode/tasks.json index 874e3ff..2502388 100755 --- a/lesson29~30/.vscode/tasks.json +++ b/lesson29~30/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson32/.vscode/launch.json b/lesson32/.vscode/launch.json index 9b8e176..168cc66 100755 --- a/lesson32/.vscode/launch.json +++ b/lesson32/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson32/.vscode/tasks.json b/lesson32/.vscode/tasks.json index 874e3ff..2502388 100755 --- a/lesson32/.vscode/tasks.json +++ b/lesson32/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson34/.vscode/launch.json b/lesson34/.vscode/launch.json index 9b8e176..168cc66 100755 --- a/lesson34/.vscode/launch.json +++ b/lesson34/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson34/.vscode/tasks.json b/lesson34/.vscode/tasks.json index 874e3ff..2502388 100755 --- a/lesson34/.vscode/tasks.json +++ b/lesson34/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { diff --git a/lesson35~36/.vscode/launch.json b/lesson35~36/.vscode/launch.json index 9b8e176..168cc66 100755 --- a/lesson35~36/.vscode/launch.json +++ b/lesson35~36/.vscode/launch.json @@ -8,14 +8,14 @@ "name": "(gdb) 启动", "type": "cppdbg", "request": "launch",//文件名 - "miDebuggerServerAddress": "127.0.0.1:1234",//GDB连接的地址和端口,就是连接到本地运行的QEMU + "miDebuggerServerAddress": "61.160.194.81:22",// GDB远程服务器的地址和端口 "program": "${workspaceFolder}/main.elf", //GDB调试的可执行程序名称,里面有代码和符号等信息 "args": [], "stopAtEntry": false, //调试时是否停止在程序的入口点处 "cwd": "${fileDirname}", "environment": [], "externalConsole": false, //调试时是否使用vscode集成的终端 - "miDebuggerPath": "/opt/riscv/gcc/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 + "miDebuggerPath": "/opt/riscv/bin/riscv64-unknown-elf-gdb", //RISC-V工具链中的对应于RISC-V平台的GDB调试器 "MIMode": "gdb", "miDebuggerArgs": "-q -x ./gdbinit", //传递给GDB的参数 "preLaunchTask": "Build and run", //运行GDB之前,先执行tasks.json文件中的"Build and run"操作,名称一定要与tasks.json文件中保持一致 diff --git a/lesson35~36/.vscode/tasks.json b/lesson35~36/.vscode/tasks.json index 874e3ff..2502388 100755 --- a/lesson35~36/.vscode/tasks.json +++ b/lesson35~36/.vscode/tasks.json @@ -16,7 +16,7 @@ "label": "Run RISCV-QEMU",//调用QEMU以用户模式执行RISC-V平台的程序 "type": "shell", "isBackground": true,//让QEMU在后台运行 - "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 1234 ./*.elf", //-g 1234表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 + "command": "echo Starting RISCV-QEMU&qemu-riscv32 -g 22 ./*.elf", //-g 22表示打开1234端口等待GDB的连接,进行调试,./*.elf表示 //编译好的RISC-V可执行程序,即main.elf "problemMatcher": { "pattern": { -- Gitee