Компилирование в Windows DDK предполагает запуск утилиты build из командной строки Win XP Checked Build Environment или Win XP Free Build Environment, что достаточно неудобно по сравнению с работой в IDE Visual Studio. В статье описаны несколько вариантов решения проблемы.
[Способ 1 - написание скрипта для компиляции] Процесс по шагам (на примере компилирования ПО хоста HIDTest для устройства HID).
1. Скачиваем исходники для компиляции (Вы можете использовать свои, например проекты из Windows DDK) на сайте Atmel - at91sam7x-ek.zip (Products -> AT91SAM 32-bit ARM-based Microcontrollers -> AT91 Software Package -> AT91SAM7X-EK Software Package for IAR 5.2, Keil and GNU (40 MB, revision 1.5, updated 12/08). Исходный код, который нам нужен, находится в папке архива at91sam7x-ek\usb-device-hid-transfer-project\HIDTest\. Для того, чтобы мы могли скомпилировать пример, необходим также установленный Windows DDK (см. "Где взять Windows XP DDK и что это такое?" http://microsin.ru/content/view/947/44/).
2. Запускаем Microsoft Visual Studio .NET 2003. Выбираем в меню File -> New -> Project... -> Visual C++ Projects -> General -> Makefile Project. Предположим, что папка нового создаваемого проекта HIDTest должна находится в общей папке проектов c:\VCPP\. Для этого в поле Name: вводим HIDTest, а в поле Location: вводим C:\VCPP (можно воспользоваться кнопкой Browse...). Результирующий полный путь до файлов проекта получится C:\VCPP\HIDTest. Жмем OK. Запустится нехитрый мастер настроек Makefile Application. Выбираем Application Settings, в поле Build command line: вводим (одиночные кавычки вводить не надо) 'mybuild.bat -Debug', в поле CIean commands: вводим 'mybuild.bat -clean', в поле Rebuild command line: вводим 'mybuild.bat -Debug -re'. Жмем Finish. В папке c:\VCPP\HIDTest\ получили 5 файлов: HIDTest.ncb HIDTest.sln HIDTest.suo HIDTest.vcproj readme.txt
3. Копируем в папку c:\VCPP\HIDTest\ исходные файлы из папки архива at91sam7x-ek\usb-device-hid-transfer-project\HIDTest\. После копирования в нашем созданном проекте Visual Studio все файлы *.c помещаем в папку Source Files, все файлы *.h помещаем в Header Files, файл hclient.rc помещаем в папку Resource Files, файл sources - в корень дерева проекта. Должно получиться дерево как на скриншоте:
4. Создаем скрипт mybuild.bat в папке проекта c:\VCPP\HIDTest\. Содержимое скрипта: @if "%1" EQU "-clean" goto clean @if "%1" EQU "-Debug" goto Debug @if "%1" EQU "-Release" goto Release @echo Error mybuild.bat commandline! goto Usage
:Debug pushd . call C:\WINDDK\2600\bin\setenv.bat C:\WINDDK\2600 chk popd if "%2" NEQ "-re" skipcleanDebug rmdir /S /Q .\Debug rmdir /S /Q .\obj rmdir /S /Q .\objchk del buildchk.log :skipcleanDebug build copy /Y /b objchk\i386\*.exe . goto exit
:Release pushd . call C:\WINDDK\2600\bin\setenv.bat C:\WINDDK\2600 fre popd if "%2" NEQ "-re" skipcleanRelease rmdir /S /Q .\Release rmdir /S /Q .\obj rmdir /S /Q .\objfre del buildfre.log :skipcleanRelease build copy /Y /b objfre\i386\*.exe . goto exit
:clean rmdir /S /Q .\Release rmdir /S /Q .\Debug rmdir /S /Q .\obj rmdir /S /Q .\objchk rmdir /S /Q .\objfre del buildchk.log del buildfre.log goto exit
:Usage @echo Usage: @echo mybuild.bat -Debug [-re] - compile with checked build env (Debug) [rebuild all] @echo mybuild.bat -Release [-re] - compile with free build env (Release) [rebuild all] @echo mybuild.bat -clean - remove temp folders and files @exit /B 1
:exit Текст скрипта не нуждается в подробных комментариях - там все достаточно наглядно. Для установки переменных окружения используется скрипт setenv.bat из Windows DDK.
5. Подправляем опции Release. Выбираем Project -> Properties -> Configuration: Release -> Configuration Properties -> NMake -> Build Command Line переправляем на mybuild.bat -Release, Rebuild All Command Line переправляем на mybuild.bat -Release -re, Clean Command Line переправляем на mybuild.bat -clean.
6. Готово! Теперь можно в меню выбирать Build -> Build HIDTest, Rebuild HIDTest и Clean HIDTest. Проект будет компилироваться, перекомпилироваться и очищаться от временных файлов соответственно. [Способ 2 - скрипт ddkbuild] Есть средство для интегрирования этого процесса в привычную удобную среду Visual Studio - DDKBUILD (http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm).
Утилита DDKBUILD представляет из себя простой командный файл, который берет на себя заботу о процессе компиляции исходных файлов, что позволяет их редактировать в среде Visual Studio, и оттуда же запускать процедуру компиляции. Процесс настройки по шагам. 1. Скачиваем ddkbuild, ссылка на последнюю версию всегда доступна на страничке http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm. Я скачал ddkbuild3_13.zip. В этом архиве находится один-единственный файл - ddkbuild.bat. Скопируйте его в место, где он всегда будет доступен для запуска (в одну из папок, которая фигурирует в переменной окружения PATH). Я его скопировал в папку c:\WINDDK\2600\, и добавил эту папку в системную переменную окружения Path.
2. В список переменных окружения добавляем переменную WNETBASE, указывающую на каталог Windows DDK. Я добавил системную переменную окружения с именем WNETBASE и значением c:\WINDDK\2600.
[Ссылки]
1. Проект HIDTest вместе со скриптом mybuild.bat. 2. Проект usb-device-hid-transfer-project-at91sam7x-ek - firmware для USB HID на ARM, которое работает вместе с HIDTest. |
Комментарии
RSS лента комментариев этой записи