Skip to content

erpc *-bus compatible idl function generation #201

Open
@kikass13

Description

Hi,

i have implemented the use of erpc via can bus in my stm32 project.
As far as I can tell, the erpc IDL (erpcgen) tooling will generate fixed ID's for differentiating / managing the different rpc function calls. (id 0, 1, 2, 3 ... N).

When utilizing a (1:*)-Bus, the slaves on that bus can all receive the rpc data. Normally, bus arbitration is done via various addressing schemes (can, i2c, ethernet etc).

In some use case, it is not possible/desired to rely on bus arbitration and instead broadcast packages (erpc calls) (canId 0x00, ethernet x.x.x.255). The current implementation of erpc does not tolerate that, because the function calls on the server/client are only separated by whatever ID was generated via the IDL. If a client would send a rpc call with id 0, that function could travel to 3 different servers and they would all execute whatever 0 means for them (probably different functions altogether).

Is it feasible to change the ID utilized by the erpcgen IDL tool to be a hash (32+bits) to differentiate between message function types instead? The erpcgen tool could also work recursively through a project (containing .erpc files for all servers and clients in the system) to make sure, that each and every individual erpc function has a different id (hash) so that no hickups occur.

This would allow (or is the first step to a) multi server/client approach in transport agnostic systems.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions