2013-07-24 145 views
1

我有一个使用ThreadX 5.1作为内核的应用程序。 将图像刷新到运行ARM 9处理器的硬件上。如何在Windows操作系统上模拟ThreadX应用程序

我想为可以在Windows上运行的应用程序(比如XP,32位)创建一个模拟器。

有什么办法可以让它在Windows上运行,而无需修改整个源代码来开始调用win32系统调用?

+0

我只想知道你从哪里得到ThreadX的源代码?以及如何建立和形象形象? – RDX

+0

您可以从以下网址获取ThreadX的源文件。 http://rtos.com/products/tracex/ – siprikorea

+0

谢谢..但这可能与TraceX有关...它包含.EXE文件.. – RDX

回答

2

是的,你可以的,如果你愿意投入的工作。

首先观察到每个线程系统调用都有一个等价的posix调用,除了事件。 因此,您的线程程序可以使用posix线程,互斥锁等作为单个进程运行。

事件可以由外部库(在那里有几个)处理。

如果你觉得在Windows中很难,那么最简单的事情就是建立一个linux虚拟机。我使用在Virtual Box上运行的ubuntu vm。这很容易建立。所有你需要的是eclipse的cdt版本。

接下来,您需要清除所有低级系统调用。 这比您想象的还容易。例如,如果您有一个SPI驱动程序来读取和写入闪存,则可以用一个很大的阵列替换闪光灯,这个级别很容易处理。

说了这么多,如果你的threadx应用程序是模块化的,你可能会获得更多的里程数。然后,您可以自行测试每个模块,并且不需要混淆线程等。 作为第一个近似值,这可能会给您所需的内容,而无需走远处的距离以便在posix下运行整个事件。

我已经在过去成功地完成了这项工作,并为一个模块开发了一套完整的单元测试,使得我可以在去目标之前开发和测试它(在我的mac上)。这种方式的开发速度更快,更可靠。

您可能想要考虑的另一个选项是找到支持您的微处理器的qemu项目。通过一些工作,你可以为你的平台开发一个完整的模拟器,然后在模拟器下运行真正的固件。

祝你好运。

相关问题