TC397 EB MCAL开发从0开始系列 之 [2.0] PORT配置实战 - 上电点亮LED

->返回总目录-<

一、PORT配置

1、配置目标

使用TC397 KIT,点亮LED D107.

1.1、硬件使用

硬件资源见开发板手册。D107对应P13.0.。
在这里插入图片描述在这里插入图片描述

1.2、软件使用

编译调试:ADS(免费编译调试IDE)。
MCAL:MCU,PORT,MCALLIB,RESOURCEM模块。

2、创建第一个EB工程

在file中右击新建工程,输入工程名StartDemo,后续工程配置以该工程为基础。

2.1、创建工程,添加模块

在这里插入图片描述
在这里插入图片描述
ECU ID这里写TC397(无关紧要,和实际产品相关),Target:选中型号TC397
在这里插入图片描述
工程创建好后如下:
在这里插入图片描述
新工程下默认模块是空的,需要手动添加模块,点击project,右键选中Module Configurations。
在这里插入图片描述
使用到的模块有PORT,MCU,MCALLIB,RESOURCEM模块,选中双击添加。
在这里插入图片描述
添加完成后project下会出现添加的模块,选中其中一个模块,双击出现模块配置。
在这里插入图片描述
这里先把模块中的Error Detect和SafetyEnable勾选去掉,这是和安全检测有关的,调试阶段我们不需要,可以去掉。
在这里插入图片描述
添加MCU clock时钟,这里默认配置即可,后续的文章中会介绍如何配置MCU时钟和资源配置。
在这里插入图片描述
双击PORT,开始配置PORT。
在这里插入图片描述
这里同样需要把Error Detect和SafetyEnable勾选去掉。
在这里插入图片描述
在PortContainer中配置PIN属性。
在这里插入图片描述
先添加一个,发现PortNmber是0,PortNumberOfPort是13,PortNmber是PORT的模快序号,比如P10.0,PortNmber就是10,PortNumberOfPort是P10.x的x的个数,即P10中有多少个PIN脚。因为TC397的PIN不止一个模块,而且我们需要的是P13.0,这里创建一个发现没有,别急,后面会和大家说如何去配置。
在这里插入图片描述
PortPin中配置具体的端口。
在这里插入图片描述
这里PortNmber是0,PortNumberOfPort是13,即后面我们要添加13个PIN。
在这里插入图片描述
这里一直添加即可,直到不能添加为止,会默认限制到PortNumberOfPort的个数,与实际的PIN个数对应。
在这里插入图片描述
在这里插入图片描述
退到PortContainer中继续添加,直到不能添加为止,这里会将所有的PIN都添加进来,就是也会把我们需要的P13.0添加进来。
在Problems View中会有一堆报错,没事,我们慢慢来,一个一个点进去,查看原因。双击其中一个PORT相关的问题。

2.2、解决EB工程报错问题

模块添加后在Problems View中有很多报错,双击可跳转问题位置。
在这里插入图片描述
这里报错,添加即可
在这里插入图片描述
添加后问题解除。
在这里插入图片描述
继续双击,定位问题位置。
在这里插入图片描述
添加后,发现问题并没解除,添加位置可继续添加。
那我们继续添加,直到不能添加为止,这里我们无脑添加,后面文章会解释。
在这里插入图片描述
这里可以看到添加到不可添加了,问题解除。
在这里插入图片描述
对其他模块问题解除,双击到MCU中,对其中每个模块都添加,直到不可添加为止。
这里非常多,不展开了。
在这里插入图片描述
添加后问题解除。
在这里插入图片描述
其中有两个只添加一个,McuClockReferencePoint只添加一个。
在这里插入图片描述
McuModeSettingConf只添加一个。
在这里插入图片描述
到这里问题只剩下两个,在ResouorceM模块中,ResouorceM是分配资源核的模块,是对需要的模块分配CPU资源,比如CAN0分配到CPU0,SPI0分配到CPU1中。
在这里插入图片描述
这里按照提示添加模块。
在这里插入图片描述

添加后双击进入CORE0配置,CORE0这里是配置成主核,还可以配置成其他CPU。 在这里插入图片描述
添加后双击进入CORE0配置,
这里继续添加核配置,需要几个核就添加几个核,我们现在只需要一个即可。里面的核配置暂时不分配。
在这里插入图片描述
选择TC397后,EB工程问题就解决完成,可编译生成代码了。
在这里插入图片描述
在这里插入图片描述

2.3、 编译生成代码并添加到ADS DEMO工程中

2.3.1、编译生成动态代码

在Project中校验并编译生成代码。
在这里插入图片描述
校验工程是否有错误。
在这里插入图片描述
编译生成动态代码。
在这里插入图片描述
代码生成在Output中。
在这里插入图片描述

2.3.2、Output导入到ADS工程中

将Output中的生成代码,即src和inc拷贝覆盖到EB_Cfg下。
在这里插入图片描述
打开ADS编译不报错,集成到ADS完成。
在这里插入图片描述
编译不报错。
在这里插入图片描述

3、根据功能修改配置,添加初始化模块

根据需求,我们需要将P13.0配置成输出,默认低电平,初始化后LED即可点亮。
在这里插入图片描述
这里在EB中重新配置PORT_13_PIN_0,配置如下:
在datasheet中查找配置,O0是他那GPIO输出模式,即EB中配置选择ALT0。后续其他模块类似,通过片选选择PIN输出功能配置。
在这里插入图片描述

在这里插入图片描述
代码生成后重新覆盖到ADS中编译,点击小虫子DEBUG烧录到TC397上。运行即可点亮。打断点在之前,LED灭,执行初始化后点亮LED Port_Init(&Port_Config);
在这里插入图片描述
以下为初始化源码。关键在于添加#include “Port.h”和在初始化中Port_Init(&Port_Config);

#include "Ifx_Ssw_Infra.h"
#include "IFX_Os.h"
#include "Port.h"

void core0_main (void)
{
  volatile unsigned short LoopFlag = 1U;
  unsigned short cpuWdtPassword;
  unsigned short safetyWdtPassword;
  
  ENABLE();
  /*
   * !!WATCHDOG0 AND SAFETY WATCHDOG ARE DISABLED HERE!!
   * Enable the watchdog in the demo if it is required and also service the watchdog periodically
   * */
  cpuWdtPassword = Ifx_Ssw_getCpuWatchdogPassword(&MODULE_SCU.WDTCPU[0]);
  safetyWdtPassword = Ifx_Ssw_getSafetyWatchdogPassword();
  Ifx_Ssw_disableCpuWatchdog(&MODULE_SCU.WDTCPU[0], cpuWdtPassword);
  Ifx_Ssw_disableSafetyWatchdog(safetyWdtPassword);

  Port_Init(&Port_Config);

  while (1)
  {
  }
}

->返回总目录-<

  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy九歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值