开源Cortex-M模拟器QEMU的使用方法

开源Cortex-M模拟器QEMU的使用方法

QEMU是开源、跨平台、支持多种目标架构的模拟器,包括Cortex-M架构。开源Cortex-M模拟器QEMU支持两款开发板,分别为Stellaris LM3S811EVB和Stellaris LM3S6965EVB。

原文:http://blog.csdn.net/zoomdy/article/details/50582557
mingdu.zheng at gmail dot com

QEMU主页

http://wiki.qemu.org/Main_Page

安装QEMU

这里给出Ubuntu下的安装命令。

sudo apt-get install qemu

这会安装好多个不同架构的qemu,如qemu-system-i386、qemu-system-arm等,如果只需要安装某个架构的qemu,那么可以使用下面的命令。

sudo apt-get install qemu-system-arm

仅安装ARM架构的QEMU模拟器。

QEMU模拟lm3s811evb开发板

qemu-system-arm -machine lm3s811evb -kernel firmware.elf

-machine lm3s811evb:指定模拟的开发板。
-kernel firmware.elf:指定目标固件程序文件,必须是ELF格式的。

调试QEMU中运行的目标固件程序

QEMU集成了GDB Server,在QEMU模拟器中执行的程序可以通过GDB进行源码级调试。

qemu-system-arm -machine lm3s811evb -kernel firmware.elf -S -gdb tcp::9000

-S:启动时立刻停止执行,等待GDB连接。
-gdb tcp::9000:开启GDB Server,监听端口为9000,注意tcp和9000之间是两个冒号。

GDB连接QEMU

arm-none-eabi-gdb firmware.elf
(gdb)target remote localhost:9000
(gdb)b main
(gdb)c

QEMU支持的两款Cortex-M开发板

QEMU模拟的lm3s811evb外设列表

地址范围外设
0x00000000-0x0000FFFFOn-chip Flash 64K
0x20000000-0x20001FFFBit-banded on-chip SRAM 8K
0x22000000-0x23FFFFFFBit-banded alias of 0x20000000-0x200FFFFF
0x40004000-0x40004FFFGPIO Port A
0x40005000-0x40005FFFGPIO Port B
0x40006000-0x40006FFFGPIO Port C
0x40007000-0x40007FFFGPIO Port D
0x40008000-0x40008FFFSSI0
0x4000C000-0x4000CFFFUART0
0x4000D000-0x4000DFFFUART1
0x40020000-0x40020FFFI2C0->SSD0303(OLED Controller)
0x40024000-0x40024FFFGPIO Port E
0x40030000-0x40030FFFTimer 0
0x40031000-0x40031FFFTimer 1
0x40032000-0x40032FFFTimer 2
0x40038000-0x40038FFFADC0
0x400FE000-0x400FEFFFSystem control
0x42000000-0x43FFFFFFBit-banded alias of 0x40000000-0x400FFFFF
0xE000E000-0xE000EFFFCortex-M3 Peripherals(SysTick, NVIC, MPU and SCB)

QEMU模拟的lm3s6965evb外设列表

地址范围外设
0x00000000-0x0003FFFFOn-chip Flash 256K
0x20000000-0x2000FFFFBit-banded on-chip SRAM 64K
0x22000000-0x23FFFFFFBit-banded alias of 0x20000000-0x200FFFFF
0x40004000-0x40004FFFGPIO Port A
0x40005000-0x40005FFFGPIO Port B
0x40006000-0x40006FFFGPIO Port C
0x40007000-0x40007FFFGPIO Port D
0x40008000-0x40008FFFSSI0 -> SSD0323(OLED Controller) and SDCard(SPI mode)
0x4000C000-0x4000CFFFUART0
0x4000D000-0x4000DFFFUART1
0x4000E000-0x4000EFFFUART2
0x40020000-0x40020FFFI2C0
0x40024000-0x40024FFFGPIO Port E
0x40025000-0x40025FFFGPIO Port F
0x40026000-0x40026FFFGPIO Port G
0x40030000-0x40030FFFTimer 0
0x40031000-0x40031FFFTimer 1
0x40032000-0x40032FFFTimer 2
0x40033000-0x40033FFFTimer 3
0x40038000-0x40038FFFADC0
0x40048000-0x40048fffEthernet Controller
0x400FE000-0x400FEFFFSystem control
0x42000000-0x43FFFFFFBit-banded alias of 0x40000000-0x400FFFFF
0xE000E000-0xE000EFFFCortex-M3 Peripherals(SysTick, NVIC, MPU and SCB)
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值