简介

基于xcmd说明qemu-stm32的使用方法。
在linux下使用qemu-stm32编译开发stm32
官方例程序qemu-stm32 demos

环境

win10 wsl2 ubuntu 18.04 LTS

下载源码

git clone https://gitee.com/two_salted_eggs/xcmd.git
cd xcmd/example/stm32/qemu

安装

安装qemu

#1. 获取qemu-stm32, 如果clone失败请使用gitee转存
git clone https://github.com/beckus/qemu_stm32
#2. 安装基础环境
sudo apt-get install build-essential python zlib1g-dev libglib2.0-dev libpixman-1-dev libtool libfdt-dev
#3. 配置编译
cd qemu_stm32
./configure --enable-debug --disable-werror --target-list="arm-softmmu"
make
#4. 测试
arm-softmmu/qemu-system-arm --version
# 测试结果: QEMU emulator version 2.1.3, Copyright (c) 2003-2008 Fabrice Bellard

安装arm-none-eabi-gcc

#1. 安装
sudo apt-get install gcc-arm-none-eabi
#2. 测试
arm-none-eabi-gcc -v
#测试结果: gcc version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (15:9-2019-q4-0ubuntu1)

安装arm-none-eabi-gdb

#1. 安装libreadline6
sudo apt-get install libreadline6
#2. 安装
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gdb-arm-none-eabi/gdb-arm-none-eabi_7.10-1ubuntu3+9_amd64.deb
sudo dpkg -i gdb-arm-none-eabi_7.10-1ubuntu3+9_amd64.deb
#3. 测试
arm-none-eabi-gdb --version
#测试结果: GNU gdb (7.10-1ubuntu3+9) 7.10

安装串口终端cu

sudo apt-get install cu

编译

make clean
make

测试

NOTE: makefile中QEMU_ARM_DIR参数指定了qemu-system-arm的路径

  • qemu run pty
#1. 启动qemu
make main_QEMURUN_PTY
#输出:char device redirected to /dev/pts/11 (label serial0)
#2. 连接串口终端,串口设备见qemu输出
cu -l /dev/pts/11
#3. 退出cu
~.
  • qemu debug pty
    NOTE
  1. 启动qemu debug模式后程序不再自动运行,连接gdb后程序才会继续运行
  2. 可以参考.vscode/launch.json中的配置"debug qemu", 使用vscode调试程序
#1. 启动qemu
make main_QEMUDBG_PTY
#输出:qemu_stm32/arm-softmmu/qemu-system-arm -M stm32-p103 -gdb tcp::3333 -S -kernel demos/main/main.bin -serial pty
# char device redirected to /dev/pts/11 (label serial0)
#2. 连接gdb
arm-none-eabi-gdb -ex "target remote localhost: 3333" -ex "symbol-file demos/main/main.elf"
#运行
c
#启动调试界面
tui en
#3. 连接串口终端,串口设备见qemu输出
cu -l /dev/pts/11
#4. 退出cu
~.

qemu stm32环境搭建教程相关推荐

  1. Arduino框架下联盛德W801开发环境搭建教程

    Arduino框架下联盛德W801开发环境搭建教程 联盛德W801拥有自己的SDK集成开发工具,能做到这一点非常令人敬佩和了不起.国内好多芯片厂商都需要依托第三方开发工具集来实现对自己产品的开发.多元 ...

  2. win2008怎么配置php,Win2008 PHP 配置环境搭建 教程

    Win2008 PHP 配置环境搭建 教程 一.准备工作 1.所需软件: MySQL数据库:本文用MySQL-essential-5.0.45-win32.msi PHP : 本文用php-5.2.4 ...

  3. 宝塔服务器环境好不好_服务器环境怎么搭建?(宝塔环境搭建教程)

    大家好,欢迎来到西安蓝蜻蜓网络讲坛,上期我们讲的是怎样购买服务器,很多小伙伴都知道了购买服务器的方式方法,那么购买服务器后需要怎么搭建服务器环境呢?那么今天,我们就来讲述下服务器环境怎么搭建? 以宝塔 ...

  4. php iis mysql windows2003,Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程 | 系统运维...

    准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14 MySQL版本:MySQL5.5.25 二.相关软件下载: 1.PHP下载地 ...

  5. win命令安装 安装cmake_win10下VSCode+CMake+Clang+GCC环境搭建教程图解

    打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, ...

  6. Quorum企业以太坊环境搭建教程

    Quorum企业以太坊环境搭建教程 Quorum是一个许可制的以太坊联盟区块链实现,包含了金融巨头JP摩根开发的一个GETH分支版本, 可以在节点之间实现私有和快速的交易.Quorum为保证隐私对节点 ...

  7. iis php win安装kangle_Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程

    现在很多朋友想尝试win2008 r2来跑web服务器,跟win2003相比界面差别有点大,有些人可能不太习惯,不过以后是趋势啊,这里简单分享下,方便需要的朋友 准备篇 一.环境说明: 操作系统:Wi ...

  8. C++编程【Visual Studio 2017 环境搭建教程】【附:软件安装包】

    学习网址:哔哩哔哩网站--黑马程序员C++从0到1入门编程(附C++编程环境搭建教程) 软件安装包:visual_studio_community_2017_version_15.3.exe 链接:h ...

  9. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2008 R2 PHP版本:php 5.4.4 MySQL版本:MySQL5.5.25 二.相关软件下载: 1.PHP下载地址: htt ...

最新文章

  1. 微调torchvision 0.3的目标检测模型
  2. Ifvisible.js – 判断网页中的用户是闲置还是活动状态
  3. mysql去重DISTINCT
  4. myeclipse 2016 ci3破解教程(含软件下载)
  5. 基于Spring Boot的WebSocket应用程序并捕获HTTP会话ID
  6. [react] 怎样将事件传递给子组件?
  7. SpringMVC学习--参数绑定
  8. java泛型和类型通配符,java – 泛型,类型参数和通配符
  9. web之nginx相关配置二
  10. 虚断、虚短及同相放大与反相放大
  11. HBase Coprocessor实现HBase二级索引
  12. 2021鹏业安装算量软件常见问题整理(五)
  13. 【R语言】rep用法(自用)
  14. html网页内部超链接介绍
  15. 2200p如何连接wifi打印_柯尼卡美能达2200P打印机使用介绍
  16. 邮箱接爱服务器端口填什么,你了解多少邮件端口及常用邮箱服务器?
  17. HbuilderX 配置eslint规范 问题
  18. 自动上传视频到B站和西瓜视频
  19. pgAdmin4 设置 中文 界面
  20. 护士资格证考试机考可以用计算机吗,护士资格人机对话考试怎么考?

热门文章

  1. 欧拉公式-python程序-计算机仿真方法(入门级)
  2. EBS 退货单无法退账,VALIDATE_RMA_LOT_QUANTITIES_ERROR
  3. python字符串能不能加减乘除_Python运算符可不只有加减乘除
  4. Android开发模式:模型—视图—主导器模式
  5. U盘---群联方案量产
  6. 什么是广播风暴,如何防止局域网环路引起的广播风暴?
  7. ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number
  8. 人脸识别系统做CCC认证,人脸识别系统做SRRC认证
  9. 如何设置WordPress文章特色图像(Featured Image)
  10. 通信人眼里的ABC……