这是Tricore MCAL安装路径

打开ADS新建一个AURIX Project

我手上的是龙邱的TC377最小系统, 就这样选

理解下第一个选项

新建好的基础工程是这个样子


删除掉Library文件夹, 因为我们这里要使用的MCAL而不是iLLD库(虽然它们实现的功能大体相同)

在工程里新建一个文件夹为Mcal

将如图所示的文件夹拷贝到工程的Mcal文件夹(直接拷贝到ADS, 这样ADS才能自动识别要编译的.c和将文件夹添加为头文件搜索路径),这个文件夹是TC377寄存器定义, iLLD库也有这个,只是定义貌似和Mcal提供的略有不同。


Mcal文件夹下新建一个Ssw文件夹

将MCAL Demo里面的Ssw代码拷贝到工程对应的文件夹, 这个貌似还是使用的iLLD库的启动代码, 之后用ETAS的话Ssw是RTA生成的

新建一个Integration文件夹


从这个地方拷贝你需要用的的额文件, 我不知道这个是咋生成的, 反正在Demo里先拿过来用

这两个文件要用到也单独拷贝到Integration文件夹
新建一个Platform文件夹

将如图所示的文件拷贝进去


将你需要用到的模块的静态代码文件夹拷贝到Mcal文件夹

假如我只是点个灯, 那么我需要用到MCU PORT DIO模块, 注意McalLib必须默认添加

新建一个文件夹叫McalCfg 将EB生成的配置代码拷贝到这。

EB生成的

