AurixDevStudio集成MCAL

2023-05-16

在这里插入图片描述
这是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;
#endif
    ENABLE();
#if ((defined IFX_CFG_SSW_ENABLE_TRICORE0) && (IFX_CFG_SSW_ENABLE_TRICORE0 == 0))
    safetyWdtPassword = Ifx_Ssw_getSafetyWatchdogPassword();
    Ifx_Ssw_disableSafetyWatchdog(safetyWdtPassword);
#endif
    cpuWdtPassword = 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完成的,所有这样改一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AurixDevStudio集成MCAL 的相关文章

  • C/C++学习(2)关于strcpy、strcat函数使用

    strcpy strcat函数使用注意 题目来源 xff1a 点击打开链接 下列程序的打印结果是 char p1 15 61 34 abcd 34 p2 61 34 ABCD 34 str 50 61 34 xyz 34 strcpy st
  • 详解测试驱动开发 Test Driven Development(TDD)

    TDD的目标 Clean Code That Works 这句话的含义是 xff0c 事实上只做两件事情 xff1a 让代码奏效 xff08 Work xff09 和让代码洁净 xff08 Clean xff09 xff0c 前者是把事情做
  • 搭建无人机仿真环境之PX4安装

    搭建无人机仿真环境之PX4安装 安装依赖包下载固件git submodule update init recursive中遇到的问题make posix sitl default gazebo中遇到的问题运行roslaunch px4 ma
  • c++11-消息总线库

    消息总线 对象间只通过消息来联系 xff0c 不通过直接的依赖或者关联 消息总线将复杂的关系简化 xff0c 降低复杂度 消息总线关键技术 1 xff09 通用的消息定义 让所有额对象都通过消息来联系 xff0c 定义一种通用的消息格式 2
  • 异常(Outlier)检测算法综述

    什么是异常 outlier Hawkins 1980 给出了异常的本质性的定义 xff1a 异常是在数据集中与众不同的数据 xff0c 使人怀疑这些数据并非随机偏差 xff0c 而是产生于完全不同的机制 聚类算法对异常的定义 xff1a 异
  • mathGL

    mathGL就是用来绘制一些统计图形的一个CPP的库 xff0c 实际上就是和gnuplot类似的一个C xff0b xff0b 的库 xff0c 很适合科学计算的结果分析和统计 xff0c 另外还有QT xff0c python等支持的接
  • Ubuntu网络接口配置文件:nano/etc/network/interfaces 以及 Ifconfig只显示一个lo

    没接触过linux xff0c 由于要部署项目 xff0c 安装的Ubuntu16 04 xff0c 安装完配置网络接口 xff0c 遇到的两个问题如下 xff1a 1 网络接口配置文件 xff1a nano etc network int
  • Ubuntu中启用关闭Network-manager网络设置问题!

    Ubuntu中启用关闭Network manager网络设置问题 xff01 Server版本 在UbuntuServer版本中 xff0c 因为只存有命令行模式 xff0c 所以要想进行网络参数设置 xff0c 只能通过修改 etc ne
  • 解决问题:执行rosdep相关命令时遇到permission denied问题

    执行命令 xff1a sudo rosdep fix permissions
  • FSK,PSK,ASK,BPSK调制

    信号调制常用的三种基本方法是 xff1a 调幅 调频和调相 1 振幅调变 xff0c 简称为调zhi幅 xff0c 通过改变输出dao信号的振幅 xff0c 来实现传送信息的目的 一般在调制端输出的高频信号的幅度变化与原始信号成一定的函数关
  • STM32 FreeRTOS 队列 及 xQueueGenericSend使用

    1 xff0c 队列中比较重要的结构体 xff1a xQUEUE xff08 Queue t xff09 2 xff0c 入队相关API xff1a xQueueSendToFront xQueueSendToBack xQueueSend
  • 移植FreeRTOS到 Xilinx ZYNQ Microblaze IP核

    1 xff0c 运行环境vivado2019 2 xff0c win10 ZYNQ 7000系列 2 xff0c FreeRTOS官网源码下载 https www freertos org 3 xff0c FreeRTOS 是一个迷你的实时
  • linux下网络设备驱动开发

    一 xff0c 网络OSI参考模型分为 从上到下 应 xff0c 表 xff0c 会 xff0c 传 xff0c 网 xff0c 数链 xff0c 物 物理层 gt 数据链路层 gt 网络层 gt 传输层 gt 会话层 gt 表示层 gt
  • freeRTOS系统静态与动态建立任务

    一 xff0c 静态建立任务 1 xff0c 定义任务函数 xff08 一个无限循环且不带返回值的函数 xff09 任务必须是死循环 xff0c 否则任务将经过 LR 返回 xff0c 如果 LR 指向了非法内存就会产生HardFault
  • Ubuntu18.04安装Ceres1.14

    Ubuntu18 04安装Ceres1 14 1 下载Ceres2 安装依赖项3 编译4 安装 1 下载Ceres 链接Github下载地址 2 安装依赖项 sudo apt get install liblapack dev libsui

