AUTOSAR
文章平均质量分 75
老孟的孟不是很老的孟
汽车行业基础软件工程师
展开
-
Davinci NvM Block配置
且Fee Block的数量由NvM Block的类型决定,当NvM Block是Native时,会生成一个Fee Block;比如我们现在想读上面这个Block的第3组数据,先调用接口函数设置Dataset Index = 2(Index从0开始),然后调用NvM_ReadBlock接口,这时协议栈会用上面的方法计算Fee Block Number = 0x04 << 4 + 2 = 0x42,所以去读Block Number = 0x42的Fee Block的数据。原创 2023-10-17 08:26:40 · 1505 阅读 · 1 评论 -
Davinci 集成NvM协议栈的步骤
NvM中添加数据块,Fee中添加相应的数据块。Mcal如果使用EB生成,需要在EB中配置Fee,或Davinci中配置好之后把配置导入到EB中。在代码中添加NvM_ReadAll、NvM_WriteAll、NvM_WriteBlock等操作。在EcuMDriverInitItemsOne中添加Fls和Fee的Init函数。代码中添加数据块的RAM Block和ROM Block。NvM和Fee模块配置中不要启用Polling。Mcal添加Fls、Fee和Crc模块。BSW添加NvM和MemIf模块。原创 2023-10-13 09:06:45 · 859 阅读 · 0 评论 -
AUTOSAR Davinci Idle task 与 Init Task的配置
Init Task遇到的问题是,软件自动生成的Init Task是AutoStart的,StartOS之后自动运行,在Init Task中调用EcuM_StartupTwo()。我本来准备把自己想要放在Background运行的runnable直接放在自动生成的这个Idle Task里的,但是mapping上之后,生成代码时候提示Background类型的runnable必须mapping到优先级最低的task上,当前mapping的task不是优先级最低的task。原创 2023-09-05 11:16:53 · 1188 阅读 · 0 评论 -
基于ETAS ISOLAR创建多核Bsw工程的流程
EcuC中创建多个EcucPatition,然后生成Bsw的时候会给每个核生成一个EcuM模块。EcucPartition_0的BswModuleExcution设置为True,其余设置为False。OS 中创建多个OsApplication,OsApplication中引用EcucPartition。生成Bsw.System中创建多个EcuPatition,然后把Component mapping到Partition上。Ecu抽取创建OSTask并关联OsApplicationRunable原创 2023-09-04 09:16:40 · 702 阅读 · 0 评论 -
AUTOSAR NvM Block的三种类型
举个例子:座椅位置是RAM中的一个数据,车上的座椅位置记忆功能支持记忆四个位置的数据,这四个位置数据存放在NvM中,可以由用户修改,还有座椅最前和最后两个位置的数据是固定的,存放于ROM中,不支持修改。这两个配置参数,NvMNvBlockNum代表NvM中存储的数据个数,可读可写,NvMRomBlockNum代表ROM中存储的数据个数,只可读,不可写,同时NvMRomBlockDataAddress 配置项中配置的ROMBlock数组的大小也要等于NvMRomBlockNum。原创 2023-08-17 18:00:33 · 739 阅读 · 1 评论 -
AUTOSAR NvM协议栈集成方法
上文我们说过FlsTotalSize这个配置项代表用于模拟EEPROM的DFlash的大小,除此之外Fls模块中还需要配置一个FlsSector,TC234这几个配置项都是固定的,不允许改动,实测这里的FlsSectorSize没有作用,生成代码的时候是把FlsTotalSize/2作为每个Sector的大小。需要注意的是Fee中的FeeSector大小需要根据FlsSector的大小进行配置,即配置为FlsTotalSize/2,本次我配置的FlsTotalSize为0x18000。原创 2023-08-17 16:27:47 · 739 阅读 · 0 评论 -
AUTOSAR NvM 同步机制
把Nv Block中的数据copy到NvM_DstPtr指向的RAM中,NvM_DstPtr可以是临时RAM,也可以是永久RAM(永久RAM即配置工具中配置的RAM Block)。如果NvM_DstPtr是NULL_PTR,且配置了永久RAM,那么数据会被copy到永久RAM中。原创 2023-05-16 15:14:27 · 2925 阅读 · 3 评论 -
AUTOSAR —— CAN网络管理(CanNm)
本文详细介绍了AUTOSAR CAN网络管理,包括状态转换、策略、时间参数等,读完本文可以对AUTOSAR网络管理有比较全面的认识。原创 2022-01-07 17:00:09 · 46872 阅读 · 29 评论 -
AUTOSAR —— S32K144 的 Fls 和 Fee 模块配置
本文来简要介绍一下如何在EB中配置AUTOSAR Fls和Fee模块。Fls模块是Flash的驱动,执行具体的Flash擦写读取等操作。Fee模块的全称是FlashEEPROMEmulation,即Flash模拟EEPROM,是为了解决Flash擦写寿命比较短的问题,通过算法实现各个Flash块的交替擦写,以延长寿命。1. Fls(1)FlashSector(扇区)Fls模块中最重要的一点就是配置FlsSector,如下图所示,一共配置了8个Sector,每个Sector可以选择对应的Flash物理扇原创 2021-12-23 18:48:43 · 11014 阅读 · 3 评论 -
NXP S32系列MCU官方AUTOSAR OS分析(二)
本文将会介绍S32系列MCU官方提供的AUTOSAR OS中各种对象的实现方法和EB中的配置方法,在开始之前先推荐一篇博客,详细介绍了AUTOSAR OS的各类对象:https://blog.csdn.net/AgingMoon/article/details/78945846(1)OS中的定时器AUTOSAR的定时器都叫做COUNTER,是OS的心脏,分为两种,一种是软件计数器(SWCOUNTER),一种是硬件计数器(HWCOUNTER),关于这两种COUNTER的区别建议参考下面这篇博客,介绍的很原创 2021-12-20 11:41:40 · 6174 阅读 · 2 评论 -
S32K1XX系列单片机 ——用Keil编译官方提供的AUTOSAR OS
1. 概述NXP官方提供了AUTOSAR OS代码,并且可以用EB进行配置,但官方的例程不能直接适用于Keil,本文就来介绍下如何在Keil上编译官方的AUTOSAR OS源码。之前我们已经介绍过如何在Keil上编译S32系列的MCAL,需要的朋友可以翻一下我之前的文章,本文默认在Keil上已经可以编译调试S32的MCAL(只需要Port和Dio这俩基础模块)。2. AUTOSAR OS的安装可以从下面的连接下载NXP提供的AUTOSAR OS,如果要结合MCAL一起用的话,也要同时下载相同AUTO原创 2021-12-14 18:42:37 · 4281 阅读 · 2 评论 -
S32K1XX系列单片机 ——(2)用EB配置MCAL
1. 概述在下面的网址可以下载MCAL、OS和EBhttps://www.nxp.com/design/automotive-software-and-tools/autosar:AUTOSAR-HOMEEB和MCAL的安装我这里就不详细说了,网上有很多教程,本文着重说一下MCAL中Dio和Port模块的配置方法,以及如何在Keil工程中集成MCAL源代码和EB生成的配置代码。2. 新建EB工程新建时需要选择AUTOSAR版本:【注意:如果同时安装了多个版本的AUTOSAR,只有最高版本能被显示原创 2021-12-10 10:31:33 · 17214 阅读 · 13 评论 -
S32K1XX系列单片机 ——MCAL 的CAN模块配置
本文整理一下用EB配置S32K144单片机的CAN MCAL的时候遇到的问题及解决方案。1. Can Counter refCan Counter ref是定义CAN模块引用OS的哪个counter,当工程中没有OS的时候,可以置为空,并勾选:Can define loop as cycle即可解决该问题。2. Can Object ID (MB Handle)在配置CAN HardwareObject的时候,需要先配置HRH(Receive Object),再配置HTH(TransmitObj原创 2021-12-10 17:41:50 · 5946 阅读 · 7 评论 -
AUTOSAR —— DCM模块简介
概述AUTOSAR的DCM模块是诊断通讯模块,只要遵循的协议就是ISO 14229-1,包括UDS会话层和应用层,对底层通讯协议没有要求,可以是CAN、Lin或以太网(DoIP)等。DCM模块里面主要有三个子模块:DSL、DSD和DSP:DSL-Diagnostic Session Layer诊断会话层主要有以下三个作用:处理诊断请求和响应数据流。管理诊断状态(会话状态和安全状态)。管理时间参数。DSD-Diagnostic Service Dispatcher诊断服务调度程序是 DS原创 2021-12-06 17:38:13 · 6889 阅读 · 0 评论 -
英飞凌 AURIX TC3XX系列单片机的SOTA机制详解
1. 什么是SOTASOTA全称是云端软件升级(Software updates Over The Air),就是指在不连接烧写器的情况下,通过CAN、UART或其它通讯方式,实现应用程序的更新。在进行SOTA时,需要把旧的应用程序擦除,把新的应用程序写入。常规的实现方式需要分别开发BootLoader程序和APP程序,MCU上电先运行BootLoader,BootLoader根据情况选择是否跳转到APP和是否进行程序更新。具体来说有以下几种方式:方案一:更新程序时,由APP接收更新数据并暂存于Fl原创 2021-07-21 18:52:18 · 9044 阅读 · 14 评论 -
AUTOSAR MCAL CAN Driver 接口函数
1. 单控制器服务接口函数(1) Can_Initvoid Can_Init(const Can_ConfigType* Config)初始化函数,输入为CAN模块配置结构体指针,在MCU启动时调用,初始化CAN模块的时钟、波特率、引脚、接收发送邮箱等一系列寄存器。完毕后将CAN控制器的状态由CAN_CS_UNINIT转换为CAN_CS_STOPPED。(2)Can_SetBaudrateStd_ReturnType Can_SetBaudrate(uint8 Controller,uint16原创 2021-07-07 14:11:10 · 5509 阅读 · 1 评论 -
AUTOSAR 通信协议栈添加信号或报文的方法
Dcm与之相比没有信号的概念,但在PduR和CanIf之间多了一层CanTp。原创 2021-08-13 10:07:23 · 1092 阅读 · 0 评论