Різні версії WinAVR поруч

Коли виходять нові версії компіляторів, у більшості випадків варто спершу спробувати нову версію в роботі, не відмовляючись остаточно від старої. Лише після перевірки перейти на нову версію, можливо навіть попроектно. Бажано залишити можливість повернення до попередньої.
Для цього необхідно встановити поруч кілька версій:

avr-gcc folders

Але ж треба якось вказати своїй системі програмування, яку саме версію використовувати. Звісно, при необхідності замінити версію витирати з кореня диску каталог C:\WinAVR та копіювати у нього один з каталогів компіляторів це «дещо незручно».
»»» Прочитати, як це можна зробити зручніше…

Windows7 vs WindowsXP vs Linux

Так-сяк закінчив переїзд більшості робіт на ноутбук. Але на «великому» комп’ютері у мене крім Ubuntu ще була жменя розділів по 4..8 гігабайт з 32- та 64- бітними версіями WindowsXP та Windows7 («виключно з метою ознайомлення нових версій avreal з середовищем, де їм доведеться працювати»). Ставити весь цей зоопарк на ноутбук бажання нема. Але у ноутбука є гніздо eSATA.
»»» Читати далі про мороку з завантаженням Windows

avreal и LPT в Windows

С точки зрения AVReAl понятие «Windows» распадается на два семейства операционных систем.

Семейство Windows 9X, например, Windows 98, не требует установки драйвера доступа к LPT. В такой системе avreal работает с портами напрямую.

Windows XP, Windows 7 принадлежат другому семейству — Windows NT. Для них необходим драйвер DLPortIO, установка которого для 32-битных та 64-битных систем описана ранее.

Для всех версий Windows в командной строке необходимо указывать номер LPT или его базовый адрес, например, -p1, -p378. Номер порта есть сокращением стандартного адреса, как это сказано в описании ключа -p. Считается, что LPT1/2/3 имеют адреса 378/278/3BC.

Если LPT-порт используется на нестандартных адресах, например, используется плата расширения PCI-LPT (PCI-Express LPT, PCMCIA-LPT), то базовый адрес можно узнать в свойствах порта в диспетчере устройств.

»»» Как узнать адрес LPT в Windows XP, Windows 7

DLPortIO x64 и 64-bit Windows.

К сожалению, драйвера и библиотеки DriverLINX (DLPortIO.sys + DLPortIO.dll) не существует для версий Windows под архитектуру x86-64 (AMD64, Intel64). По крайней мере, я их не находил. Scientific Software Tools, Inc. (http://www.sstnet.com) прекратила поддержку этого драйвера, передала его другой фирме, но и там, кажется, есть только 32-битный вариант.
К счастью, существует комплект InpOut32 (hwinterface.sys+inpout32.dll), а также 64-битная версия InpOutx64 с драйвером hwinterfacex64.sys.

»»» Как установить DLPortIO в 64-битной Windows

DLPortIO и 32-bit Windows.

Для Windows NT, Windows 2000 и 32-битних WindowsXP, Windows 7 установку драйвера DLPortIO.sys и библиотеки DLPortIO.dll можно произвести как привычным для большинства пользователей Windows GUI-инсталлятором, так и CLI (Command-Line Interface) инсталлятором. Я рекомендю CLI-инсталлятор, занимающий в десять раз меньше места. Да и процесс установки мало отличается, ведь командный файл уже написан, остаётся его запустить.

»»» Как установить DLPortIO в 32-битной Windows

DLPortIO 32, DLPortIO x64 for Windows XP, Windows 7

avreal работал под 64-битными версиями Windows и раньше. Кто знал, что и как нужно делать — ставил себе нужный драйвер и программировал AVR-ки. Наконец-то я нашёл время и место для собственноручной проверки установки обычного драйвера DLPortIO под 32-битной версией Windows7 и его эмулятора для WindowsXP/64 и Windows7/64. Программа dd потрудилась как следует, восстанавливая разделы из образов перед каждой проверкой установки на «чистую» систему тем или иным способом.

В результате я выложил на страничке download архивы для двух методов инсталляции DLPortIO-32 (графический интерфейс и интерфейс командной строки) и архив с DLPortIO 64 (интерфейс командной строки). Можно выкачивать, устанавливать, работать.
А я в ближайшее время напишу про всё это несколько подробнее.


Написал:
DLPortIO и 32-bit Windows.
DLPortIO x64 и 64-bit Windows.

LPT и PnP в Windows.

Под ОС Windows avreal иногда нестабильно работает через LPT. Программирование может завершиться нормально, может в любой момент дать сбой, например, synchronisation lost.

Причиной таких сбоев может быть работа подсистемы Plug-and-Play (PnP) в Windows, периодически опрашивающей LPT с целью обнаружения подключенных устройств. Такой опрос производится при загрузке системы, что видно по перемигиванию светодиодов на адаптере, но оно может происходить и при работе. К сожалению, драйвер DLportIO.sys не блокирует доступ к LPT от других програм при работе с портом клиента данного драйвера и подсистема PnP уверена, что порт не занят, обращается к нему и нарушает работу avreal.

Для устранения проблемы загрузите и запустите на выполнение файл disable-lpt-poll.reg. Этот файл прописывает в реестре Windows ключ, запрещающий такой опрос (poll) во время работы системы.

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters]
"DisableWarmPoll"=dword:00000001

AVReAl @ XP/64, Windows7/32, Windows7/64

Нашёл возможность самостоятельно проверить работу avreal под WindowsXP/64, Windows7/32, Windows7/64,
до сих пор я проверял только под W2K и XP/32.
Пока проверил только для FTDI (FT2232) – с драйверами CDM 2.06.00 все работает. В ближайшее время буду разбиратьcя с LPT для перечисленных систем, проверю разные драйвера и методы их установки. Обсуждние было на электрониксе.

[flagcounter image]