Программирование ARM: решение проблем, FAQ IAR EW ARM: пути с $PROJ_DIR$ не работают, почему? Wed, November 06 2024  

Поделиться

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

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


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

[Ссылки]

1IAR EW ARM: автоматическая генерация версии прошивки.
2Переменные аргумента IAR ($PROJ_DIR$, $DATE$, и т. п.).

 

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


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

Top of Page