_Артём_Ничего не прописывал

Создал "Проект, использующий файл makefile", потом добавил в проект все исходники (можно, кстати, и не все - студия сама-то ничего не компилирует, она только ради редактора и IntelliSense'а нужна). Сам проект и решение не обязательно создавать в тех же папках, где проект и воркспейс от IAR'а, но так удобнее, потому что при настройке проекта в студии можно юзать макросы.
Дальше настройка в разделе "Свойства конфигурации" проекта:
Вкладка "Общие" - без изменений, вкладка "Отладка" - без изменений (собственно отлаживаться из студии и не получится), вкладка "Каталоги C++" - без изменений, но можно заменить на каталоги заголовочных файлов IAR'а (так, наверное, и нужно сделать, чтобы, к примеру, подсказка для printf() всплывала из заголовочных файлов IAR'а).
Все настройки нужно произвести во вкладке "
NMake". В группе "
IntelliSense":
"
Определения препроцессора" - там нужно вставить определённые для каждого файла символы, я туда, как и в IAR'е, пишу "FLASH" и "AT91SAM7X128" (куда помещать код и тип процессора), чтобы при компиляции подхватить нужный .h-ник для процессора;
"
Путь поиска включаемых файлов" - тут прописать дополнительные пути для поиска .h-ников, сюда я прописывал те же пути, что и в проекте в IAR';
"
Обязательно включаемые файлы" - какие .h-ники обязательно подключать ко всем исходным файлам, у меня ничего нет, но нужно прописать то же, что и в проекте IAR'а.
Дальше в группе "
Общие" (пишу настройки в расчёте, то проект студии лежит в той же папке, что и проект IAR):
"
Командная строка для построения" =
"[путь до IarBuild.exe]\IarBuild.exe" "$(ProjectDir)имя_вашего_проекта_в_iar.ewp" -make $(Configuration) -log warnings
"
Командная строка для перестроения всех файлов" =
"[путь до IarBuild.exe]\IarBuild.exe" "$(ProjectDir)имя_вашего_проекта_в_iar.ewp" -build $(Configuration) -log warnings
"
Командная строка для очистки" =
"[путь до IarBuild.exe]\IarBuild.exe" "$(ProjectDir)имя_вашего_проекта_в_iar.ewp" -clean $(Configuration) -log all
Здесь $(Configuration) - макрос студии, который вставляет имя текущей конфигурации. Чтобы не путаться, я сделал новую конфигурацию с таким же именем, как и в проекте IAR'а: "at91sam7x128_flash".
IarBuild.exe - консольная утилита для построения существующего проекта IAR. Обычно лежит где-то здесь:
"c:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\common\bin\IarBuild.exe".
Usage: iarbuild <projectfile> [-clean | -build | -make] <config> [-log errors|warnings|info|all]
Есть одна проблема: IarBuild.exe выводит отчёт о построении в кодировке Win-1251, поэтому в консоли все сообщения об ошибках в файлах, которые в своём имени или пути имеют русские буквы, выводятся иероглифами, потому что консольное окно ожидает от программы вывода в unicode или cp866. Так же ведёт себя студия, поэтому когда кликаешь на строку с ошибкой, студия не показывает файл, а пишет, что "Не удаётся натий файл". Так что я написал небольшой скрипт, который:
1) выводит справку об аргументах командной строки;
2) сохраняет отчёт построения проекта в файле [каталог проекта]\IarBuild.txt (ANSI, Win-1251);
3) выводит в стандартный поток вывода отчёт о построении, преобразованный в кодировку CP-866, для корректного отображения русских букв в IDE.
Нажмите для просмотра прикрепленного файлаВ файле IarBuild.bat нужно только на 9-й строке заменить путь до IarBuild.exe на ваш.
Тогда в настройках путей в NMake в студии нужно указать всё тоже самое, только вместо "[путь до IarBuild.exe]\IarBuild.exe" писать "[путь до IarBuild.bat]\IarBuild.bat", сам IarBuild.bat можно положить куда угодно.
Периферия подсказывается:
Нажмите для просмотра прикрепленного файлаправда я уже очень давно вот так напрямую к ней не обращался