IAR EW ARM: пути с $PROJ_DIR$ не работают, почему? |
![]() |
Добавил(а) microsin |
Иногда не получается указать пути до включаемых файлов с помощью макроса $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: автоматическая генерация версии прошивки. |