我想用给定的地址和数据长度读取 RAM 中的值。我已经阅读了几个 RTE API,我认为没有 API 可以满足我的需求。我希望有类似 APIRte_Ram_read(address,length)
或其他东西。我找到了用于访问PerInstanceMemory
或的 API InterRunnableVariable
,但它们并没有像我想要的那样工作。
我的问题,有没有像我想要的那样的 API?还是我必须自己创建?或者对我有什么建议吗?
我想用给定的地址和数据长度读取 RAM 中的值。我已经阅读了几个 RTE API,我认为没有 API 可以满足我的需求。我希望有类似 APIRte_Ram_read(address,length)
或其他东西。我找到了用于访问PerInstanceMemory
或的 API InterRunnableVariable
,但它们并没有像我想要的那样工作。
我的问题,有没有像我想要的那样的 API?还是我必须自己创建?或者对我有什么建议吗?
问题是你为什么要这样做?
软件组件的想法是它独立于硬件并且是自包含的。要与其他组件通信,您应该使用端口。要与可运行文件进行通信,您应该使用InterRunnableVariable
或PerInstanceMemory
。
从 RAM 读取内容的用例是什么?数据从何而来?
这取决于哪个SWC将数据放入 RAM。此SWC负责定义接口。
如果您定义一个指向所需地址的指针并读取该值,我相信它是根据AUTOSAR的。
例如,如果值为 32 位:
unsigned int * pAddr = (unsigned int *)0xYYYYZZZZ;
int value = *pAddr;
0xYYYYZZZZ
是您要读取的RAM中的地址。通常,它应该由(取决于处理器)byte
对齐。4
您还应该注意字节序(大字节序或小字节序),因为字节可能是相反的顺序。