嵌入式学习——5.使用QEMU模拟
- 创建
start.S 和Makefile 文件,文件内容如下:
start.S文件内容:
.globl _start
_start:
mov x0, #1
ldr w1, =0x778899
add x0, x0, x1
mrs x3, CurrentEL
reset_end:
b reset_end
Makefile文件内容:
CC = aarch64-linux-gnu-gcc
LD = aarch64-linux-gnu-ld
CFLAGS = -g -O0 -nostdlib -nodefaultlibs
start: start.o
$(LD) -o $@ $^
%.o: %.S
$(CC) $(CFLAGS) -c $< -o $@
.PHONY: clean
clean:
-rm start.o
-rm start
- 执行make命令,进行编译,生成执行文件start
$ make //编译,生成执行文件start
- 设置
.vscode/launch.json 文件 内容如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/start",
"args": [],
"stopAtEntry": true,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
// 如果远程登入到linux 服务器上面,路径不用写 /user/bin/gdb-multiarch
"miDebuggerPath": "gdb-multiarch",
"miDebuggerServerAddress": "localhost:1234",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
- 执行命令,启动qemu服务
qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic -kernel start -S -s
- 按F5运行或调试start.S
注:如果此时运行报错,提示连接超时,则需要重启一下主板。
- 成功运行。
|