硬件环境: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
export PATH=/home/freertos-raspi3/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/:$PATH
1.3 编译freertos
make
make run
2. GDB调试freertos
qemu-system-aarch64 -M raspi3 -m 1024 -serial null -serial mon:stdio -nographic -kernel kernel8.elf -s -S
重新make clean; make
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/
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
- freertos有多种模拟环境,如qemu,windows,linux posx等,下面运行linux posix demo,参考: https://u003ewww.freertos.org/zh-cn-cmn-s/FreeRTOS-simulator-for-Linux.html
- 适用于 RTOS (POSIX)的 Linux 移植层位于
FreeRTOS/Source/portable/ThirdParty/GCC/Posix 目录。 - 共有两个演示项目:一个是仅有内核的演示,位于 FreeRTOS/Demo/Posix_GCC 目录中;另一个是网络演示,位于FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix 目录中。
cd FreeRTOS/Demo/Posix_GCC/
make clean
make PROFILE=1
./build/posix_demo
4. 参考
- Freertos官网:https://u003ewww.freertos.org/zh-cn-cmn-s/emulation-simulation/
- freeRTOS中文文档:https://www.bookstack.cn/read/freeRTOS_Document/readme.md
- 用户指南、移植指南、API等:https://docs.aws.amazon.com/zh_cn/freertos/?id=docs_gateway
- csdn系列文档:https://blog.csdn.net/zhzht19861011/category_9265276.html
- 野火资料:https://doc.embedfire.com/rtos/freertos/zh/latest/zero_to_one/creating_project.html