我正在为不同的硬件(avr,arm7,tms55xx ......)和不同的rtoses(freeRTOS,rtx,dsp / bios)编写嵌入式应用程序。而且他们每一秒都需要与PC或其他数字设备进行通信。有时,交互逻辑非常先进。因此,我对常用的方法(如状态机编程风格),协议规范或库感兴趣,可以简化这类事情的开发。
答案 0 :(得分:6)
对于数据传递和RPC机制,我对嵌入式系统上的谷歌protocol buffers非常满意。它们比基于XML的系统轻得多,因为传输的数据是二进制编码的,并且对发送的数据进行解码需要最少的处理,这对链路嵌入端的CPU使用率来说是一个很大的优势。
有各种语言的现成库,但最重要的是嵌入式应用程序的C语言。
答案 1 :(得分:2)
OpenJAUS。
它具有反思性,可组合性和标准化(ish) 跨语言跨平台工作。
提供比Protocol Buffers(这是一个整洁的消息传递堆栈)更多的框架 它专注于机器人技术,但适用于控制系统。
理论上,JAUS用户界面可以操作任何符合JAUS标准的设备,而JAUS系统则可以组成系统系统。
如果这些事情没有意义,那么请忽略这个建议。
答案 2 :(得分:1)
Here是关于嵌入式系统和“轻量级”或最小实现的CORBA上Embedded.com的文章。提到的商业解决方案适用于QNX,VxWorks和LynxOS。并且another article在RPC on Embedded.com上(这是由TI DSP培训师编写的,专门参考DSP,因此可能与DSP / BIOS相关)。
我强烈建议您使用Embedded.com的文章搜索,可能会有许多类似的文章,您会发现它们很有用。
VxWorks supports RPC,QNX Neutrino也一样。
答案 3 :(得分:0)
协议非常适合状态机,所以也许你可以使用非常轻量级的开源QP状态机框架(state-machine.com)。各种编译器的准备使用QP端口和示例可用于AVR,MSP430,ARM7 / ARM9,TMS320C28x,PSoC,HC08,M16C / R8C,H8,8051,PIC18,PIC24 / dsPIC,ARM Cortex-M3 / M0等等其他
工作答案 4 :(得分:0)
最近我们开发了:https://github.com/EmbeddedRPC/erpc 给它机会;)