英飞凌(Infineon)平台嵌入式开发基础

news2024/11/19 17:22:40

本篇文章介绍了基于英飞凌平台进行嵌入式开发的一些基础知识,首先介绍了涉及芯片的信息和常见的开发环境,把生硬的主体名称先分类并抛出来;然后着重介绍了英飞凌官网提供的开发资源,包括不限于开发环境,代码示例,芯片手册,论坛讨论;最后以实际的闪烁灯需求出发,不仅介绍了使用英飞凌提供的ADS开发环境,还介绍了将示例程序移植到HighTec环境中进行编译,帮助读者直观的了解在英飞凌平台进行嵌入式开发的来龙去脉。

英飞凌(Infineon)科技公司于1999年4月1日在德国慕尼黑正式成立,其前身为西门子集团的半导体部门,其基于TriCore™ 的产品在汽车中的应用非常广泛,包括内燃机控制、纯电动和混合动力汽车、变速器控制单元、底盘域、制动系统、电动转向系统、安全气囊、联网和高级驾驶辅助系统,并推动着自动化,电动化以及网联化的发展。

AURIX是一款由英飞凌开发的32位微控制器系列,针对汽车电子应用而设计。其主要的开发调试环境如下:

  • ADS+miniwiggler:AURIX™ Development Studio是英飞凌针对AURIX TC2XX/TC3XX系列单片机推出了一款免费的软件,集成了iLLD库,拥有大量基于iLLD的例程。miniwiggler是 Infineon提供的低成本调试工具,可以实现芯片的程序刷写、调试等功能。
  • HighTec+UDE:HighTec为基于Eclipse的集成开发环境,使用常见的GNU GCC工具链进行代码编译,可以申请一年的免费试用期,绑定使用电脑的MAC地址。UDE是一款用于汽车电子和嵌入式硬件的调试工具,可以通过JTAG或DAP接口实现程序的烧录与调试功能,调试功能相对miniwiggler更加丰富。
  • 其他:Tasking+minwiggler也可以完成开发调试工作,仿真调试工具在预算充足的情况下可以选择劳德巴赫。minwiggler可以配合Memtool实现程序刷写的工作,在安装Memtool或者ADS的时候会提醒是否安装DAS,电脑上安装DAS 后,就能够连接miniwiggler,还可以显示芯片信息。

官网资源

英飞凌官网上对于AURIX™主要分为TC2xx系列和TC3xx系列。点击这里可以跳转至英飞凌AURIX™系列生态圈,包含了技术文档,评估板,开发工具,产品视频,开发问题等一系列初次接触该平台可能需要的背景知识。


ADS

AURIX Development Studio是一个免费的集成开发环境(IDE),适用于基于TriCore™的 AURIX™微控制器系列。它是一个全面的开发环境,包括 Eclipse IDE、C 编译器、多核调试器、英飞凌低级驱动程序 (iLLD),没有时间和代码大小限制,可以编辑、编译和调试应用程序代码。结合大量代码示例项目,IDE可用于评估 AURIX™ 微控制器系列的强大架构。

AURIX™ Development Studio由以下三部分组成:

  • Infineon Website Trainings:在英飞凌网站,您可以在其中找到快速/专家级培训的页面。点击这里跳转到培训页面,按照需要选择TC2xx/TC3xx系列芯片对应的培训内容,快速培训中包含了芯片内部一些基本模块原理说明,而专家培训则是针对英飞凌各个基于iLLD库的例程详细说明。
  • AURIX Development Studio:集成开发环境(IDE),点击这里跳转到对应工具的下载与安装,点击这里有快速使用指南,点击这里是它的Release Notes。
  • Infineon Github Code Example:点击这里跳转英飞凌公司提供的代码基于基于iLLD库的各种例程,您可以根据工程文件夹名称来选择您需要参考的开发板种类以及对应的功能,诸如Blinky_LED_1_KIT_TC397_TFT就是针对KIT_TC397_TFT评估板的闪灯工程。


文档与帮助

点击这里可以跳转到TC3xx的系列芯片相关文档,比如常用的User Manual。

点击这里可以跳转到平台提供例程的详细说明以及iLLD的帮助文件。

点击这里跳转到MyICP可以按照提示进行保密文档申请。

点击这里跳转到AURIX™ 论坛讨论。


ADS使用示例程序实现LED灯闪烁

打开ADS集成开发环境,File菜单下的Import。

选择AURIX Development Studio Project,可以看到官方提供了非常多的示例,并且可以通过关键字属性查找自己感兴趣的模块。

我们在搜索栏可以根据主题、芯片型号等进行筛选,我们输入LED 26x,可以看到这个针对KIT_TC265_TFT评估板的LED闪烁实现工程,可以看到下面也有一个简略的介绍,说这个示例工程会控制 P33.8 闪烁。点击完成 ADS 就会自动把这个工程下载下来放在工作区。

