如何在Windows操作系统上模拟ThreadX应用程序

时间:2013-07-24 23:13:27

标签: multithreading simulation virtualization threadx

我有一个使用ThreadX 5.1作为内核的应用程序。 图像闪存到运行ARM 9处理器的硬件上。

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

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

2 个答案:

答案 0 :(得分:2)

您可以为可以在Windows上使用“ThreadX for Win32”运行的应用程序构建模拟器。

听到“ThreadX for Win32”的规范。

http://rtos.com/products/threadx/Win32

答案 1 :(得分:2)

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

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

事件可以由外部库处理(还有一些)。

如果你在Windows中发现这个困难,那么最简单的方法就是设置一个linux vm。我使用在Virtual Box上运行的ubuntu vm。它很容易设置。你需要的就是eclipse的cdt版本。

接下来,您需要存根所有的低级系统调用。 这比你想象的要容易。例如,如果你有一个SPI驱动程序来读取和写入闪存,你可以用一个很大的阵列替换你的闪存,这个级别非常容易使用。

说完这一切后,如果你的threadx应用程序是模块化的,你可能会获得更多的里程数。然后你可以自己测试每个模块,你不需要乱用线程等。 作为第一个近似值,这可以为您提供所需的内容,而无需移动距离以便在posix下运行整个事物。

我过去成功完成了这项工作,并为一个模块开发了一整套单元测试,允许我在进入目标之前开发并测试它(在我的mac上)。通过这种方式开发更快更可靠。

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

祝你好运。