TC3xx A\B SWAP机制的小细节(2)

news2024/11/26 12:20:19

目录

1.引入

2.TC3xx Swap机制小细节

3.小结


1.引入

上文TC3xx A\B SWAP机制的小细节(1)-CSDN博客主要把OTA的概念,以及MCU的硬件A\B Swap机制做了简单介绍,下面我们来聊聊TC3xx的SWAP机制

2.TC3xx Swap机制小细节

英飞凌TC3xx提供了硬件SOTA机制,它可以实现代码在一个Flash Bank读取并运行,同时另外一个Bank可以刷写新的代码。以TC37x为例,该系列包含两个PFlash Bank,大小均为3MB,如下图所示:

那么我们来思考如下几个问题:

  • 要使用swap机制,工程编译应该使用什么地址映射方式?

在TC37x系列里,有两个地址映射模式: standard address map和alternate address map,其物理bank和逻辑地址映射关系如下:

而我们在上面提到使用硬件SWAP机制的好处就是只用维护一个工程以及对应链接脚本,因此从逻辑上讲,我们应该就使用standard address map的地址来设计链接文件并编译工程,整体逻辑如下:

从CPU的视角来看,它始终使用逻辑地址0x80000000(举例)来取指,而芯片硬件根据不同地址映射模式来给物理Bank0、1分配逻辑地址,例如0xAA模式下,分配0x80000000给到PFlash1,这样就能保证运行的是更新后的代码。 

  • 更新代码应该往哪个地址写数据?

既然CPU始终是从0x80000000(举例)来取指,那么我们就认为这个地址的Bank为Active的Bank,那么很明显我们要将新的代码放进inactive bank里,在该示例中毫无疑问就应该是0x80300000的逻辑地址。

这就出现了问题,一般来说我们通过编译器例如Tasking、Hightec编译出来的文件多数为hex、elf文件,这些文件都是带地址信息的,如下图:

可以看到,第二行记录的起始地址为0x80000020,以此类推。那么我们如果直接用这个hex就覆盖掉了active bank上的内容,这样显然是不行的。

为解决这个问题,Lauterbach、iSystem等等提出了基于调试器级别的方案:

Lauterbach Application Note FLASH Programming TriCore中提到,如果SWAP使能后,Code想要刷进inactive bank,需要使用TRANSlation命令,如下所示:

当然也可以用调试器自带脚本 /demo/tricore/flash/tc3xx-swap.cmmiSystem针对TC3xx的SWAP机制做了优化,用户只需要配置SWAP相应UCB即可完成下载,这个地址偏移等动作对于用户来说是透明的。

Aurix devices have internally more than one program flashes (e.g. PF0, PF1, PF2 flash blocks, etc.). When SOTA is enabled, alternate address mapping is enabled. During download, winIDEA detects which flash memory mapping is selected and it writes data from the download file to correct PFlash block. Download operation is thus transparent to the end user.

那么实际上从整车角度来看,OTA时不能拆盖连接调试器,所以我们只能在Master端进行地址转换,或者我们将待更新文件做成bin文件(不带地址信息),由Master指定刷写的地址。

  • 使能HSM时,代码应该如何部署?

 当HSM使能后,TC3xx会给PFlash 0 前40个Sector给到HSM让用户选择,如下图:

既然我们要用A\B SWAP机制,那么inactive bank应该也有相应的镜像,HSM、Host代码部署如下:

同时从手册上描述看,PROCONHSMCX、PROCONHSMCOTP的寄存器设置同样会镜像给到A、B Bank。 

除此之外,我们注意到Tricore CPU都有一个直连接口PFI连接到bank,这里用的是逻辑地址,用于加快取指;而当SWAP使能后,逻辑地址没变,物理Bank却变了,所以CPU只能从SRI去取指,这会有一些​性能上的损失,如下:

3.小结

上面简单描述了汽车OTA的必要性,引申出了MCU对于OTA的硬件机制实现,分析了关于TC3xx SWAP小细节,后续我们再继续讲解在OTA硬件机制下为什么Flash的RWW属性非常重要,NXP、ST的Flash RWW有哪些区域。

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

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

相关文章

一招解决家里粉尘螨虫太多难题?家用空气净化器哪款品牌效果好?

一到夏天,两天不打扫家里,家里就会布满一层粉尘。而且春夏的气候也是粉尘螨虫生长和繁殖疯狂时期,一不注意室内空气污染卫生的情况下,就会加剧尘螨的滋生,体质弱、敏感的人群生活在这样的空气环境下,还会增…

Web数据提取:Python中BeautifulSoup与htmltab的结合使用

1. 引言 Web数据提取,通常被称为Web Scraping或Web Crawling,是指从网页中自动提取信息的过程。这项技术在市场研究、数据分析、信息聚合等多个领域都有广泛的应用。Python社区提供了丰富的工具和库来支持这一技术,其中BeautifulSoup和htmlt…

五大维度大比拼:ChatGPT比较文心一言,你的AI助手选择指南

文章目录 一、评估AI助手的五个关键维度二、ChatGPT和文心一言的比较 评估AI助手的五个关键维度,以及ChatGPT和文心一言的比较如下: 一、评估AI助手的五个关键维度 界面友好性 : 评估标准:用户界面是否直观易用,是否…

