RH850-U2A16芯片–RAM and Flash介绍

汽车安全 3年前 (2022) admin
2,432 0 0

前言

RH850-U2A16是瑞萨(Renesas)公司针对汽车域控制器推出的一款MCU芯片,功能强大,资源丰富,但是相关的学习资料很少。本系列文章将详细介绍RH850-U2A16芯片,本文为RH850-U2A16 RAMFlash介绍。

正文

1.RH850-U2A16芯片RAM

1.1 用户使用RAM类型及大小

RH850-U2A16芯片--RAM and Flash介绍

1RH850-U2A芯片RAM资源表

 

用户可使用的RAM有两类:

LRAM(Local RAM): 4个,每个64KB大小,每个CPU有一个。

CRAM(Cluster RAM): 4CRAMCluster RAM0:512KB, Cluster RAM1:512KB, Cluster RAM2: 2M, Cluster RAM3:256KB 

 

1.2 各类RAM起始地址

RH850-U2A16芯片--RAM and Flash介绍

2LRAMCRAM的起始地址

 

1.3 LRAMCRAM的区别

RH850-U2A16芯片有4个核,每个核有一个LRAM,所有的核共享CRAMLRAM的读写速度要快于CRAM

 

1.4 RAM初始化问题

不管LRAM还是CRAM,在使用前都需要进行初始化,如果使用没有初始化的RAM空间,读数据时可能产生ECC校验错误。

 

为什么说可能产生ECC校验错误?因为ECC校验类似CRC校验,每四个字节产生ECC校验数据,ECC校验数据在写RAM数据时写入,ECC校验在读RAM数据时发生。所以,如果我们在初始化阶段没有对RAM进行初始化,但是我们在使用未初始化的RAM空间时是按4字节数据操作写入的话,在读数据时也是4字节数据读出来,就不会产生ECC校验错误。

 

RAM初始化一般在系统启动阶段(跳到main函数之前)通过汇编代码完成。

RH850-U2A16芯片--RAM and Flash介绍

1RAM初始化

 

软件复位(非冷启动,Power On Reset)系统重启后,没有初始化的RAM中数据还保存上一次的值。

 

1.5 RAM使用经验

车载项目中ECU内部跑的代码是不带Flash擦写驱动的(升级时外部导入),如果ECU系统本身还没有外挂EEPROM的话(无Flash驱动也就是意味着不能写片内Flash,无外挂EEPROM,也就是意味着整个系统无可用的ROM),我们可以利用1.4RAM不初始化复位后记忆数据的特性存储升级标志。

 

ECU内存布局设计(Memory Layout)的时候,在给函数调用栈(Stack)的头尾预留合适的冗余RAM,这样在发生栈溢出的时候还能一定程度上防止改成其他重要的RAM数据。同时在设计栈监控(stack monitor)程序的时候也能派上用场。

 

RH850-U2A16芯片--RAM and Flash介绍

2:栈冗余RAM

2.RH850-U2A16芯片Flash

2.1 Flash类型及大小

RH850-U2A16芯片--RAM and Flash介绍

3RH850-U2A芯片Flash资源表

 

CFlash(Code Flash): 16M

DFlash(Data Flash): 576KB的Data Flash == 512KB User Area + 64KM专门用于ICUMHA(Intelligent Cryptographic Unit)

 

2.2 各类Flash的起始地址

RH850-U2A16芯片--RAM and Flash介绍


RH850-U2A16芯片--RAM and Flash介绍

4CFlashDFlash的起始地址

 

2.3 Code FlashData Flash的区别

顾名思义,CFlash一般用于存储代码,DFlash一般用于存储数据。CPU指令可以从CFlash,LRAM,CRAM中取(运行程序),但是不能从DFlash中取。

 

DFlash起到片内EEPROM的作用,一般用来存储一些下电需要保存的Flag。

2.4 Flash的读写

2.4.1 Code FlashData Flash的最小编程单元

 

RH850-U2A16芯片--RAM and Flash介绍

3Flash的读写单元

 

Code Flash最小的编程单元是512字节,Code Flash一般用来存储代码,Code Flash可以运行代码(其实就是从Code Flash中取指令)。

Data Flash最小的编程单元是4字节,Data Flash一般用来存储非易失数据,Data Flash不可以运行代码。

 

2.4.2 Flash的擦写驱动

Flash的擦写驱动不允许出现在量产的产品软件当中,升级时通过UDS升级协议存储到ECU RAM当中,完成升级后RAM被重新初始化,Flash擦写驱动被清除,防止产品软件被异常擦除。

 

RH850-U2A16的Flash驱动需要通过读写Flash控制及状态寄存器,发送FACI(Flash Application Command Interface)命令来实现。

 

Note: RH850-U2A16的Flash驱动的具体编写请关注本公众号的后续文章!

RH850-U2A16芯片--RAM and Flash介绍

4:FACI编程命令

 

RH850-U2A16芯片--RAM and Flash介绍

4:FACI块擦除流程图

3.总结

项目开发初期,就会对项目使用Memroy进行内存划分(Memroy Layout),包括Bootloader存储区,APP代码存储区,标定数据区,栈区等。这些逻辑逻辑区的物理载体就是芯片的RAM和Flash,所以熟悉一款芯片的RAM和Flash对于底层开发的工程师来说也非常的重要。

推荐阅读

Autosar架构下的模块详细设计及代码实现–基于配置的编程方法

AUTOSAR 通信服务-CanSM概念详解

AUTOSAR BswM(3)代码分析

AUTOSAR 通信服务-ComM配置及代码分析

AUTOSAR 通信服务-PDU Router

AUTOSAR CAN通信协议栈分析(2)-CanIf

Can通信协议栈分析(1)-Can Driver

Lin通信协议栈分析(2)-LIN Driver

C语言编程技巧(1)-表驱动法

CANoe工具使用(1)-实现CAN通道的收、发、录、回放报文

S32K平台学习(1)-S32K144启动流程分析

AUTOSAR 通信服务-Dcm实例应用

Bug分析-Bootloader升级A分区失败跳到B分区后通信异常

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

End



欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号

原文始发于微信公众号(汽车电子嵌入式):RH850-U2A16芯片–RAM and Flash介绍

版权声明:admin 发表于 2022年2月17日 下午2:24。
转载请注明:RH850-U2A16芯片–RAM and Flash介绍 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...