Концептуальный вопрос по написанию прототипа в среде "похожей на embedd Ось" (Ch и не только). Нужно:
Написать прототип будущего embedded приложения, под которое пока нет железяки. Железякой будет STR91xxx. Взаимодействие с железом только через дрова, на этапа отладки дрова очень хорошо эмулируются через файловый IO.
Мои идеи:
*** Ch
Ch является очень хорошим вариантом
http://www.caxapa. …wwwboard.html?id=57905
но!
* надо многопоточность (хотя бы базовые примитивы)
* mutex, семафоры
* ну и очереди, потоки и пр. до кучи хотелось бы
Вопрос:
А пробовал ли кто заюзать в качестве таких сервисов Win32API, вызываяя его из Ch? Насколько верна мысль о том, что в Win32API можно найти сервисы, очень похожие на сервисы embedded осей, и с некоторой степенью достоверности написать такой протоип?
*** KEIL RTL-ARM
В качестве "прототипной оси" берем KEIL RTL-ARM
http://www.keil.com/arm/rtlarm/
Пишем код, и пускаем его на симуляторе KEIL.
*** Сравнение подходов
С одной стороны, KEIL ближе к реальному продукту, но файловый IO в режиме симуляции там несколько геморойнее будет, чем в Ch.
Проект чисто C, asm вставки только в дровах - так что несмотря на столь гигантское различие в платформах, при грамотной работе с точки зрения проекта разницы нет.
С другой стороны, в Ch достаточно легко можно организовать взаимодействие с MATLAB (например, через сокеты или именнованные каналы), а вот "достучастся" до MATLAB в KEIL симулятое можно только через file IO - что не всегда удобно. В данном проекте мне "интерактивный" MATLAB вроде не сильно нужен - но хочется наработать универсальный опыт на будущее.
Еще один + вариантва с Ch - Ethernet. В KEIL симулятор Ethernet отсутствует как класс (пока?) - разве что писать свою DLL для симулятора. А в варианте Ch я могу пользоваться стандартными сокетами (ну или написать обертки, чтобы сетевое API RTL-ARM конвертнуть в WinSoc - мне представляется это умеренно сложной задачей).
*** Главный вопрос
Что все-таки перспективнее? Прикрутить к Ch "эмулятор embedded оси", и пользоваться всеми сервисами виндов, или пользоваться "правильным" софтовым эмулятором, на котором будет идти мой код сразу под целевой ОСью, но с сильными ограничениями по общению с "внешним миром" за пределами симулятора (писать кучку DLL для расширения KEIL симулятора как-то неохота - охота своим приложением заниматься, а не улучшением KEIL)...