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

news/2024/7/10 22:17:31 标签: qemu, 开源, Cortex-M, 模拟器

开源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开发板

  • lm3s811evb Stellaris LM3S811EVB
    开发板简介:http://www.ti.com.cn/cn/lit/ml/spmt196b/spmt196b.pdf
    MCU资料:http://www.ti.com.cn/product/cn/lm3s811
    开发板光盘下载:http://www.ti.com.cn/tool/cn/EKC-LM3S811-CD

  • lm3s6965evb Stellaris LM3S6965EVB
    开发板简介:http://www.ti.com.cn/cn/lit/ml/spmt127b/spmt127b.pdf
    MCU资料:http://www.ti.com.cn/product/cn/lm3s6965
    开发板光盘下载:http://www.ti.com.cn/tool/cn/EKC-LM3S6965-CD

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)

http://www.niftyadmin.cn/n/1108226.html

相关文章

博客园第一次阅读作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713 这个作业要求在哪里 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713 我在这个课程的目标是 学习更多的关于软件工程的知识 这个作业…

推迟中断事件到线程中处理

推迟中断事件到线程中处理是提高系统整体实时性的普遍做法,这种做法推迟非关键事件到线程中处理来保证关键中断事件的及时响应和处理。 http://blog.csdn.net/zoomdy/article/details/50593514 mingdu.zheng at gmail dot com 有些中断因为事关实时事件的最后期限…

086实战 项目开发流程,以及什么是数据分析平台,再者为什么要做数据分析平台,数据来源,数据处理流程...

一:项目开发流程 1.项目调研 了解项目的初始需求,然后结合市场的技术,看一下能否完成 2.需求分析 明确一个项目到底需要做什么? 最终做出的是什么样子? 重要性:一个好的需求分析能够明确项目的后续发展主题方向 3.方案…

st计算机编程语言,如何学习ST/SCL编程语言

分享~~~~~~~~~(*****************************************************************************MC_Power_JEC運転可 / Operation possibleCOPYRIGHT (C) 2016 MITSUBISHI ELECTRIC CORPORATION ALL RIGHT RESERVED*********************************************************…

用xwin32显示远程Linux主机图形应用程序(转)

用xwin32显示远程Linux主机图形应用程序(转)[more]1. 启动xwin32 2. 设置confiuration---&gtsecurity----&gthost3. putty,ssh到服务器 export DISPLAY客户端ip:04. 启动程序(如gnome-session等)5. 中文(使用X Font Server&#xff0…

理解数据类型与数学运算:求和、温度转换

ainput(请输入一个数字:) binput(请再输入一个数字)sum2int(a)int(b) print(两个数的和是:{}.format(sum2)) ainput(请输入一个摄氏温度)sum2int(a)*9/5 32 print(转换的华氏温度是:{}.format(sum2)) 转载于:https://www.cnblogs.com/-wingyi…

20161215

安卓存储之sp存储:SharePreferences 它提供一种轻量级的数据存储方式,通过eidt()方法来修改里面的内容,通过Commit()方法来提交修改后的内容。 一些重要方法: public abstract boolean contains (String key) :检查是否…

好友数量

//好友数量$user_id $user->id;$sql "select count(*) as total from user_friend where status ? and(( user_id {$user_id} ) or ( friend_user_id {$user_id} ))";$my_friend DB::select($sql,[1]); 转载于:https://www.cnblogs.com/sgm4231/p/10559…