FreeRTOS在英飞凌TC3xxx上移植

2023-10-30 17:00:32 浏览数 (2)

摘要

本篇文档主要用来介绍FreeRTOS在英飞凌TriCore TC33x系列上的移植和使用

FreeRTOS介绍

FreeRTOS自从被AWS收购后,不断的发展壮大,使用的人群非常庞大,FreeRTOS 是市场领先的面向微控制器和小型微处理器的实时操作系统 (RTOS),与世界领先的芯片公司合作开发, FreeRTOS 通过 MIT 开源许可免费分发,包括一个内核和一组不断丰富的 IoT 库,适用于所有行业领域。FreeRTOS 的构建突出可靠性和易用性。

TC3xx介绍

TC3xxx系列是英飞凌推出的基于Tricore架构的32微控制器,性能高超,广泛应用于汽车电子行业对安全要求比较高的部件,如转向,刹车,等高安全等级的地方。具体的性能参数可以参考官方的数据手册,这里不在赘述。

动手移植

移植前需要自己下载准备FreeRTOS软件源码包,这个是开源的,无论是在官网还是Githhub都可以下载到,除此之外还需要安装开发环境IDE,这里我们使用免费的AURIX Development Studio V1.9.

新建工程

在ADS下新建一个工程

选择芯片

添加文件夹

完后成在工作空间下建成一个基础工程,在工程目录架构下新建两个文件夹OS和AppSw,一个用来存放RTOS源码包,一个用来存放我们的应用,建好后,加载如工程,如下图所示

修改配置

首先修改FreeRTOSConfig.h文件对系统进行相关配置和裁剪,因为我们使用的芯片是300M,所以将CPU时钟频率修改为300000000Hz,心跳为1ms,设置堆栈大小,根据实际调整,选用STM0作为系统的心跳定时器,也可以选用其他定时器。

修改移植

对port文件夹下的移植文件进行修改,这里如果是参考官方的文档,修改很少,推荐大家使用,文末我会放上移植好的工程供大家参考。

建立应用

修改OsTasks.c文件

创建任务

完成任务实现函数,就可以调用使用了,这里我们建立了两个任务,任务1是每200ms闪烁LED1,任务2是每500ms闪烁LED2.

验证

对任务进行初始化,并开启调度器,如果编译没有错误就可以将代码下载到板子上进行验证,文中工程使用的硬件是AURIX TCxx4 lite Kit V1版本的硬件。可以看到两个LED按照设计的预期执行闪烁,证明正常运行,后期可基于这个工程添加更多功能。

总结

之前很早给大家介绍过在ARM平台下移植freeRTOS, 今天这个移植是基于Tricore平台架构,可以看到只要掌握移植的关键步骤,再加上参考一些资料,还是很容易移植成功,随文附录工程,供大家参考

链接:https://pan.baidu.com/s/1z0GwKzxf4y78WQIjcDO7XA

提取码:ytnb

0 人点赞