Я в новом проекте, который должен использовать микроконтроллер. Самый простой способ запрограммировать это - использовать параллельный порт. Но есть несколько вещей, с которыми я надеюсь, вы сможете мне помочь. Да, и предпочтительным языком является C и платформа Windows.
Итак, я немного изучил LPT-порты и Windows, и из того, что я узнал, наиболее важно то, что: поскольку в системах на базе Windows NT вы не можете использовать инструкции для прямого манипулирования портами. Это должно быть потому, что теперь программы запускаются в другом режиме привилегий, который не поддерживает инструкции, используемые функцией outport()
.
Но на данный момент я не понимаю нескольких вещей. Во-первых, я думал, что Windows фактически использовала уровни привилегий с первой версии защищенного режима, но это неверное предположение.
Но что еще более важно, я подумал, что Windows включает функции практически для любой аппаратной связи. Я имею в виду, что все, что вы делаете в Windows в эти дни, вы просто вызываете функции Windows, которые дополнительно вызывают службы ядра. Я предположил, что outport()
не использует функцию Windows, а просто устанавливает связь, что сейчас запрещено. Но я буквально шокирован тем, что в современных системах Windows нет системной функции для управления параллельными портами. По крайней мере, это то, что я прочитал.
Но даже если бы я мог получить контроль над параллельным портом, наступает моя вторая проблема.
Для программирования контроллера мне нужно следовать специальному протоколу, особенно времени. Но поскольку в Windows многозадачность, я беспокоюсь о том, что если планировщик переключится на другое приложение, и, следовательно, когда наступит подходящее время для переключения сигналов на LPT, моя программа просто не сможет работать.
Да, кстати, я знаю, что могу использовать любые сторонние приложения, но я просто хотел бы иметь возможность сделать это сам, или, по крайней мере, прежде чем использовать какое-либо стороннее приложение, я хочу знать, как оно работает. И да, вы можете программировать некоторые микроконтроллеры только через параллельный порт с некоторыми резисторами, я знаю это точно.
Спасибо.