FreeRTOS入门-qemu运行及资料
thatway 那路谈OS与SoC嵌入式软件 2022-09-23 20:32
先介绍一个模拟树莓派3的qumu可以运行的一套FreeRTOS代码,可以用于学习FreeRTOS。
1. 代码下载:
git clone https://github.com/eggman/FreeRTOS-raspi3
2. gcc编译器下载安装
打开网址:
https://developer.arm.com/downloads/-/gnu-a
点击后下载,执行下面解压命令,解压到~/bin文件下,这样就有了aarch64 工具链:
然后添加环境变量,在~/.bashrc中添加
PATH=~/bin/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin:"${PATH}"
关闭当前终端,重新打开一个或者执行source ~/.bashrc立即生效.
3. 编译
代码目录执行:make
4. 运行
代码目录执行:make run
以上运行的模拟树莓派3 Xilinx Cortex-A53平台。
5. FreeRTOS学习资料推荐:
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
视频:
https://www.bilibili.com/video/av57449565/?p=2&spm_id_from=pageDriver
6. AS平台中的FreeRTOS
AS系统运行起来的时候,我们可以看到下面打印,InitOS就是初始化RTOS,Start OS就是运行OS
首先看下代码中:
这两个函数都在as/com/as.infrastructure/system/kernel/Os.h中有定义,用到RTOS的代码都需要通过Os.h中的声明,然后再分发到某种类型的RTOS实现,Os.h是RTOS和跑在其上面的应用代码的中介,屏蔽了各种RTOS的差异,是各种RTOS接口的一种抽象,然后具体使用那种RTOS在编译脚本中设计,具体为:
as/com/as.infrastructure/system/kernel/SConscript
这个MODULES,例如我们使用的x86平台
上一节我们提到了怎么新加TASK
FreeRTOS入门-概念介绍
thatway,公众号:OS与AUTOSAR研究FreeRTOS入门-概念介绍
#include “OS.h”
TASK(BasicTask)
{
...
/*User Code*/
...
TerminateTask();
}
之前一个文章
AUTOSAR入门-SoAd模块和TcpIp模块
thatway,公众号:OS与AUTOSAR研究AUTOSAR入门-SoAd模块和TcpIp模块
3.1节里面就有接收网络报文的TASK,更深入的机制还没研究,另外AS中现在使用的是ASKAR的RTOS不是FreeRTOS,想在AS中运行起来的可以尝试下。或者把最新的Acrcore代码移植到FreeRTOS上也可以尝试。
后记:
FreeRTOS的一些资料分享给大家,写的很简略,需要的自取。