我有一个关于在 cortex m3 中使用信号量的问题。我找到了一个线程“ARM cortex: mutex using bit banding” ARM cortex: mutex using bit banding。有一个问题的简短描述,最后一个答案对我的问题很有用 - 但我不确定如何在 c/c++ 中实现它。
“我从来没有在 ARM 上使用过位带;相反,我倾向于对所有这些操作使用负载独占/存储条件。使用循环来负载独占旧值,计算新值,然后使用一个条件存储来写回它。循环直到条件存储成功(如果不是第一次,它可能会第二次成功)。”
如果有人可以发布如何使用它的简短代码,我将不胜感激。
谢谢,马丁
如标题中所述-目前,我有两个应用程序。一种是.NET,winforms,另一种是本机C ++。两者都可以一起工作,并且必须进行通信(从C ++到.NET,从.NET到C ++),. NET应用程序从C ++应用程序启动。当前,通信是通过将数据写入文件并发送后消息来通知C ++应用程序已写入数据来完成的。尽管可以,但是我认为这不是最好的方法。因此,我想问您,您推荐什么是最好的方法。我正在考虑编写围绕.NET的CLI包装程序,以将其绑定到C ++中。与将数据写入文件相比,使用此类包装是否有任何缺点?
--------更新--------
我忘了补充说,这两个应用程序始终在同一台机器上运行。该解决方案应在Windows XP,Win7,Win8上运行
- - - -结论 - - -
非常感谢您的回答,它们都非常有帮助。很好地概述了进程间通信技术之间的差异,该网站提供了Microsoft Windows上 Furkan Omay官方支持的进程间通信方法的答案。但是,像该网站上的McAfee 这样的防病毒程序似乎存在问题。在某些情况下,这可能是一个巨大的问题。根据使用C ++ / Cli的知识,我喜欢Drax的回答,谢谢。我也看不到使用包装器的任何缺点。一个很好的教程在这里。