1

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

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

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

4

2 回答 2

3

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

听说“ThreadX for Win32”的规范。

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

于 2013-07-30T10:56:17.580 回答
2

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

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

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

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

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

说了这么多,如果你的 threadx 应用程序是模块化的,你可能会获得更多的里程。然后你可以自己测试每个模块,你不需要弄乱线程等。作为第一个近似值,这可能会给你你需要的东西,而无需花费大量的时间来移植整个东西以在 posix 下运行。

我过去成功地做到了这一点,并为一个模块开发了一整套单元测试,使我能够在到达目标之前开发和测试它(在我的 Mac 上)。通过这种方式,开发速度更快、更可靠。

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

祝你好运。

于 2014-01-26T19:35:26.193 回答