Программирование PC Как интегрировать вместе Windows DDK и Visual Studio? Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Как интегрировать вместе Windows DDK и Visual Studio? Печать
Добавил(а) microsin   

Компилирование в 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 - в корень дерева проекта. Должно получиться дерево как на скриншоте:
integrateDDK01.GIF 

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. 

 

Комментарии  

 
0 #1 Сергей 16.01.2013 18:16
Буду пробовать так же сделать для Visual Studio 2008, надеюсь получиться
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page