打开之后就可以看到工程所有的源码已经包含进来了。

我们下面贴出了主核的示例代码,读者可以根据中文注释进行理解。

#include "IfxCpu.h"
#include "IfxScuWdt.h"
#include "Ifx_Types.h"

#include "Bsp.h"
#include "IfxPort.h"

IfxCpu_syncEvent g_cpuSyncEvent = 0;

int core0_main(void) {
    IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());//关cpu狗
    IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());//关Safety狗

    IfxCpu_emitEvent(&g_cpuSyncEvent);
    IfxCpu_waitEvent(&g_cpuSyncEvent, 1);//等待核同步

    initTime();//初始化Time
    IfxPort_setPinModeOutput(&MODULE_P33, 8, IfxPort_OutputMode_pushPull, IfxPort_PadDriver_cmosAutomotiveSpeed1);//设置引脚推挽输出

    IfxCpu_enableInterrupts();//使能中断

    while (1) {
        IfxPort_togglePin(&MODULE_P33, 8);//翻转引脚状态
        waitTime(5 * TimeConst_100ms);//延时
    }
    return (1);
}

示例工程移植到HighTec

示例工程结构

点击这里跳转到英飞凌示例程序github。

 我们这里选择在KIT_TC334_LK开发板上闪烁灯的工程,可以看到如图所示的工程结构。

 下面介绍一个各个文件夹所包含的内容:

  • Configurations:包含了一些芯片启动配置代码,如BMHD。
  • Libraries:这个文件夹就是官方提供的库文件,包含以下三个部分
    • Infra:文件夹包含头文件,编译器文件以及启动软件文件。
      • Platform/Tricore/Compilers:包含编译器文件。
      • /Infra/Sfr/TC33A/_Reg:包含寄存器相关头文件。
      • Infra/Ssw/TC33A/Tricore:包含启动文件。
    • Service/CpuGeneric:包含衍生的独立服务软件源。
    • iLLD/TC33A/Tricore:包含iLLD底层驱动相关源文件。
      • _Build:编译驱动所需的文件。
      • _Impl:包含配置文件。
      • _PinMap:包含引脚列表。
      • _Lib:包含通用的功能函数。
      • XXX(module):包含具体外设驱动。
  • CupX_Main.C:各个CPU的main函数,MCU上电先由CPU0执行SSW中的启动代码,再依次启动其它CPU,跳转到各自的main函数。
  • *.lsl:这两个就是链接脚本,带Tasking的是ADS和Tasking编译器用的,带Gnuc的是GCC用的,HighTec用的链接脚本就是Lcf_Gnuc_Tricore_Tc.lsl。

新建HighTec工程

新建一个Hightec工程,选择“Create advanced project”,选择TC334系列的BSP example:

建立好的工程之后,我们需要把之前的源码目录全部删除,即下图的红框部分。


复制例程源码

将Github上的源码复制到工程路径下,复制完之后摁F5刷新工作区,可得下图。


工程配置 

按下图按照需要添加头文件包含。下图示例中仅包含了src,我们需要把所有工程中涉及到的头文件路径包含进来。

按照下图,勾选不使用Hightec自带的启动代码,因为iLLD中集成了SSW启动代码,勾选之后可以从iLLD的_START函数启动。 链接文件选用从示例工程复制过来的链接脚本。

在此处添加__HIGHTEC__条件编译宏定义。

 最后,只留下一个Build Configurations即可。


点击编译之后即可生成对应的elf文件(可以根据需要重新命名工程)。


 十六宿舍 原创作品,转载必须标注原文链接。

©2023 Yang Li. All rights reserved.

欢迎关注 『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1225888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring学习②__IOC分析

目录 IOC控制反转IOCIOC理论案例IOC的思想(注入)IOC底层什么是 IOCIOC 底层原理 总结 IOC 控制反转IOC ①控制反转,把对象创建和对象之间的调用过程,交给Spring进行 ②使用IOC目的:为了耦合度降低 IOC理论案例 控制…

深度学习中对抗生成网络GAN背后的数学原理

