Программирование ARM IAR: шаблоны проекта Tue, November 21 2017  

Поделиться

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

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


IAR: шаблоны проекта Печать
Добавил(а) microsin   

При создании новых проектов обычной практикой является использование уже готового кода, проверенных и отлаженных проектов. Но к сожалению, клонировать проекты IAR вручную, чтобы дать проекту новое имя и разместить его в другом каталоге (путем правки текстовых файлов настроек проекта) всегда было утомительно и непросто, а с версией IAR 6.5 стало и вовсе невозможно. И к сожалению, готового инструментария для клонирования проектов IAR до сих пор не существует.

Однако есть встроенная в IAR возможность клонировать проекты, если создать на основе готового проекта шаблон. Этот шаблон проекта (project template) упрощает создание проекта заранее определенного типа. Шаблон основывается на нескольких файлах формата XML, которые могут быть организованы в группы. Далее перевод документа IAR [1] с моими дополнениями.

Шаблоны проекта должны быть размещены в каталоге $TOOLKIT_DIR$\config\template\project.

Прим. переводчика: $TOOLKIT_DIR$ это так называемая argument variable, ссылающаяся на папку установки IAR. Обычно это каталог C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\arm\ (на Windows 7 или Windows 8.1; на Windows XP IAR начиная с версии 6.3 уже не работает). Другая часто используемая переменная $PROJ_DIR$ (ссылается на место размещения папки проекта на диске). Переменные аргумента позволяют упростить настройку рабочего пространства и проекта - скрывают длинные пути, делают проекты переносимыми на диске в любое место, и служат для многих других целей. Подробнее про argument variable можно прочитать в справочной системе IAR (PDF-файл, который можно открыть через меню IAR -> Embegged Workbench IDE Guide -> см. раздел Menus -> Argument variables).

[Project template group]

Группа шаблонов проекта (Project template group) состоит из файла описания группы шаблонов проекта (project template group description file) и папки, которая содержит шаблоны этой группы.

IAR-project-template1

Например, каталог c и группа шаблонов c.projtempl:

< ?xml version="1.0" encoding="iso-8859-1"?>
< templategroup>
   < description>C project templates< /description>
   < displayname>C< /displayname>
< /templategroup>

Вы можете создать новую группу шаблонов проекта, если создадите в каталоге $TOOLKIT_DIR$\config\template\project новую папку (например, папку HelloWorld), и создадите в каталоге $TOOLKIT_DIR$\config\template\project новый файл описания группы (например HelloWorld.ENU.projtempl).

Прим. переводчика: Вы должны работать с правами администратора, чтобы иметь возможность под Windows 7 или Windows 8 создавать новые папки и файлы в каталоге $TOOLKIT_DIR$\config\template\project. Для этого достаточно запустить файловый менеджер с правами администратора (например, правый клик на ярлычке Total Commander -> Запуск от имени администратора -> Да).

[Project template]

Шаблон проекта (Project template) состоит из файла описания шаблона проекта (project template description file) и папки, которая содержит сам проект (который и является шаблоном).

IAR-project-template2

Например, каталог main, шаблон main.projtempl:

< ?xml version="1.0" encoding="iso-8859-1"?>
< template>
   < description>
      C project using default tool settings including an empty main.c file.
   < /description>
   < displayname>main< /displayname>
   < files>
      < file>$PROJ_DIR$\main.c< /file>
   < /files>
< /template>

Прим. переводчика: если Вы хотите, чтобы комментарии, которые пишете в описании проекта (в теге description), корректно отображались на русском языке, то используйте для XML кодировку UTF-8. Текстовые файлы с разными кодировками отлично создает и отображает текстовый редактор Notepad2. Вот пример файла шаблона проекта LED.projtempl:

< ?xml version="1.0" encoding="UTF-8"?>
  
< template>
  < description>C-проект, мигающий светодиодом STAT1 на плате Olimex STM32-P407.< /description>
  < displayname>LED< /displayname>
  
  < files>
    < file>$PROJ_DIR$\main.c< /file>
    < file>$PROJ_DIR$\stm32f4xx_conf.h< /file>
  < /files>
  
< /template>

Вот как этот файл будет отображаться в диалоге меню Project -> Create New Project...:

IAR-project-template4

[Project template directory]

Каталог шаблона проекта (Project template directory) содержит файл проекта templproj.ewp и другие файлы проекта.

IAR-project-template3

Прим. переводчика: файл проекта (с расширением *.ewp), как и файл рабочей группы IAR уже давно имеют тот же формат XML.

Вот пример файла проекта templproj.ewp:

< ?xml version="1.0" encoding="iso-8859-1"?>
< template>
   < description>
      C project using default tool settings including an empty main.c file.
   < /description>
   < displayname>main< /displayname>
   < files>
      < file>$PROJ_DIR$\main.c< /file>
   < /files>
< /template>

[Как создать содержимое папки шаблона проекта (создание нового шаблона)]

