首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AUTOSAR配置- NVM

AUTOSAR配置- NVM
EN

Stack Overflow用户
提问于 2019-04-09 13:17:57
回答 1查看 2K关注 0票数 0

我尝试使用NvM_Write();写入内存,UDS有一个积极的响应。

当我试图读取相同的块时,没有响应,软件会使用NvM_PENDING state进入det。我重置并尝试读取相同的内存块,该块中没有数据(它只是0x00)。

NvM_Write通向Fee_Write,但是Fls_Write从来没有被调用过。这是配置问题吗?

调试后发现Fls_Write从未被调用过。Nvm、Fee和fls每5ms调用一次。当我请求NvM_Write时,请求将放在一个队列中,以便在将来服务。

EN

回答 1

Stack Overflow用户

发布于 2019-04-10 07:20:19

在你的设置中似乎是个问题。我想知道,如果你有一个任务,这叫做NvM_Mainfunction()Fee_Mainfunction()Fls_Mainfunction()。NvM通过队列处理像NvM_ReadBlock()NvM_WriteBlock()这样的请求,这是由任务级的主函数处理的。

对于UDS服务,请求返回一个肯定的响应,这很可能是因为您使用了NvM_WriteBlock()的返回值,如果写入请求被NvM接受并放入NvM队列中,它将是E_OK。如果请求未被接受,则返回E_NOT_OK

实际上,诊断服务实现应该等待NvM_GetErrorStatus(BlockID)返回值从NVM_REQ_PENDING更改为返回NVM_REQ_OK或其他类似NVM_REQ_NOT_OK的内容。

我猜想,您的实现是手工实现的,因为有了适当的配置,Dcm具有需求SWS_Dcm_00541中描述的标准行为,正如我前面所解释的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55593889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档