基于英飞凌 TC275 的Tasking+EB+Mcal创建最小系统点灯实例
前言:网上有很多例子,都是 EB 的配置,但没有从 EB 配置文件生成,静态 MCAL 代码裁剪,以及在 Tasking 建立最小程序实现 LED 的点灯操作。本实例从环境安装到最小系统搭建整个过程,保证你能从小白一天内入门到 TC275 平台的 MCAL 开发。
第1部分:安装与环境配置
第2部分: EB配置,配置文件生成
第3部分: Tasking 工程建立与配置,EB 配置移植与 MCAL 静态代码移植
第4部分: 编译后错误处理,代码生成与运行
- 安装包下载,网上有 TC275sip包 + autosar全套环境,可以直接搜索,安内部的提示安装 EB + TASKING + MCAL包。
- 使用 EB 进行配置,生成静态有配置文件
2.1 新建EB工程,打开 EB 程序,选择 File -> New -> Configuration Project
2.2 填写 Project Name,TC275D_BLINK,点击 Next 进入下一步
2.3 ECU_ID 可任意填写名字,TC275_BLINK; Target选择 AURIX/TC275;
勾选 Automatically add the minimum number of child elements in lists;点击 Next 进入下一步
2.4 我们要点灯,请选择 DIO,MCU,PORT,添加到 Module Configuration 中。点 Finish 完成配置,生成对应的工程
2.5 配置 Resource 选择单片机型号。
2.6 配置MCU。
2.6.1 选择 MCU -> MCUModuleConfigration ,双击 0 进入配置界面。
2.6.2 进入如下界面后,选择 McuClockSettingConfig,双击 0 进入配置界面。
2.6.3 找到MCAL包(注意是Mcal包)内的用户手册文件夹内的时钟配置文件。
2.6.4 根据需要填写对应的时钟配置信息,在RESULTS 内查看对应的配置信息
2.6.5 根据 excel 内的配置信息,填写 McuClockSettingConfig 配置信息。完成时钟配置。
2.7 配置 PORT
2.7.1 以 PORT 00.0 为例进行驱动。
2.7.2 选择 PORT -> PortConfigSet ->双击 0 进入配置界面。
2.7.3 双击 0 选择 PORT 0, 进入 pin配置; 双击 0 选择 PIN 0 进行配置。
2.7.4 将 PIN 修改为 OUTPUT。 完成 PORT 配置。
2.8 配置 DIO
2.8.1 选择 DIO -> General ->DioFlipChannelApi 选中。
2.8.2 按提示完成 PIN 的配置
2.9 生成配置文件
2.9.1 右键 TC275_BLINK MCAL配置,选择 Verify Porject 校验没错误后,在选择 Generate Project 生成配置文件,配置文件在OutPut 文件夹内。
- 使用 TASKING 创建工程,并且移植 MCAL 和EB 配置文件。
3.1 打开 TASKING,选择 File -> New -> TASKING TriCore c/c++ Project,按如下步骤创建工程。
3.2 MCAL EB 配置 与 MCAL 静态代码移植
3.2.1 创建文件夹
3.2.2 移植MCAL静态代码,在 MCAL 的静态代码安装路径,找到 dio_infineon_tricore ,general, mcu_infineon_tricore,port_infineon_tricore, tricore_general,右键复制。在工程内找到 SRC 文件夹,右键 -> paste。粘贴静态库代码到工程。
3.2.3 把多余文件夹删除,把 tricore_general中的 MCAL.C 文件删除,MCU 中GTM相关的全部删除。
3.2.4 移植 EB 配置文件
3.2.4.1 右键 generated ,属性,找到 output 文件的目录。
3.2.4.2 粘贴到工程内
3.2.4.3 删除多余文件
3.2.4.4 添加 memmap.h 文件,在你安装 MCAL 包内找到 memmap.h 文件复制到 MCAL 文件夹内。
3.2.4.5 在TC275D_BLINK.c 文件内添加如下代码,完成移植。
/*****************************************************
*
* TC275D_BLINK.c
*
* Description : Hello World in C, ANSI-style
*
*/
#include <stdio.h>
#include "Mcu.h"
#include "Dio.h"
#include "Port.h"
int main(void)
{
Mcu_Init( &Mcu_ConfigRoot[0]);
Mcu_InitClock(0);
/* distribute the clock */
Mcu_DistributePllClock();
Port_Init(&Port_ConfigRoot[0]);
Dio_Init(&Dio_ConfigRoot[0]);
while(1)
{
volatile unsigned int i = 10000000;
while(i--);
Dio_FlipChannel(DioConf_DioChannel_DioChannel_0);
}
}
3.3 工程配置
3.3.2 增加宏,TASKING_C_TRICORE,取消 Automactic inclusion of ‘.sfr’ file 选择
3.3.3 增加头文件,选择加号 -> workspace…,使用小键盘 * 全部展开,全选后,点击 ok。
3.3.4 选择 HEX map 和lsl 文件
4.编译与错误处理
4.1 配置后编译提示错误信息
4.2 在 MCAL.H内修改文件
//extern void Mcal_SafeErrorHandler(uint32 ErrorType);
void Mcal_SafeErrorHandler(uint32 ErrorType);
4.3 修改 Mcal_WdgLib.c 文件,添加Mcal_SafeErrorHandler 函数。
void Mcal_SafeErrorHandler(uint32 ErrorType)
{
;
}
4.4 编译通过
4.5 程序运行