NVIDIA发布Nemotron-4 340B 用于生成高质量的合成数据

Nemotron-4 340B 是一系列为 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 优化的模型,包括最先进的指令和奖励模型,以及用于生成式 AI 训练的数据集。 英伟达今日宣布推出 Nemotron-4 340B,这是一系列开放模型,开发者可以使用它们生成用于…

MySQL Server和Server启动程序(一)

MySQL Server mysqld,也称为MySQL Server,是一个单线程多任务的程序,它在MySQL安装中执行大部分工作。它不会生成额外的进程。MySQL Server管理对包含数据库和表的MySQL数据目录的访问。数据目录也是其他信息(如日志文件和状态文…

小区噪音监测管理系统设计

一、引言 随着城市化进程的加快,小区居民对于居住环境的要求日益提高。其中,噪音污染已成为影响居民生活质量的重要因素。因此,设计一套小区噪音监测管理系统,对于提升居民的生活品质和小区管理效率具有重要意义。本文将详细阐述…

中国星网时空信息集团春招Offer面经

本文介绍2024届春招中,中国卫星网络集团有限公司下属中国时空信息集团有限公司中,业务助理岗位1场面试的基本情况、提问问题等。 2024年04月投递了中国卫星网络集团有限公司下属中国时空信息集团有限公司中的业务助理岗位,所属部门为运营中心…

如何使用nginx部署https网站(亲测可行)

公司本来有网站sqlynx.com是http运行的,但因为产品出海,基本上都要求使用https,但又需要兼容已有的http服务,所以我自己尝试做了一次https的部署,目前是正常可用的。 目录 步骤 1:安装 Nginx 步骤 2&…

关于从大平台跳转各个应用,更新应用前端包后,显示的仍是旧的内容,刷新应用页面后方才显示新的内容的问题的排查和解决

我们从绿洲物联平台跳转智能锁应用, 如下,我们可以看到,我们是通过a标签去跳转应用的。但是我们打开控制台的话,因为a标签是另外新开一个页面,我们看不到新页面的html文档的加载情况。 我们可以临时把_blank改成_sel…

MySQL约束详解:构建数据完整性基石

目录 MySQL约束1.1 约束1.1 数据类型1.2 主键约束[重要]1.3 自增约束1.4 唯一约束1.5 非空约束1.6 默认值代码演示 1.7 外键约束[了解]思维导图最后 MySQL约束 MySQL作为广泛使用的开源关系型数据库管理系统,其强大的数据约束功能对于维护数据的一致性和准确性至关…

鸿蒙原生App开发之:套用混合app开发思路

2024年,似乎华为迎来了新的企业机遇--鸿蒙独立操作系统。 受到全球国际形势的影响,加之第四次科技革命(AI革命)冷不丁的出现,在他国AI技术领先的前提下,中国自主研发的独立操作系统再次提上新的战略高度。…

【NLP项目-01】手把手教你基于TF-IDF提取向量+贝叶斯或者随机森林进行文本分类

【NLP项目-01】手把手教你基于TF-IDF提取向量贝叶斯或者随机森林进行文本分类 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文…

List, Set, Map, Queue介绍

Java集合框架是一组接口和实现这些接口的类的集合,它提供了对数据集合的高效率存储和操作。以下是Java集合框架中一些核心接口的介绍: 1.List: List是一个有序的集合,允许包含重复的元素。它提供了按插入顺序访问元素的方法&…

【5.x】ELK日志分析、集群部署

ELK日志分析 一、ELK概述 1、ELK简介 ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。 一个完整的集中式日志系统,需要包含以下几个主…

数据库原理(关系数据库规范化理论)——(4)

一、关系模式规范化的必要性 1.关系可能出现的问题 数据冗余大;插入异常;删除异常;更新异常; 2.关系模式应满足的基本要求 元组的每个分量必须是不可分割的数据项;数据库中的数据冗余应尽可能少;不要出…

AcWing 1273:天才的记忆 ← ST算法求解RMQ问题

【题目来源】https://www.acwing.com/problem/content/1275/【题目描述】 从前有个人名叫 WNB,他有着天才般的记忆力,他珍藏了许多许多的宝藏。 在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁…

【深度学习】GPT1,提高语言理解的生成预训练方法

论文: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf 文章目录 提高语言理解的生成预训练方法摘要引言相关工作自然语言处理的半监督学习无监督预训练辅助训练目标 框架无监督预训练有…

基于jeecgboot-vue3的Flowable流程-所有任务

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 这个部分主要讲所有任务的功能 1、主要列表界面如下&#xff1a; <template><div class"p-2"><!--查询区域--><div class"jeecg-basic-table-form-…

纯css星空动画

让大家实现一个这样的星空动画效果,大家会怎么做? js,不! 其实使用css就能写 我也不藏着掖着,源码直接放下面了 <script setup></script><template><div class"box"><div v-for"i in 5" :key"i" :class"layer…

函数递归

哈喽啊各位&#xff0c;真是&#xff0c;好久好久好久不见。这段时间实在是太过忙碌了昂&#xff0c;还望诸君见谅&#xff0c;接下来时间会松很多&#xff0c;咱们也会恢复正常更新速度啦 小希在这里祝诸君&#xff1a;期末不挂科&#xff0c;四六级都过&#xff01;功不唐捐…