Freertos环境搭建及运行

硬件环境:Intel PC
软件环境:Ubuntu20.04
实验目标:编译运行调试freertos

1. 编译Freertos

在这里插入图片描述

  • 介绍一个模拟树莓派3的qumu可以运行的一套FreeRTOS代码,可以用于学习FreeRTOS。

1.1 代码下载

git clone https://github.com/eggman/FreeRTOS-raspi3

1.2 gcc交叉编译器安装

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

在这里插入图片描述

#解压
tar -xf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
#导出环境变量,当前bash有效
export PATH=/home/freertos-raspi3/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/:$PATH

1.3 编译freertos

make #编译freertos
make run  #启动qemu模拟运行demo程序,打印如下所示 ctrl A + X退出qemu
 
 #qemu-system-aarch64 -M raspi3 -m 1024 -serial null -serial mon:stdio -nographic -kernel kernel8.elf
 #hello world
 #start TaskA
 #0000000000000000
 #00000000000001F4

2. GDB调试freertos

#1. 窗口1启动freertos并等待调试
qemu-system-aarch64 -M raspi3 -m 1024 -serial null -serial mon:stdio -nographic -kernel kernel8.elf -s -S
#2. freertos默认编译未支持gdb调试,Makefile中增加-g支持
重新make clean;  make
#补充 若

在这里插入图片描述

# 补充,若aarch64-none-elf-gdb提示缺少libpython2.7.so.1.0
locate libpython2.7.so.1.0
cp /snap/gnome-3-34-1804/93/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 ../gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/

#3. 窗口2使用交叉编译gdb调试编译的二进制
aarch64-none-elf-gdb ../../FreeRTOS-raspi3/kernel8.elf
(gdb) target extended-remote :1234
(gdb) b uart_init
(gdb) c

在这里插入图片描述

3. 官方freertos

  • 上文是树莓派3的freertos,属于精简版,官方freertos支持更多的平台和demo。

3.1 下载代码

在这里插入图片描述

3.2 运行Posix demo

  1. freertos有多种模拟环境,如qemu,windows,linux posx等,下面运行linux posix demo,参考: https://u003ewww.freertos.org/zh-cn-cmn-s/FreeRTOS-simulator-for-Linux.html
  2. 适用于 RTOS (POSIX)的 Linux 移植层位于
    FreeRTOS/Source/portable/ThirdParty/GCC/Posix 目录。
  3. 共有两个演示项目:一个是仅有内核的演示,位于 FreeRTOS/Demo/Posix_GCC 目录中;另一个是网络演示,位于FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix 目录中。
# 1. 运行Posix_demo
cd FreeRTOS/Demo/Posix_GCC/
make clean
make PROFILE=1
./build/posix_demo

4. 参考

  1. Freertos官网:https://u003ewww.freertos.org/zh-cn-cmn-s/emulation-simulation/
  2. freeRTOS中文文档:https://www.bookstack.cn/read/freeRTOS_Document/readme.md
  3. 用户指南、移植指南、API等:https://docs.aws.amazon.com/zh_cn/freertos/?id=docs_gateway
  4. csdn系列文档:https://blog.csdn.net/zhzht19861011/category_9265276.html
  5. 野火资料:https://doc.embedfire.com/rtos/freertos/zh/latest/zero_to_one/creating_project.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值