Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there any lightweight analogues to CORBA/RPC for embedded programs? [closed]

I am writing embedded applications for different hardware (avr, arm7, tms55xx…) and different rtoses (freeRTOS, rtx, dsp/bios). And every second of them needs to communicate with PC or another digital device. Sometimes interactions logic is very advanced. So I'm interesting in common methodology (like state-machine programming style), protocol specification or library, that could simplify developing such things.

like image 802
Mtr Avatar asked Apr 16 '10 22:04

Mtr


4 Answers

I've been very happy with google's protocol buffers on embedded systems for both data passing and RPC mechanisms. They are quite a bit lighter than XML based systems since the data is transmitted is binary encoded and the decoding the data sent requires minimal processing which is a big plus on cpu usage on the embedded side of the link.

There are readily available libraries for various languages but most importantly C for embedded apps.

like image 185
Mark Avatar answered Nov 04 '22 11:11

Mark


OpenJAUS.

It's reflective, composable and standardized (ish) Works cross-language-cross-platform.

Provides a lot more framework than Protocol Buffers ( which is a neat messaging stack) It's focussed on robotics, but works for control systems.

In theory a JAUS user interface can operate any JAUS-compliant device, and JAUS systems are intended to compose into a syste-of-systems.

If those things don't make sense then please ignore this suggestion.

like image 2
Tim Williscroft Avatar answered Nov 04 '22 11:11

Tim Williscroft


Here is an article on Embedded.com on CORBA on embedded systems and 'lightweight' or minimal implementations. The commercial solutions mentioned are for QNX, VxWorks and LynxOS. And another article on RPC on Embedded.com (this one authored by a TI DSP trainer and specifically referencing DSP, so may be relevant to DSP/BIOS).

I strongly recommend that you use Embedded.com's article search, there are probably many similar articles that you will find useful.

VxWorks supports RPC, as does QNX Neutrino.

"Roll your own" has always been my solution where standards compliance and inter-system compatibility is not an issue (i.e. my systems talking to my systems). Doing only exactly what you need is the best way to achieve 'lightweight' perhaps at the expense of flexibility and maintainability.

like image 1
Clifford Avatar answered Nov 04 '22 10:11

Clifford


Recently we developted: https://github.com/EmbeddedRPC/erpc Give chance to it ;)

like image 1
Hadatko Avatar answered Nov 04 '22 10:11

Hadatko