随机推荐

  • SSH登录出现REMOTE HOST IDENTIFICATION HAS CHANGED故障的解决办法

    今天登录一台交换机 xff0c 出现如图错误 xff1a 原因 该IP分配给过另一台交换机 xff0c 在knows hosts文件中保留了当时的rsa信息 xff0c 将这个IP有分配给新设备 xff0c SSH登录时会提示RSA key
  • 外贸函电常用词汇

    外贸函电常用词汇 xff1a xff08 1 xff09 贵函 Your letter Your favour your esteemed letter Your esteemed favour Your valued letter You
  • 匿名拓空者Pro开源飞控使用介绍-1-飞控特点

    匿名团队 是一个爱好技术 xff0c 爱好创新的团队 做自己 xff0c 发现兴趣 xff0c 追随兴趣 xff0c 分享兴趣 非常欢迎大家关注我们匿名 xff0c 交流群 xff1a 190169595 匿名拓空者Pro 飞控 xff0c
  • 匿名拓空者Pro开源飞控使用介绍-2-硬件配置及拓展接口

    硬件配置 主控 STM32F407 xff1a 1M FLASH xff0c 192K RAM xff0c 运行频率168MHz xff1b 惯性传感器 icm20602 xff1a 3轴陀螺 43 3轴加速度 43 恒温设计 xff08
  • 匿名拓空者Pro开源飞控使用介绍-3-连接上位机及基本测试

    飞控连接上位机方法 飞控可以通过底板上的USB端口连接上位机 xff0c 使用USB线连接飞控和电脑 xff0c 飞控买家版程序会将USB端口初始化成HID设备 xff0c 免安装驱动程序 xff0c 只要打开匿名上位机 xff0c 打开程
  • 匿名拓空者Pro开源飞控使用介绍-4-飞控安装及坐标系定义

    飞控安装 将机架组装好 xff0c 电机安装于机架上 xff0c 飞控安装于机架重心位置 xff08 一般为机架中心板中心位置 xff0c 也就是两条电机对角线交点 注意 xff0c 飞控尽量水平安装于机架上 xff0c 飞行效果最好 xf
  • 匿名拓空者Pro开源飞控使用介绍-5-接收机连接

    确定使用何种接收机连接方式 匿名拓空者PRO飞控支持SBUS PPM PWM型接收机 xff0c 根据推荐程度依次为SBUS gt PPM gt PWM SBUS PPM均可以实现1根信号线传输多通道遥控数据的功能 xff0c SBUS为串
  • 匿名科创--匿名拓空者PRO—TI版全开源飞控使用入门—TM4C123

    1 飞控介绍 匿名团队针对TI芯片的强烈学习需求 xff0c 推出了匿名拓空者PRO飞控的TI版 使用TI公司的 TM4C123G 主控芯片 xff0c 打造了一款完全开源的飞控产品 xff0c 提供完全开源的飞控整体工程文件 xff0c
  • 匿名科创--ANO_OPENMV视觉开发板介绍

    1 ANO OPENMV介绍 官方OPENMV体积大 xff1f 在飞行器上不方便安装 xff1f 串口通过杜邦线容易接触不良 xff1f 不可否认 xff0c OPENMV为大家提供了一个非常方便 易用的视觉开发环境 xff0c 但是在实
  • 匿名科创--匿名拓空者PRO--开源光流融合算法使用教程

    1 总体介绍 为了更好的支持匿名TI飞控买家 xff0c 匿名团队开源了基于优象光流模块的飞控算法 xff0c 光流传感器直接连接至匿名拓空者PRO TI版飞控 xff0c 由飞控读取原始光流传感器的光流数据 xff0c 结合高度传感器以及
  • Linux 设备驱动开发实例

    编译和运行 驱动编译要用到kernel的Makefile文件 也就是源码树的编译系统 因此 xff0c 源码需要被配置和编译 xff0c 以ubuntu自带的源码为例 xff1a 编译外部模块 ko 的编译命令是 xff1a make C
  • 匿名科创-匿名光流V3版对天安装介绍

    安装介绍 光流模块对天安装时 xff0c 方向参考上图 注意 xff0c 只有光流模块对上安装 xff0c 激光或超声波测距模块仍然对地安装 配置介绍 如需使用对天模式 xff0c 硬件安装好后 xff0c USB线连接光流模块至上位机 x
  • 从 C51+uCos-II 近距离了解操作系统任务切换原理

    前言 从 C51 43 uCos II 简单介绍下任务切换的原理 方便大家更形象的理解多任务怎么切换 为后续写 x86 43 Linux 任务切换做铺垫练手吧 参考资料如下 xff1a uCos II 源码 单片机原理与应用及 C51 编程
  • Keil+Simulink生成Xcp标定协议A2L文件

    Keil 43 Simulink生成Xcp标定协议A2L文件 由于最近要为ECU移植XCP协议 xff0c 所以记录一下 xff0c 我使用的MCU为NXP S32K144 IDE选用MDK 官方IDE S32DS无代码联想功能 xff0c
  • 记录一下关于MPC5744P CAN总线学习

    记录一下关于MPC5744P CAN总线学习 主要是针对开发出BUSOFF管理 xff0c NXP感觉都是一个套路 xff0c 无论powerpc xff0c 还是arm m status t span class token functi
  • 通过.map文件填写XCP标定需要的A2L文件

    首先你得有一个模板 xff0c 通过python脚本打开编译后的 map文件自动填写到A2L文件对应位置 xff0c 目前只实现了填写Mesurement 区域 xff0c 但是这个填写主要是更新变量名和对应的ECU ADRRESS 因为
  • Autosar Xcp移植

    前言 xff1a 可能有兄弟胸中有点疑问 Vector ETAS等软件包都有XCP xff0c 你移植个吊 xff0c 但是我的MICORSAR BSW中没发现XCP静态代码 xff0c 倒是在CFG中发现了XCP配置选项 xff0c 难道
  • Tricore学习-芯片启动流程

    第一次接触Tricore 学习下从芯片上电到运行到main函数的过程 xff0c 本文以TC36X为例 xff0c 具体可参考英飞凌官方的Infineon AURIX TC3xx Part1 UserManual v02 00 EN 首先T
  • ETAS-AUTOSAR学习-0.1Task配置思考

    span class token function TASK span span class token punctuation span OsTask BSW span class token punctuation span span
  • AurixDevStudio集成MCAL

    这是Tricore MCAL安装路径 打开ADS新建一个AURIX Project 我手上的是龙邱的TC377最小系统 就这样选 理解下第一个选项 新建好的基础工程是这个样子 删除掉Library文件夹 因为我们这里要使用的MCAL而不是i