Ядро против пользовательского режима для доступа к оборудованию SPI на Tegra 2

#c# #hardware #cpu-registers #drivers

#c# #оборудование #cpu-регистры #Пилоты

Вопрос:

Я использую C # / VStudio и разрабатываю код для запуска в Windows CE 7.0.

можно ли напрямую настроить / получить доступ к аппаратным регистрам на моем процессоре из моего кода приложения?

Существует ли API для прямого доступа к аппаратным регистрам в пользовательском режиме, избегая разработки драйвера режима ядра? (интуиция подсказывает мне, что драйверы режима ядра существуют именно для того, чтобы избежать этого, но …)

Я использую процессор NVIDIA Tegra 2 «компьютер на кристалле» и хотел бы управлять портами SPI (но ответ о том, как получить доступ к оборудованию, вероятно, актуален для большинства процессоров).

Комментарии:

1. «возможно ли напрямую настроить / получить доступ к аппаратным регистрам на моем процессоре из моего кода приложения?» — уверен, что приложения не смогли этого сделать, начиная с защищенного режима Windows 3.1

2. Тогда драйвер режима ядра является единственным решением? Кстати, как драйвер получает контроль над аппаратным регистром / пространством памяти, чтобы избежать столкновений с другими драйверами?

3. Обратитесь к SDK драйвера Windows. Я сомневаюсь, что вы можете сделать это с c#

Ответ №1:

В Tegra 2 есть контроллер SPI, но вам необходимо настроить ядро и дерево устройств, если ваша ОС этого не делает. Вы можете сделать это, используя эту очень удивительную серию статей SPI на Tegra, думал, что это для TK1, но должно быть то же самое для T2