MacOS安装VSCode在QEMU上模拟跑FreeRtos

文章目录

应用环境安装

MacOS安装HomeBrew

通过HomeBrew可以很方便的安装各种应用,

在MacOS上安装Homebrew是一个简单的过程,它允许你轻松地安装、更新和管理各种命令行工具和应用程序。以下是安装Homebrew的步骤:

  1. 打开终端

    首先,打开你的终端(Terminal)。你可以通过在"应用程序">"实用工具"文件夹中找到并打开它,或者在搜索栏中输入"Terminal"来找到它。

  2. 安装Homebrew

    在终端中,输入以下命令来安装Homebrew:

bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

这个命令会从Homebrew的GitHub仓库下载安装脚本并执行它。

  1. 等待安装完成
    安装过程可能需要一些时间,因为它会下载Homebrew的代码并将其放置在系统路径中。安装完成后,你会看到类似以下的提示:
text 复制代码
Your next step: run `brew help`
  1. 添加Homebrew到你的PATH(可选)
    如果你在安装过程中没有自动添加Homebrew到你的PATH,你可以手动添加。通常,安装脚本会自动处理这个步骤。但是,如果你需要手动添加,可以使用以下命令:
bash 复制代码
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

对于某些旧版本的MacOS或特定的shell配置,你可能需要使用/.bash_profile或/.bashrc文件代替~/.zprofile。你可以通过运行以下命令来检查你的shell配置文件:

bash 复制代码
echo $SHELL

然后,根据输出结果选择合适的配置文件。例如,如果你使用的是bash,你可以使用:

bash 复制代码
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile
eval "$(/opt/homebrew/bin/brew shellenv)"
  1. 验证安装
    为了验证Homebrew是否正确安装,你可以运行:
bash 复制代码
brew doctor

这个命令会检查你的系统配置,并告诉你是否一切正常。

MacOS安装VSCode

官网

https://code.visualstudio.com/

点击"Download for macOS"下载,然后安装。

MacOS安装QEMU

前面已经介绍了HomeBrew的安装,这里可以直接使用brew指令安装QEMU

bash 复制代码
brew install qemu

ARM GCC

安装gdb调试工具:

bash 复制代码
brew install arm-none-eabi-gdb

安装gcc

不要使用如下指令安装,编译时会缺少头文件的,

bash 复制代码
brew install arm-none-eabi-gcc

gcc请到官网下载

https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

选择macOS这个32位的,注意要选择下载tar.xz这一个文件,不要下载pkg后缀的及其它文件

bash 复制代码
# 进入下载目录
cd ~/Downloads

# 解压下载的文件(请将文件名替换为你实际下载的版本)
sudo tar xjf arm-gnu-toolchain-15.2.rel1-darwin-arm64-arm-none-eabi.tar.xz -C /usr/local/

# 为了方便,可以创建一个没有版本号的软链接
cd /usr/local/
sudo ln -s arm-gnu-toolchain-* arm-gnu-toolchain

配置环境变量

编辑你的 shell 配置文件(~/.zshrc 或 ~/.bash_profile),将工具链的 bin 目录添加到 PATH 环境变量中。

bash 复制代码
# 打开配置文件,比如使用 nano
nano ~/.zshrc

# 在文件末尾添加以下行(根据你实际的安装路径调整)
export PATH="/usr/local/arm-gnu-toolchain/bin:$PATH"

保存文件后,执行以下命令使配置立即生效:

bash 复制代码
source ~/.zshrc

如果要在VSCode中使用,需要重启下电脑,不然会找不到gcc的。

步骤4:验证安装

检查安装是否成功,以及标准库头文件是否存在。

bash 复制代码
# 检查版本
arm-none-eabi-gcc --version

# 查找标准库头文件路径(应该会返回一个路径,例如 /usr/local/arm-gnu-toolchain/arm-none-eabi/include)
arm-none-eabi-gcc -print-sysroot
ls $(arm-none-eabi-gcc -print-sysroot)/include

如果 ls 命令列出了 stdlib.h 等头文件,说明安装成功。

Make

bash 复制代码
brew install make

Git

bash 复制代码
brew install git

获取FreeRTOS源码

FreeRTOS官方已经提供了针对QEMU的演示项目,我们直接克隆即可:

bash 复制代码
# 克隆FreeRTOS仓库(包含子模块)
git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules --depth=1

这里使用--depth=1参数可以加快下载速度,只获取最新版本。

github有可能会下载失败:

可以利用国内加速下载

bash 复制代码
git clone https://gitclone.com/github.com/FreeRTOS/FreeRTOS.git --recurse-submodules --depth=1

如果失败,尝试

bash 复制代码
git clone https://bgithub.xyz/FreeRTOS/FreeRTOS.git --recurse-submodules --depth=1

我在使用gitclone.com的指令、kkgithub.com加速都失败后,最后是通过bgithub.com的指令下载成功的:

下载过程可能会异常中止,比如在下载ThirdParty/mbedtls子模块时失败了:

