Иногда не получается указать пути до включаемых файлов с помощью макроса $PROJ_DIR$, а полный путь при этом работает.
Проблема часто возникает из-за того, что файл проекта (*.ewp) лежит не в корневой папке проекта, а в отдельной подпапке (как часто принято в примерах к IAR Embedded Workbench for ARM 5.1). Например, у меня файл проекта лежал в папке ewp, и поэтому пути типа $PROJ_DIR$\at91lib\board не работали. Решение - нужно разобраться, где лежит файл проекта, и указать пути относительно него. Например, в моем случае корректным будет путь $PROJ_DIR$\..\at91lib\board (две точки выходят в корневую папку проекта из папки ewp).
UPD121228
Проблема с Build Actions -> Post-build command line: невозможно запустить необходимые утилиты после компилирования.
Обычно проблема связана с путями запуска программ. В этом случае окне View -> Messages -> Build после компиляции появляется запись "Total number of errors: 1" (хотя ошибок синтаксиса при компиляции не было), и нужные действия, указанные в командной строке запуска Post-build command line не происходят. Трудность выявления и исправления таких ошибок в том, что нет никакой информации о причине проблемы.
Первое, что нужно проверить - путь до места нахождения исполняемой утилиты. Она должна быть запущена по полному прямо указанному пути, либо путь запуска должен быть прописан в переменной окружения %Path%. Если исполняемая программа находится в пределах папок проекта, то используйте встроенный в IAR макрос $PROJ_DIR$, который указывает на месторасположение файлов настроек проекта *.ewp и *.eww. Профит использования $PROJ_DIR$ в том, что она позволяет отвязаться от абсолютных путей, и можно спокойно копировать или переносить проект в любую папку на диске, не теряя его работоспособности.
Второе, что нужно проверить - видит ли запускаемая программа те файлы, которые надо обработать. Если программа ожидает увидеть входные файлы в своем текущем каталоге, то используйте командный файл для запуска утилиты, и внутри командного файла используйте команду cd для перехода в каталог утилиты. Текущий путь проекта передавайте через опцию командного файла. Пример грамотно настроенной строки Post-build command line:
$PROJ_DIR$\..\..\Exe\post_build_pu.bat $PROJ_DIR$
Пример файла post_build_pu.bat:
rem в параметре передается путь до файла настроек проекта $PROJ_DIR$
cd %1....Exe
@rem утилита to_prog.exe делает файл firmware.bin для программатора SAM-BA.
to_prog.exe
[Ссылки]
1. IAR EW ARM: автоматическая генерация версии прошивки. 2. Переменные аргумента IAR ($PROJ_DIR$, $DATE$, и т. п.). |