3

我正在开发软件来控制嵌入式 ARM 系统上的 mmap 设备,但遇到了一些可用的调试和开发工具还不够的情况。即 valgrind 和高端螺纹分析仪等仪表工具不可用。

我想做的是在 x86 机器上编译我的代码,使用相同大小映射一个“虚拟”内存段,然后通过网络将这些读/写代理到嵌入式机器,然后可以相应地响应。

我意识到这可能需要一个客户端/服务器机制,并且速度会非常慢,但是拥有这个选项的好处将使 mmap 接口本身之外的机制(异步事件处理、线程管理)可用于使用 x86 开发工具的工具将是很有用。

我在一些用于模拟的 ASIC 开发中听说过这种技术,但从未使用过任何提供这种功能的东西。这里的关键是我想在两个平台上使用相同的代码,而不必重写一堆东西,或者必须编写一个包含任何硬件处理逻辑的内核模块。我想通过 mmap 将所有设备控制逻辑保留在用户区

4

2 回答 2

1

如果你想通了,基本上这归结为实现一个远程文件系统。

  • mmap如果您的嵌入式设备可以实现 NFS 客户端的简单版本以及桌面计算机上的文件,那么“最简单”可能会
  • 反过来也应该是可能的,即在您的嵌入式系统上运行 nfs 服务器模块,并将诸如/dev/shmnfs 挂载点之类的东西导出到您的桌面。

对于这两种方法(任何其他使用mmap),您必须非常小心数据同步。但只要你有一个典型的调试设置,基本上只有一个作者和一个阅读器,这可能是可行的。如果这变得更复杂,可以使用远程文件锁定作为 nfs 扩展名。

于 2010-09-26T12:27:02.627 回答
0

我过去一直想要类似的东西,但从来没有真正开始实施它。但是,您可能想看一下 memcached 之类的东西,我知道它通常用于基于 web/db 的东西,但可能会为此目的滥用它,尤其是因为它是用于调试的。

于 2011-06-09T02:17:33.443 回答