Когда Вы создаете новый проект из шаблона (запускаете диалог Project -> Create New Project...), то после выбора шаблона и подтверждения создания все содержимое каталога шаблона проекта автоматически копируется в папку $PROJ_DIR$ (место, где будет создан новый проект). Для того, чтобы Ваш проект создавался из шаблона максимально полно (или скудно), т. е. именно так как Вы хотите, нужно сделать следующее:

1. Создайте (выберите) полностью укомплектованный проект, который Вы хотите сделать шаблоном. Разместите его в любом временном месте на диске. Убедитесь, что проект работает (загружается, компилируется и запускается).

Обязательно сделайте так, чтобы все файлы и модули, и их подкаталоги, которые используются в проекте находились либо внутри корневого каталога проекта (папка $PROJ_DIR$, где находится файл проекта с расширением *.ewp), либо в заранее известном месте относительно каталога $TOOLKIT_DIR$.

2. Создайте каталог для группы шаблонов, если Ваш новый создаваемый шаблон не может относится к какой-то уже имеющейся группе. Новый каталог для группы шаблонов должен быть создан в папке $TOOLKIT_DIR$\config\template\project. Например, если Вы хотите создать группу шаблонов HelloWorld, то Вам нужно создать папку HelloWorld в каталоге C: \ Program Files (x86) \ IAR Systems \ Embedded Workbench 6.5 \ arm \ config \ template \ project \.

Для новой папки группы шаблонов создайте файл для описания группы. Например, это может быть файл HelloWorld.projtempl следующего содержания:

< ?xml version="1.0" encoding="UTF-8"?>
< templategroup>
   < description>Простейшие шаблоны C-проектов.< /description>
   < displayname>HelloWorld< /displayname>
< /templategroup>

Обратите внимание, что этот файл имеет русскоязычное описание, и имеет кодировку UTF-8.

Если Вы не хотите создать отдельную группу для шаблона, то пропустите шаг 2.

3. Создайте каталог для шаблона в выбранном каталоге шаблонов. Например, если выбран каталог C, и если шаблон для проекта должен называться LED, то создайте папку LED в каталоге $TOOLKIT_DIR$\config\template\project\C.

Если Вы создали на шаге 2 новый каталог для группы шаблонов, например группу HelloWorld, то создайте папку шаблона проекта LED в каталоге $TOOLKIT_DIR$\config\template\project\HelloWorld\.

4. Создайте в папке, где Вы создали каталог шаблона проекта, файл описания шаблона проекта. Например, если Вы создали каталог шаблона $TOOLKIT_DIR$\config\template\project\HelloWorld\LED, то этот файл может называться LED.projtempl, и иметь следующее содержание:

< ?xml version="1.0" encoding="UTF-8"?>
< template>
  < description>C-проект, мигающий светодиодом STAT1 на плате Olimex STM32-P407.< /description>
  < displayname>LED< /displayname>
  < files>
    < file>$PROJ_DIR$\main.c< /file>
    < file>$PROJ_DIR$\stm32f4xx_conf.h< /file>
  < /files>
< /template>

5. Скопируйте все файлы и папки, которые не создаются средой IAR в каталог шаблона проекта (project template directory), оставляя не скопированными выходные файлы, файлы настроек, и т. д. Т. е. копировать надо файлы исходного кода (с расширением *.c, *.cpp), заголовочные файлы (с расширением *.h), текстовые файлы (типа readme.txt), папки с дополнительными модулями кода и т. п.

6. Сделайте копию файла XXX.ewp в каталоге шаблона проекта, и переименуйте этот файл в templproj.ewp.

7. Если Вы хотите, чтобы в шаблоне были те же самые настройки для отладчика, как и в оригинальном проекте, то сделайте копию файла XXX.ewd в каталоге шаблона проекта, и переименуйте его в templproj.ewd.

8. Если Вы хотите, чтобы настройки рабочего стола в режиме отладки также сохранились и в шаблоне, то сделайте сначала папку settings в каталоге шаблона проекта, затем сделайте там копию файла XXX.dbgt, и переименуйте её в templproj.dbgt.

Готово, новый шаблон создан. Теперь Вы можете создавать из этого нового шаблона свои проекты вызовом диалога меню Project -> Create New Project... -> выберите шаблон, нажмите OK, выберите папку для клонируемого проекта из шаблона, дайте проекту новое имя.

[Ссылки]

1. Project templates site:netstorage.iar.com.
2. 140814IAR-template.zip - несколько простых самодельных шаблонов (в архиве копия папки $TOOLKIT_DIR$\config\template). В группе шаблонов HelloWorld размещено 3 шаблона: LED (мигание светодиодом STAT1 на плате Olimex STM32-P407), printf-TerminalIO (вывод отладочных сообщений в окно View -> Terminal I/O), printf-USART (вывод отладочных сообщений во внешний мир через USART).

 

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


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

Top of Page