目录
前言
AUTOSAR架构图下的Fls模块对上(Fee)模块提供统一的标准接口,但是具体的实现因不同的芯片而不一样,Infineon公司的Fls模块通过操作TC3xx芯片的DMU模块实现Fls的功能。在具体介绍Fls模块的功能之前,有必要先介绍下TC3xx芯片的DMU模块。本文就来详细介绍下TC37x芯片的DMU功能,希望能搞清楚以下问题:
问题1:站在软件实现的角度来看,如何通过DMU实现读,写,擦除DFlash?
问题2:站在软件实现的角度来看,如何通过DMU监控读,写,擦除DFlash等任务完成的?
问题3:站在软件实现的角度来看,如何通过DMU监控读,写,擦除DFlash等任务出现Error的?
问题4:站在软件实现的角度来看,在监控到读,写,擦除DFlash等任务出现Error后如何恢复重来?
Note: 作者对芯片的各种模块的硬件接口或者功能实现也不是很理解(非电子信息专业出身,属于半路出家的半吊子……),但是站在软件开发者的角度来看,个人理解,操作芯片模块基本就是操作芯片模块的控制寄存器来达到想要的功能,轮询芯片的状态寄存器判断控制命令是否完成,监控Error寄存器看是否发生错误(发送错误后一般通知上层后尝试重置芯片模块功能)。对于软件开发者,搞清楚上述四个问题其实就是搞清楚在上述问题的上下文中如何控制和监控寄存器。
缩略词
简写 |
全称 |
DMU |
Data Memory Unit |
DPI |
Direct Processor Interface (to Local Flash Bank) |
FSI |
Flash Standard Interface |
SRI |
Shared Resource Interconnect |
SIF |
Slave Interface |
正文
1.DMU硬件架构
CPU通过SRI总线能够访问/控制DMU,DMU通过FSI接口能够控制DFLASH。CPU访问/控制DMU可以通过软件(我们写代码)实现,DMU通过FSI访问/控制DFLASH是硬件实现(软件不不参与,软件发错命令序列后只能轮询DMU的状态寄存器来获取DMU访问/操作DFLASH的结果)。