text 复制代码
Cloning into '/Users/temp/Documents/project/FreeRTOS/FreeRTOS-Plus/ThirdParty/mbedtls'...
remote: Enumerating objects: 209768, done.
remote: Counting objects: 100% (1020/1020), done.
remote: Compressing objects: 100% (498/498), done.
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 8170 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
fatal: clone of 'https://github.com/Mbed-TLS/mbedtls.git' into submodule path '/Users/temp/Documents/project/FreeRTOS/FreeRTOS-Plus/ThirdParty/mbedtls' failed
Failed to clone 'FreeRTOS-Plus/ThirdParty/mbedtls' a second time, aborting

如果已经下载了一半(目录已存在):

进入 FreeRTOS 目录,尝试重新初始化并更新子模块:

bash 复制代码
# 如果目录里有失败的 mbedtls 文件夹,先删除它
rm -rf FreeRTOS/FreeRTOS-Plus/ThirdParty/mbedtls 

# 通过配置 Git,让它在遇到 github.com 时自动替换为可用的加速前缀
git config --global url."https://bgithub.xyz/".insteadOf "https://github.com/"

# 重新更新子模块
cd FreeRTOS
git submodule update --init --recursive --depth=1

配置VSCode

打开Demo项目

克隆完成后,打开VSCode并加载演示项目:

在VSCode菜单中选择 File > Open Folder

导航到刚刚克隆的FreeRTOS仓库中的演示目录:

text 复制代码
FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC

点击"确定"打开项目

Demo下面有许多子文件夹,

可以搜索查找后打开

这个演示项目已经预先配置好了针对ARM Cortex-M3(mps2-an385板)的QEMU仿真环境。

配置VSCode调试环境

  1. 查看交叉编译工具路径
bash 复制代码
which arm-none-eabi-gdb

输出

复制代码
/opt/homebrew/bin/arm-none-eabi-gdb

调整工具链路径

打开项目后,需要根据你的系统环境调整调试配置:

在VSCode中打开.vscode/launch.json文件

找到miDebuggerPath配置项,将其修改为你系统上arm-none-eabi-gdb的实际路径:

"/opt/homebrew/bin/arm-none-eabi-gdb"

确认编译配置

打开项目中的main.c文件,确保以下配置:

c 复制代码
#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY    1

设置为1表示编译简单的blinky演示(两个任务通过队列通信),设置为0则会编译完整的测试演示。

默认已经是1了

一键编译运行

  1. 在VSCode左侧栏点击Run And Debug
    如下图的左侧的一只虫子在三角形图标上:
  2. 从顶部的下拉菜单中选择"Launch QEMU RTOSDemo"
  3. 点击绿色的"播放"按钮开始编译和运行
    这个过程会自动:
    • 调用make编译FreeRTOS演示程序
    • 启动QEMU仿真器,加载编译好的程序
    • 连接GDB调试器

如果没有任何反应,那可能是编译失败了,可以直接按F5快捷键进行编译,编译失败会报错:

这个错误是因为安装的gcc只是精简的版本,不是完整的,没有头文件,一般是用brew指令安装会有这个问题,要解决这个问题要到官网去下载安装包安装。

注意不是安装名字叫cppdbg的扩展插件,而是要安装c/c++插件:

出现这个图就代码运行成功了,main就是运行入口函数:

点击如下右边的三角运行按钮:

在这里可以很方便地进行下断点调试。

查看运行输出

可以在下方终端输出看到已经在运行了,会有不停的打印:

这表明FreeRTOS正在QEMU中正常运行,任务正在按预期调度。

详细代码可以打开main_blinky.c查看,工作原理就是两个任务在不停地发,一个任务接受到并打印信息。

相关文章

MacOS安装VSCode在QEMU上模拟跑FreeRtos
RTOS日志库ulog与EasyLogger详细对比
RTOS数据库FlashDB、TFDB、SQLite选哪个

作者:帅得不敢出门

相关推荐
小锅锅氩2 小时前
JavaDay01
java·ide·intellij-idea
Sahadev_2 小时前
macOS 解决 AirDrop 传输应用“已损坏“问题,以sublime为例
macos·策略模式·sublime text
咯哦哦哦哦2 小时前
windows下VSCode配置C++/CMake/Qt/MVSC 开发环境 【电脑已经安装vs2022】
c++·vscode·qt
信鸽爱好者2 小时前
RTX5060 GPU CUDA12.8 +vscode 设计一个torch实例程序
人工智能·vscode·深度学习·编辑器
无限进步_2 小时前
【C++】字符串中的字母反转算法详解
开发语言·c++·ide·git·算法·github·visual studio
pop_xiaoli2 小时前
【iOS】alloc & init & new源码阅读
macos·ios·objective-c·cocoa·xcode
挂科边缘2 小时前
字节跳动 AI 原生 IDE Trae 安装与上手图文教程
ide·人工智能·trae
理性的曜12 小时前
VoloData——基于LangChain的智能数据分析系统
人工智能·vscode·数据分析·npm·reactjs·fastapi·ai应用
肖恭伟14 小时前
VScode入门学习
ide·vscode·学习