在Tricore上移植μC/OS-III——0.1总述

本文是《在Tricore上移植μC/OS-III》专栏文章的第一篇,先简单介绍下整个项目。

Tricore是英飞凌旗下的一款单片机内核,目前汽车电子领域常用的TC2XX和TC3XX等系列的单片机都是基于Tricore内核,有双核有多核,还有1个主核+一个校验核这种“1.5核”配置。我这次用的是TC265,双核。

做这个项目一是可以了解Tricore内核单片机的底层架构和开发方法,二是可以学习RTOS。RTOS选择了最新的μC/OS-III,我觉得相较于μC/OS-II最大的更新就是支持了时间片轮转,即允许存在相同优先级的任务,运行时为每个优先级相同的任务均匀分配运行时间,交替运行,共享内核。μC/OS-III资料会相对少一点,目前还找不到在Tricore上运行μC/OS-III的例程。我做整个项目大概花费了一个半月的时间,项目完成后,可以对Tricore的底层架构和μC/OS-III的源码有较为深刻的理解。

本专栏最开始会先用单核来讲解如何将μC/OS-III移植到Tricore内核上,然后会讲解如何修改μC/OS-III的源码 ,实现多核的调用。专栏最后我会给出我的源码,文章中提到的所有知识点都在源码中有实现。我的源码中只调用了两个核,但其实调用多核的原理和双核相同,在源码中修改核数量即可。

关于开发环境,我使用的是Aurix Development Studio这个软件,它是英飞凌为试用和学习阶段提供的开发平台,集成了Tasking compiler 和Debugger,带有免费的iLLD底层软件库,我会先写一写如何使用这个软件以及iLLD库。

以上就是对这个项目大体介绍,专栏文章已全部更新完毕,在专栏结尾有源码获取方式,阅读过程中有任何问题欢迎大家私信我交流讨论 ~

<<<总目录>>>

1 项目准备
1.1 AURIX Development Studio的使用
1.2 点亮一个LED灯
1.3 发送CAN报文
2 CSA机制详解
2.1 RTOS的任务切换原理
2.2 Tricore的CSA机制介绍
2.3 CSA的初始化状态
2.4 CSA的存储和调用
2.5 CSA机制运行示例
2.6 有关CSA的其它注意事项
3 实现上下文切换
3.1 如何实现任务状态的存储
3.2 任务初始化
3.3 任务切换
3.4 在中断中执行任务切换
4 陷阱(Trap)和中断(Interrupt)
4.1 Tricore的Trap机制
4.2 System Call的具体使用方法
4.3 系统时钟的实现
4.4 中断操作和CntLeadZeros函数
5 调用多核
5.1 μC/OS实现多核任务调度的基础工作
5.2 一种没能实现的理论最优任务调度算法
5.3 本次采用的多核任务调度算法
5.4 系统启动流程
5.5 任务调度的具体实现
5.6 核间中断
5.7 互斥量 & 源码获取方法

你可能感兴趣的:(单片机,rtos,英飞凌,Tricore)