![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
infineon
文章平均质量分 87
Rainmicro
这个作者很懒,什么都没留下…
展开
-
英飞凌CANFD一次采样点和二次采样点
采样点是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。在我们了解采样点的测试方法之前,我们需要先了解CAN报文的一个位时间是如何组成的。CAN控制器的最小时间周期称作时间份额(Time quantum,简称Tq),它是通过对芯片晶振周期进行分频而得来的。一个位时间由若干个Tq组成(通常为8到25个),同时根据功能分为4个阶段:同步段、传播段、相位缓冲段1和相位缓冲段2。同步段(Sync_Seg):用于实现时序调整,总线上各个节点的跳变沿产生在同步段内,通常为1个Tq;转载 2024-06-22 23:18:33 · 152 阅读 · 0 评论 -
AURIX TC3xx单片机介绍-启动过程介绍2
,初始化过程是CPU0完成的。用户可以根据不同的复位事件来选择不同的执行路径。用户启动程序是在Boot Firmware之后运行的程序(转载 2023-11-19 21:59:02 · 654 阅读 · 0 评论 -
AURIX TC3xx单片机介绍-启动过程介绍1
在AURIX 2代,总共有4个Boot Mode Header(BMHDx, x=0-3),他们都是定义在UCB里的,为了防止数据的损坏,每个Boot Mode Header都有其一个备份,即有原始的Boot Mode Header,,UCB_BMHDx_ORIG,也有其备份的UCB_BMHDx_COPY,为了保证正常启动,在UCB里至少有一个存在。对于第二个问题,从Security的角度来说,是不建议用HWCFG的方式来决定启动模式的,防止被暴力刷新;2,定义ABM Header的内容。转载 2023-11-19 21:55:57 · 1062 阅读 · 0 评论 -
AURIX TC3xx device被锁住的各种原因,详细解释介绍case
将第一个HSM扇区专门用于引导加载程序,并将HSM应用程序代码和数据(加密/解密密钥)加载到剩余的HSM专用扇区中。Note:如果仅将OCDS DIS位设置为1B,并将DBGIFLCK位清除为0B,则即时设置了正确的调试接口密码,SSW也不会处理调试接口的解锁。如果HSM模块已经使能(HSM BOOTEN=1)并且没有有效代码被编程到HSM PFLASH区域(无效包括“无代码”),则Device是“永久锁定”此情况,用户必须在AURIX TC3xx应用程序代码中执行禁用保护命令序列(提供正确的密码)转载 2023-11-19 21:40:09 · 318 阅读 · 0 评论 -
AURIX TC3XX SOTA详解
SOTA全称是云端软件升级(Software updates Over The Air),就是指在不连接烧写器的情况下,通过CAN、UART或其它通讯方式,实现应用程序的更新。在进行SOTA时,需要把旧的应用程序擦除,把新的应用程序写入。常规的实现方式需要分别开发BootLoader程序和APP程序,MCU上电先运行BootLoader,BootLoader根据情况选择是否跳转到APP和是否进行程序更新。转载 2023-11-19 21:28:10 · 222 阅读 · 0 评论 -
AURIX Tricore 寄存器: 通用寄存器,系统寄存器,中断
中断控制单元(ICU)的中断控制寄存器(ICR)持有当前CPU优先级号(CCPN),全局中断启用/禁用位(IE)和暂挂中断优先级号(PIPN),以及特定于实现的位来控制中断仲裁周期。A[0], A[1], A[8], A[9] 这四个寄存器被定义为系统全局寄存器,它们的内容不会在 调用;A[11] : 被用作存储调用和链接跳转的返回地址(RA),或者用作存储中断和陷阱的返回程序计数器(PC)的值。该模式下的任务可以关闭中断。即:A[0], A[1], A[8], A[9] 全局寄存器不再被允许写入。转载 2023-11-19 21:17:19 · 471 阅读 · 0 评论 -
OTA-swap Bank AB
就是这里当我们下一次需要运行在Bank B 我们的hex/s19文件本身的地址是不需要变化的。这里属于dflash, 写的方式可以使用dmu.具体写的内容就是下面的两个位置。根据上面的参数即可。从这两张图可以看出来,如果打开OTA配置的话,我们实际上可以用的flash 只有7M. 当然如果是别的芯片可用的flash会更少。这里属于Dflash的位置,用Dflash最原始的办法就可以了。到这里第一步读取当前的bank已经清楚了,并且也清楚什么时候这个寄存器被赋值的。一般来说是什么样的流程呢,简单的来说。转载 2023-11-11 19:58:57 · 349 阅读 · 1 评论 -
学习笔记|AURIX™ TC3xx 启动流程
本文首先介绍整个启动流程的概况,接着分别介绍了firmware启动流程,boot mode的配置,以及用户程序启动流程。这里的Startup Sequence包含MCU的firmware启动流程和用户程序启动流程两部分。转载 2023-10-29 21:32:51 · 1046 阅读 · 0 评论 -
TC3xx芯片的UCB详解
刚开始使用TC3xx芯片的时候,程序烧录进去后起不来,一番咨询后是因为没有配置UCB导致的,然后刷了一个其他平台项目的UCB文件后,程序正常起来了。本着刨根问底的态度,今天就来一起学习TC3xx芯片的UCB。因为UCB的配置内容非常的多,本文以UCB中BMHD的配置为例详细介绍通过UCB来配置符合用户需求的BMHD,其他UCB的具体内容的配置及分析思路可以参考本文。转载 2023-10-29 21:25:00 · 948 阅读 · 0 评论 -
基于Aurix的SOTA(A/B分区)实践指南
提示:本文基于Tasking+TC397讨论。转载 2023-10-29 21:02:26 · 897 阅读 · 1 评论 -
基于Aurix TC3xx SWAP机制(A/B分区)的SOTA实现
随着芯片资源的不断扩充,增加了App(Application)升级方式的多样性。比如,本文要讨论的SOTA(Software Updates Over The Air),通过Aurix TC3xx SWAP机制,使得App的升级更加便捷。本文讨论实现SOTA的一些关键性问题:如果要支持SWAP功能,首先,硬件的内存资源需要足够。因为SWAP功能需要两个等大小的物理内存空间,用以存储程序。eg:App程序的大小为3Mbyte,如果要支持SWAP功能,至少需要硬件的PFlash空间>6Mbyte。先看一下TC3转载 2023-10-29 20:56:42 · 1424 阅读 · 0 评论 -
如何使用链接文件设置填充值(Fill Value)
将函数_START(),放到.start段,.start段的起始地址为0xA0000020。在嵌入式开发中,大家是否遇到这样一种场景:段(SECTIONS)中不用的字节填充特定的填充值(eg:0xFF)。其中,在格式的最后,有一个[=fillexp],所以,如果想在Section不用的字节中填充特定填充值,可以在此处设置填充值。所以,如上通过修改链接文件,编译器在生成最终的*.hex文件时,即可将不使用的字段填充为特定的填充值。实现的方式很多,本文介绍一种方式:通过设置链接文件,编译器编译时自动填充。转载 2023-10-29 20:33:34 · 197 阅读 · 0 评论 -
如何基于HighTec,在链接文件(*.lsl)中设置自定义段
HighTec的用户手册中,对于"Section"的解释如下所示:意思是说:Section是一段没有间隔(gaps)的连续地址空间。这段地址具有特定的目的,eg:将其设定"只读"。实际的工程中,我们会将函数或者变量放入指定的Section,或者说自定义的Section。这又是如何操作的呢?设置Section的目的是将Object(函数或者变量)放入指定的地址空间。转载 2023-10-29 20:28:27 · 538 阅读 · 0 评论 -
Bootloader开发:uC如何烧录第一个程序?
搞汽车开发的小伙伴们,是否思考过这样一个问题:“一颗"裸"芯,即:没有Bootloader和Application程序的uC,如何将Bootloader程序烧录进uC?”要弄清楚这个问题,我们先从BootROM说起。本文讨论内容:1、BootROM3、工厂如何给"裸"芯烧录程序:本文以Aurix tc3xx为例。转载 2023-10-29 19:57:47 · 228 阅读 · 0 评论 -
嵌入式开发:CSA是什么?
比如:某个CPU的运行状态如下,此时,有3个CSA可用,FCX指向CSA3,CSA3通过Link Work指向CSA4,CSA4通过Link Work指向CSA5,CSA5指向空(没有可用的CSA)。展开讨论之前,回顾一下Cortex内核运行机制,发生中断或者Trap时,程序需要先保护现场信息,将现场信息压栈(Push),之后程序跳转到中断服务例程执行对应程序,处理完异常后,程序返回现场,恢复现场信息,即:出栈(Pop)。工程中,针对不同的CPU,根据实际情况划分每个CPU的CSA区域大小与起始地址。转载 2023-10-25 22:44:14 · 106 阅读 · 0 评论 -
TriCore架构学习笔记(一):架构总览
汽车嵌入式开发中,需要不断地拓宽自己的知识结构,才能更有效地理解Bug的本质,进而想出更好的解决策略。如果大家项目中,使用的是英飞凌系列芯片,熟悉TriCore架构是有必要的,这有助于你理解和的一些操作。本文分享一下自己对TriCore架构的一些理解。转载 2023-10-25 22:30:10 · 1146 阅读 · 0 评论 -
Autosar Os MCU 多核 启动
在phase0 主要是初始化core 寄存器,以及赋予一些操作权限。转载 2023-10-25 22:18:16 · 895 阅读 · 0 评论 -
Aurix TC397 Tricore 1.6内核CSA入门介绍
b. PCX的内容写入CSA3的linkword(代表CSA3的下一个地址是CSA2,即CSA3指向了CSA2)。b. FCX的内容写入CSA3的linkword(代表CSA3的下一个地址是CSA4,即CSA3指向了CSA4),因为之前是FCX指向CSA4。FCX寄存器和PCX寄存器代表了Linkword的地址,至于CSA的地址和Linkword是等价的,它们有转换关系的。FCX寄存器和PCX寄存器代表了Linkword的地址,至于CSA的地址和Linkword是等价的,它们有转换关系的。转载 2023-10-25 21:45:00 · 800 阅读 · 0 评论 -
TriCore的CSA机制介绍
MCU在运行过程中,发生中断或异常时,需要现场保护后再去执行中断服务函数,并在处理完成后恢复现场,如《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors》的章节介绍了异常入栈和出栈的情况(如下图所示),异常发生时,入栈的寄存器依次是xPSR,PC,LR,R12,R3,R2,R1,R0,而异常处理完成后返回时,对应的出栈顺序刚好相反。转载 2023-10-25 21:35:00 · 193 阅读 · 0 评论