Как смоделировать приложение ThreadX в ОС Windows
У меня есть приложение, использующее ThreadX 5.1 в качестве ядра. Изображение отображается на оборудовании, на котором работает процессор ARM 9.
Я пытаюсь построить симулятор для приложения, которое может быть запущено в Windows (скажем, XP, 32-разрядная версия).
Есть ли способ заставить его работать в Windows, не изменяя весь исходный код, чтобы начать вызывать системные вызовы win32?
2 ответа
Да, вы можете, если вы готовы положить в работу.
Сначала обратите внимание, что каждый системный вызов threadx имеет эквивалентный вызов posix, за исключением событий. Таким образом, ваша программа threadx может работать как отдельный процесс, используя потоки posix, мьютексы и т. Д.
События могут быть обработаны внешней библиотекой (есть несколько там).
Если вам трудно это сделать в Windows, то самое простое, что вам нужно сделать, - это установить linux vm. Я использую Ubuntu VM работает на виртуальной коробке. Это очень легко настроить. Все, что вам нужно, это cdt-версия Eclipse.
Затем вам нужно остановить все ваши системные вызовы низкого уровня. Это также проще, чем вы думаете. Например, если у вас есть драйвер SPI для чтения и записи на флэш-память, вы можете заменить свою флэш-память большим массивом, с которым довольно легко работать на этом уровне.
Сказав все это, вы можете получить больше пробега, если ваше приложение Threadx является модульным. Затем вы можете протестировать каждый модуль по отдельности, и вам не нужно связываться с потоками и т. Д. В первом приближении это может дать вам то, что вам нужно, без учета расстояния, необходимого для портирования всего этого для работы под posix.
Я успешно делал это в прошлом и разработал полный набор модульных тестов для модуля, который позволил мне разработать и протестировать его (на моем Mac) перед тем, как перейти к цели. Таким образом, разработка намного быстрее и надежнее.
Другой вариант, который вы можете рассмотреть, - это найти проект qemu, который поддерживает ваш микропроцессор. С некоторой работой вы можете разработать полный симулятор для вашей платформы, а затем запустить настоящую прошивку под эмулятором.
Удачи.
Вы можете создать симулятор для приложения, которое может быть запущено в Windows с помощью ThreadX для Win32.
Спецификация "ThreadX для Win32" слышна.