#include "Ifx_Ssw_Infra.h"
#include "IFX_Os.h"
#include "Mcu.h"
#include "Port.h"
#include "Dio.h"void core0_main(void)
{unsigned short cpuWdtPassword;unsigned short safetyWdtPassword;ENABLE();cpuWdtPassword = Ifx_Ssw_getCpuWatchdogPassword(&MODULE_SCU.WDTCPU[0]);safetyWdtPassword = Ifx_Ssw_getSafetyWatchdogPassword();Ifx_Ssw_disableCpuWatchdog(&MODULE_SCU.WDTCPU[0], cpuWdtPassword);Ifx_Ssw_disableSafetyWatchdog(safetyWdtPassword);/*MCAL Init鏀惧埌杩欏効*/const Mcu_ConfigType * McuConfigPtr = NULL_PTR;const Port_ConfigType * PortConfigPtr = NULL_PTR;Std_ReturnType InitClockRetVal;Mcu_PllStatusType Mcu_GetPllStatusRetVal = MCU_PLL_STATUS_UNDEFINED;McuConfigPtr = &Mcu_Config;Mcu_Init(McuConfigPtr);InitClockRetVal = Mcu_InitClock((Mcu_ClockType)0);if(InitClockRetVal == E_OK){do{Mcu_GetPllStatusRetVal = Mcu_GetPllStatus();} while(Mcu_GetPllStatusRetVal != MCU_PLL_LOCKED);#if (MCU_DISTRIBUTE_PLL_CLOCK_API == STD_ON)Mcu_DistributePllClock ();
#endif}PortConfigPtr = &Port_Config;Port_Init(PortConfigPtr);McuConfigPtr = NULL_PTR;PortConfigPtr = NULL_PTR;Dio_LevelType led_blue = 1;static uint32 count = 0;/******************/while(1){if(count >= 3000000){count = 0;Dio_WriteChannel(DioConf_DioChannel_DioChannel_LedBlue, led_blue);led_blue = !led_blue;}count++;}
}#include "Ifx_Ssw_Infra.h"
#include "IFX_Os.h"void core1_main(void)
{unsigned short cpuWdtPassword;
#if ((defined IFX_CFG_SSW_ENABLE_TRICORE0) && (IFX_CFG_SSW_ENABLE_TRICORE0 == 0))unsigned short safetyWdtPassword;
#endifENABLE();
#if ((defined IFX_CFG_SSW_ENABLE_TRICORE0) && (IFX_CFG_SSW_ENABLE_TRICORE0 == 0))safetyWdtPassword = Ifx_Ssw_getSafetyWatchdogPassword();Ifx_Ssw_disableSafetyWatchdog(safetyWdtPassword);
#endifcpuWdtPassword = Ifx_Ssw_getCpuWatchdogPassword(&MODULE_SCU.WDTCPU[1]);Ifx_Ssw_disableCpuWatchdog(&MODULE_SCU.WDTCPU[1], cpuWdtPassword);while(1){}
}#include "Ifx_Ssw_Infra.h"
#include "IFX_Os.h"void core2_main(void)
{unsigned short cpuWdtPassword;ENABLE();cpuWdtPassword = Ifx_Ssw_getCpuWatchdogPassword(&MODULE_SCU.WDTCPU[2]);Ifx_Ssw_disableCpuWatchdog(&MODULE_SCU.WDTCPU[2], cpuWdtPassword);while(1){}
}

参考Demo修改一下三个Core的Main函数

编译报错了


将Ifx_Cfg_Ssw.h 中这三个地方由1改为0


编译成功, 我调试了跑起来没问题
Ifx_Cfg_Ssw.h 上述三个定义是指定是否在Ssw阶段初始化PMS和时钟(依赖iLLD库,但我们删除了), 我们的例程这两部分初始化是要放到Ssw结束跳转到Core0_Main() 中调用Mcu_Init,Mcu_InitClock完成的,所有这样改一下。

AurixDevStudio集成MCAL相关推荐

  1. 使用S32DS集成S32K的MCAL

    一.软件准备 前往恩智浦官网下载MCAL软件包.EB Tresos .以及S32DS IDE: 以下软件均有NXP免费提供,但需注册账号获取 S32DS IDE下载 EB Tresos以及MCAL下载 ...

  2. AutoSar之微控制器抽象层MCAL

    微控制器抽象层位于AUTOSAR BSW的最底层,包含内部驱动,可直接访问微控制器和外设芯片.从具体应用来看,MCAL主要包括微控制器驱动.存储器驱动.通信驱动和输入输出驱动四个部分,各部分又由具体的 ...

  3. Autosar MCAL开发必知的“术语”+“缩写”概念

    如何使用该博文? ==>您可以将该篇博文当做"字典",遇到疑惑的Autosar"关键字",使用组合键Ctrl+F,快速查找该关键字. 推荐Autosar培 ...

  4. 图解AUTOSAR(五)——微控制器抽象层(MCAL)

    微控制器抽象层位于AUTOSAR分层模型中BSW最底层,包含内部驱动,可以直接访问微控制器和片内外设.更进一步地,MCAL又可以分为微控制器驱动.存储器驱动.通信驱动和I/O驱动四个部分,各部分又由具 ...

  5. AUTOSAR MCAL详解: SPI (2)

    作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性. 所有文字均是自己码出来的,所有图片均为自己勾画(除部分来源于原始标准). 复制/转发请注明来源 ...

  6. AUTOSAR MCAL SPI配置

    AUTOSAR MCAL SPI AUTOSAT SPI SPI物理层介绍 SPI 在AUTOSAR的配置主要参数 SPI EB配置参数 AUTOSAT SPI 以下内容基于标准AUTOSAR文档以及 ...

  7. Autosar MCAL MCU配置时钟-基于cfg

    文章目录 前言 MCU时钟配置 cfg配置外部晶振 CCU 时钟源的选择 OSC(Oscillator Circuit) OSC的模式: 外部输入时钟模式: 外部晶体/陶瓷谐振模式 Back up时钟 ...

  8. MCAL系列介绍03-ADC

    本文框架 1. 前言 2. 基本概念 2.1 触发方式 2.1.1 软件触发 2.1.2 硬件触发 2.2 转换模式 2.2.1 One-shot模式 2.2.2 Continuous模式 2.3 A ...

  9. Nignx集成fastDFS后访问Nginx一直在加载中解决

    问题描述: Nginx集成fastDFS后,访问Nginx一直在加载中,得不到页面.查看Nginx的错误日志: 可以看到是fastdfs.conf的配置错误,tracker的ip没有修改: fastd ...

最新文章

  1. floquet端口必须沿z轴设置_金秀友佳FMH-630加工中心伸缩Y轴钢板防护罩批发价格...
  2. 漫话:全球 IPv4 地址正式耗尽?是时候说说到底什么是IPv4和IPv6了!
  3. C++/C学习笔记(九)
  4. 46.@弹出点击次数
  5. html在线播放mp4文件,使用HTML5视频在Firefox中播放MP4文件
  6. 使用js创建a标签下载文件
  7. 人生必看的100部好电影
  8. 七夕前夜,地球和月亮搭起“鹊桥”
  9. 笑话,随便笑不收费.
  10. AP AUTOSAR ——Diagnostic Management
  11. 问题 M: 【枚举】桐桐数
  12. 干碳纤维 湿碳纤维_纤维状网站故障不是一种选择
  13. oracle怎么退出,[转载]Oracle 11g SQL*Plus的几种启动、退出方法
  14. Google 释出开源软件漏洞扫描工具 OSV-Scanner​
  15. 计算机网络-拥塞控制/HTTP/URL
  16. TencentOS tiny 103标准库移植教程
  17. scrapy_redis分布式爬虫爬取亚马逊图书
  18. 08 - vulhub - Aria2 任意文件写入漏洞
  19. 河北计算机专科学校排行,河北2017计算机专业专科学校排名
  20. 用这个方法做影视剪辑,不用担心版权问题,一个月多赚3000

热门文章

  1. 湖北一公司发生闪爆事故,这套化工厂巡检系统你有吗?
  2. 中国运动型多功能车和皮卡视频行业市场供需与战略研究报告
  3. 快速区分AR VR MR 全息 3D
  4. 亚马逊账户违规了?如何自查
  5. 关于CLASS , SEL, IMP的说明
  6. 车机软件测试ADBShell命令集合
  7. ubuntu 双显卡安装n卡 Quadro K620 Tesla K80*8 显卡驱动的卸载 (已解决)没有图形界面。黑屏
  8. 《环球》杂志|“宇宙级”漏洞过后,一个技术总裁的忠告……
  9. 【Linux】SIGCHLD信号
  10. linux怎么查看文件内容