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的一些资料分享给大家,写的很简略,需要的自取。  

results matching ""

    No results matching ""