- 博客(58)
- 资源 (6)
- 收藏
- 关注
原创 AutoSAR配置与实践(实践篇)13.5 NVM 开销、资源评估与Instance/Dataset静态寻址
Memory Abstraction Interface为底层EEPROM/FEE提供32位地址空间其中Block Number总长度为16 bit ,即BASE_NUMBER_BITS + DATASET_SELECTION_BITS = 16有10bits留给 Block Number,此时DataSet数据类型最大支持的数量为2^6 = 0x40 (64个 )
2023-07-22 22:49:48
588
6
原创 AutoSAR配置与实践(深入篇)7.2 FEE 配置项详解
可以选择Fee的主函数在哪里调度:FixedCycleTime(在周期task调度)或者BackgroundTask(在后台task调度)代表实例化 FEE Block数量,通常按需求配置写入次数时,当次数大于某个sector实际承载次数,Instance会自动配置 .Tips: 任务的执行都是自上而下的周期调用派发,因此没有必要比Fee的底层(FLS)更快地触发Fee。是否启动轮询模式(针对下层Fls执行状态)。定义包含CallBack函数的NvM模块头文件,可选择空(配置了轮询无需callback)
2023-07-21 21:37:28
2231
2
原创 AutoSAR配置与实践(实践篇)13.4 NVM主函数调度优化(优化专项二)
基于此前章节《AUTOSAR NVM主要接口、模块交互和数据流向》介绍,我们梳理了NVM主要接口和模块交互,本章节将梳理调用关系和各模块调度方式,基于此总结一个读写时间优化项的实施方案。
2023-07-15 21:59:58
511
5
原创 AutoSAR配置与实践(实践篇)13.3 NVM RAM CRC机制及读写时间优化(优化专项一)
a. 如果有CRC功能,每次写Nv的时候都要计算CRC并写入Nv(若CRC不同),若配置了“计算RAM CRC”,则同时把最新的CRC 更新到RAM中,以便后续使用(如在上电时判断CRC有效性)b. 启动时候计算RAM BLOCK数据的CRC,计算结果和RAM BLOCK本身存储的CRC比较,如果CRC相同,则不再从FLASH中读取。从以上的NvM_ReadAll执行步骤可以判断如下场景,数据一定会从NV Block加载数据,从而会使读取数据耗费较长时间。基于第二项的优化方向,可以从如下几个角度去实施。
2023-07-15 20:40:31
1197
5
原创 AutoSAR配置与实践(深入篇)7.3 NVM主要接口、模块交互和数据流向(详细)
通常AUTOSAR闪存驱动程序(FLS)是一个软件模块,在用于AUTOSAR存储器堆栈内的使用中是可配置的,可以选择使用带有vMem模块的MICROSAR内存堆栈。内存堆栈可供内存的一个用户使用,但是有时系统中有访问Flash的其他用户,例如软件下载用户同时使用存储器堆栈;许多设备不允许并行闪存访问,因此AUTOSAR存储器堆栈必须与其他用户同步,因此产生了扩展内存堆栈。vMem提供了基本Read/Write/Erase/State check等功能,功能类似传统的FLS驱动程序。
2023-07-11 21:20:35
2205
2
原创 AutoSAR配置与实践(实践篇)13.2 NVM配置Block类型/写入次数对实际写入过程影响(含数据实验-详解)
> 配置类型Redundant Block,需双备份,为该Block分配两个Sector(相邻),往一个Sector固定地址写入时会自动写入相邻的另外一个Sector。-> 配置类型Redundant Block,需双备份,为该Block分配两个Sector(相邻),往一个Sector固定地址写入时会自动写入相邻的另外一个Sector。-> 配置擦写次数10万次(和实际硬件性能10万次寿命吻合),所以决定instance为1,往固定地址写入即可,无需额外的均衡策略和偏移。
2023-07-08 02:11:01
1197
4
原创 AutoSAR配置与实践(深入篇)7.5 NVM架构、存储形式及隐式显式同步
模块简介:全称NVRAM Manager ,存储服务管理模块。主要提供抽象数据存储,在上电读取下电存储数据,支持Immediately存储数据,将 NV data在ROM和RAM之间建立关联。全称Memory Abstraction Interface,存储抽象接口模块。实现存储数据Block在内部Flash或者外部EEP的分离操作。全称Flash EEPROM EMULATION,FLASH模拟模块。FEE实现对Flash的数据Block的抽象和动态数据的Layout。
2023-06-28 23:03:05
3876
6
原创 AutoSAR配置与实践(深入篇)7.1 NVM 配置项详解
例如一个车系统平台有很多种配置,但有想集成在同一个软件中,那么就有很多个对应的配置数据,在运行的时候根据配置参数选择哪份数据使用。Develop端配置了RAM Block,则自动生成Get Mirror CallBack接口,用户写操作时候,把用户的数据先同步到Mirror RAM中,由NVM最终把Mirror RAM写入到NVbuffer中.依次查看对应Block是否配置了Resistant to Changed Software,若配置了,则依次加载,若没有配置,则忽略该Block不加载。
2023-06-25 22:41:49
2723
原创 AutoSAR配置与实践(深入篇)7.4 NVM读写操作过程剖析
应用场景:显示访问 需求端AppSwcNVM显示访问NVM的场景(开辟RAM映射)主要作用:为应用端AppSwc提供读、写业务接口,可以理解为访问Nvm的媒介。具体功能: BSWTask接收到Event事件时,触发NvSwc中的runnable调用,在runnable中轮询各个NVMBlock是否有写入需求(DirtyFlag),从而决定是否执行对应的NvM_WriteBlock操作。
2023-06-24 13:33:26
1788
原创 AutoSAR配置与实践(实践篇)13.1 如何添加一个NVM BLOCK
解决办法:如下红框选项都不要自定义,否则无法自动生成对应RAM/ROM映射接口函数。传送门–AUTOSAR配置与实践—总目录传送门–AUTOSAR配置与实践—总目录。
2023-06-22 12:07:26
2064
17
原创 手把手教你学AutoSAR 前言
计划分三个板块讲解,对应以上Autosar学习的三个阶段:一、基础篇(目标:懂概念)。主要讲概念原理,如APPL、SWC、Port、RTE、BSW,会较多通过图形、表格、举例等方式进行归纳总结,以便清晰展现AUTOSAR的概念和原理。二、深入篇(目标:懂原理,会配置)。主要针对基础篇中的概念进行展开,深入讲解实现原理以及相关的配置项功能三、实现篇(目标:会综合应用)。实践操作,主要讲如何综合利用配置项实现特定的功能。
2023-06-18 19:20:31
594
原创 AutoSAR配置与实践(实践篇)11.2 不同Variant DBC的兼容方案实现
注意相同信号如果分布在多个variant中,受第三方工具制约,在制作DBC那么他们的的Data Type、Compute Method、Value Table、Unit等信号属性务必定义完全相同,否则CFG工程check和生成阶段会报错.在启动时候对应函数初始化中(参考附图)Com_init,PduR_init等函数中添加新的参数Veh_type3对应handle的初始化即可。错误原因 可以看出DBC导入后部分报文PDUR长度属性策略默认了UNUSED,(TP长度策略,理解应该是诊断报文属性)
2023-06-15 22:23:16
518
原创 AutoSAR配置与实践(实践篇)11.3 关于事件报文下发的冲突问题
2.事件报文DBC的定义要特别注意,尽量避免二义型定义,即非此即彼的0/1(off/on)定义;这样即便多个SWC下发同帧不同信号时,因默认值被带到CAN上也不会生效,可以有效避免下发冲突。1.事件报文在架构设计时候,报文内同一个信号要避免被多个SWC执行逻辑调用,避免引起混乱。2.SWC1和SWC2分别下发信号A和信号B,但是SWC1下发A早于SWC2下发B,1.DBC定义了事件报文,报文内同一个信号被多个SWC应用模块使用,导致信号的下发后,被另外一个SWC篡改,引起非预期结果。
2023-06-14 00:02:47
1048
1
原创 AutoSAR配置与实践(实践篇)11.4 COM Notification机制及协议栈实现
当COM层接收到IPDU后,对上层RTE的通知通常有两种方式–》Update bit配置和检测,用于信号(信号组)级的通知和超时管理(无需配置)当发送端设置了Update bit,COM层会自动填充Update bit (UB)位一次(注意是一次,即每调用一次发送,总线上只会呈现一次带有Update bit位更新的IPDU!后续都是update位没更新的IPDU)接收端便会检测Update bit,若检测到则继续后续的信号处理(字节序转换、无效检查、过滤等)。否则丢弃信号停止后续的信号处理。
2023-06-12 21:49:17
1131
原创 AutoSAR配置与实践(实践篇)11.5 IPDU如何实现分组控制
注意:如果一个I-PDU没有绑定到任何I-PDU group,那么COM模块会在Com_Init时启动该I-PDU,由于COM永远不会停止一个隐含启动的I-PDU,该I-PDU也没有绑定到任何一个I-PDU group,因此该I-PDU将永远不能被停止。3.1 Dcm_NormNm_Notification_CANFD_V3_0_Disable 代表28服务,变更前功能为禁止所有PDUGroup,(引用实现模块的头文件)至此,整个配置工作全部完成,即保证了周期轮询检测配置字匹配新报文(报文组)是否发送,
2023-06-10 12:11:27
1875
原创 AutoSAR配置与实践(深入篇)6.2 COM Stack各层信号过滤总结
CanIfRxPduCanIdRange:可以配置接收某个CANID范围段的报文(如CAN NM报文的指定只接接收某个范围端内的报文),此时CanIfRxPduCanId选项会不可选,若该选项使能,CanIfRxPduCanIdRangeLowerCanId ,CanIfRxPduCanIdRangeUpperCanId 则使能。备注:因CANID & Mask = Code,满足此项规则的报文均可上报,所以设定规则的范围>实际DBC中固定报文,即实际接收报文是过滤规则的子集;
2023-06-06 14:48:29
1015
原创 AutoSAR配置与实践(深入篇)6.4 COM 主要功能描述
》对于信号/信号组来说,如果ComDataInvalidAction配置为NOTIFY,ComInvalidNotification配置了相应的Callback接口,那么当接收到ComSignalDataInvalidValue值时会调用Callback接口通知上层,这种情况下信号/信号组的后续处理(如滤波处理、正常的信号通知)不会进行。,要求信号定期更新(即便值是相同的值也要要求发送端应用重新设置),主要是避免发送端出现异常,如周期报文发送端应用异常,从而不重设信号值,而此时数据可能判断无意义的数据。
2023-06-05 23:24:50
1814
原创 AutoSAR配置与实践(深入篇)6.3 COM 整体架构和模块交互
常见接口有Com_SendSignal/Com_SendSignalGroup/Com_ReceiveSignal/Com_SetIpduGroup等。---->需在Com_InitMemory()后执行(主要初始化启动代码中不能初始化的变量,使Com处于初始化状态以便执行Com_Init)–BSW层:COM、MEM(内存管理)、DIAG、SYS、OS等,主要为上层提供基础应用(通过RTE): Com_IpduGroupControl ---->BSWM模块控制PDUGroup的使能/禁止。
2023-06-04 16:53:10
3307
1
Infineon-TC27x_D-step-UM-v02_02.zip
2024-04-10
TechnicalReference-CanSM(中文版).pdf
2023-07-25
AUTOSAR规范技术文档 - NVM中文版
2023-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