引言 GAN的风暴席卷了整个深度学习圈子,任何任务似乎套上GAN的壳子,立马就变得高大上了起来。那么,GAN究竟是什么呢? GAN的主要应用目标: 生成式任务(生成、重建、超分辨率、风格迁移、补全、上采样等&a…

判断序列值是否单调递增 PandasSeries中的方法:is_monotonic_increasing

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断序列值是否单调递增 PandasSeries中的方法: is_monotonic_increasing 选择题 请问下列程序运行的的结果是: import pandas as pd s1 pd.Series([1, 2, 5]) prin…

linux如何使用Xshell远程连接

简介:本文的一切条件基于redhat的linux操作系统。 1、创建虚拟机: 如有需要,请转至【linux基础】在VMware上安装RHEL9详细教程_融社的博客-CSDN博客 (如若侵权,该篇立删) 2、使用命令查看网段信息 打…

ThreadLocal优化

测试类证明一下ThreadLocal存储的数据是线程程安全的 package com.lin.springboot01;import org.junit.jupiter.api.Test;public class testThreadLocal {Testpublic void testThreadLocalSetAndGet(){//提供一个ThreadLocal对象ThreadLocal t1 new ThreadLocal();new Thread…

复旦大学EMBA深度链接深圳科创产业:聚焦智联,产融未来

作为科创成就的经济大区,深圳南山区通过跨界创新研发生态链条,领跑科创产业创新,以187.5平方公里的面积,雄踞着204家上市公司,地均生产总值产出达到了40.7亿元,相当于每平方公里出产超过1家上市公司&#x…

openwrt配置ipv6

废话部分(可跳过) 历经多天,经过各种测试,终于把openwrt的ipv6配置成功了,这篇我将尽我所能详尽的描述一下可能遇到的问题和解决办法。这篇文章致力于让你完成整个openwrt的ipv6配置,希望对你有所帮助。在…

sentinel 网关

网关简介 大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。 这样的架构,会存在…

WinForms C# 导入和导出 CSV 文件 Spread.NET

使用 WinForms C# 和 VB.NET 导入和导出 CSV 文件 2023 年 11 月 17 日 使用 Spread.NET 直接在 .NET WinForms 应用程序中处理 CSV 文件。 Spread.NET可帮助您创建电子表格、网格、仪表板和表单。它包括一个强大的计算引擎,具有 450 多个函数以及导入和导出 Micros…

Django的可重用HTML模板示例

01-配置并运行Django项目 首先按照博文 https://blog.csdn.net/wenhao_ir/article/details/131166889配置并运行Django项目。 02-创建可重用模板文件 templates目录下新建目录common,然后在目录common下新建文件:navbar.html,并写入下面的…

火山引擎 ByteHouse 的增强型数据导入技术实践

作为企业数字化建设的必备要素,易用的数据引擎能帮助企业提升数据使用效率,更好提升数据应用价值,夯实数字化建设基础。 数据导入是衡量OLAP引擎性能及易用性的重要标准之一,高效的数据导入能力能够加速数据实时处理和分析的效率。…

【LLM】基于LLM的agent应用(更新中)

note 在未来,Agent 还会具备更多的可扩展的空间。 就 Observation 而言,Agent 可以从通过文本输入来观察来理解世界到听觉和视觉的集成;就 Action 而言,Agent 在具身智能的应用场景下,对各种器械进行驱动和操作。 Age…

maptalks三维地图网址

三维 地址: http://examples.maptalks.com/examples/cn/gltf/gltf-marker/shader

【漏洞复现】浙大恩特CRM文件上传0day

漏洞描述 浙大恩特客户资源管理系统任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用…

表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 📜表白墙/留言墙初级Spring Boot项目(此篇博客的简略版,不带MyBatis数据库开发) 目录 1、项目前端页面及项目…

C/C++ 运用WMI接口查询系统信息

Windows Management Instrumentation(WMI)是一种用于管理和监视Windows操作系统的框架。它为开发人员、系统管理员和自动化工具提供了一种标准的接口,通过这个接口,可以获取有关计算机系统硬件、操作系统和应用程序的信息&#xf…

nodejs微信小程序-利康药房管理系统的设计与实现- 安卓-python-PHP-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

【Redux】Redux 基本使用

1. Redux 快速上手 Redux 是 React 最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia&#xff08;Vuex&#xff09;&#xff0c;可以独立于框架运行。 <button id"decrement">-</button> <span id"count">0</span> <…

2023年汉字小达人市级比赛在线模拟题更新:40分钟150题完整对标

今天是2023年11月19日&#xff0c;距离11月30日的汉字小达人市级比赛还有11天。许多孩子正在利用难得的周末抓紧练习和备赛。 结合一些孩子的反馈和需求&#xff0c;我把150题的在线模拟题做了更新&#xff0c;增加了前面的个人信息填写的部分&#xff0c;并且把整个试卷的完成…

SpringSecurity5|12.实现RememberMe 及 实现原理分析

security/day08 这个功能大家还熟悉么&#xff1f;我们在登录网站的时候&#xff0c;除了让你输入用户名和密码&#xff0c;还会有个勾选框&#xff1a; 记住我&#xff01;&#xff01;&#xff01;不是让大家记住我哈。 值得一提的是&#xff0c;Spring Security 也提供了这个…