Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите, как правильно в IAR Embedded Workbench вести несколько однотипных проектов?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Буратино
Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов.
Скажите, как правильно это сделать? Я попробовал скопировать всю папку с кодом, но открывая проект и работая с ним понял что ИАР, цепляет "корнями" родоначальный прожект.
Может быть правильно будет создать новый проект и в него "заливать" готовые части? Сори за глупые вопросы.
Dog Pawlowa
Цитата(Буратино @ May 19 2009, 10:54) *
Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов...

Правильнее всего создать в одном workspace несколько проектов.
Только при использовании условной компиляции для общих файлов укажите разные папки для объектных файлов.
rezident
Цитата(Буратино @ May 19 2009, 13:54) *
Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов.
Скажите, как правильно это сделать?

Используйте в программных модулях относительные пути. У меня во всех хедерах всех проектах используются относительные пути (относительно корня проекта) и поэтому при перемещении папки проекта (с сохранением структуры подкаталогов проекта) в другое место проблем не возникает. Только следует помнить, что при первом открытии перемещенного проекта в окне(ах) редактора IDE IAR может отображаться содержимое исходников из старой папки проекта. Просто закройте все окна редактора и откройте их снова, кликая на имена файлов проекта в окне Workspace.
Второй нюанс. Если хотите использовать некоторые из своих исходников как библиотечные для разных кристаллов, то позаботьтесь заранее о структуре каталогов. У меня, например, структура такая.
Код
_xOS
|->COMMON
|  |->_INC
|  |->_LIB
|->ARM
|  |->_INC
|  |->_LIB
|  |->PROJECT1
|  |  |->_INC
|  |  |->_LIB
|  |->PROJECT2
|  |  |->_INC
|  |  |->_LIB
|->MSP430
|  |->_INC
|  |->_LIB
|  |->PROJECT3
|  |  |->_INC
|  |  |->_LIB
|  |->PROJECT4
|  |  |->_INC
|  |  |->_LIB

В папках _INC лежат хедеры, в папках _LIB - си-шные файлы. Соответственно общие для разных проектов файлы я могу включать с помощью относительных путей. Допустим я работаю с проектом PROJECT3 и создаю в папке _LIB этого проекта исходник uart.c
Код
#include "..\_INC\uart_loc.h" //хедер данного конкретного проекта PROJECT3
#include "..\..\_INC\msp_uart.h" //общий для всех проектов на кристаллах MSP430 хедер
#inclyde "..\..\..\COMMON\_INC\myType.h" //общий для всех проектов и для всех кристаллов хедер

Примерно так.

Цитата(Dog Pawlowa @ May 19 2009, 15:52) *
Правильнее всего создать в одном workspace несколько проектов.
Это возможно, только если проекты созданы в одинаковой версии IDE IAR. А в случае создания проектов для разных кристаллов это по-моему вообще невозможно (хотя здесь могу и ошибаться).
HEX
А как можно подключать си-шный файлы из библиотеки к проекту?
Буратино
Ох ребята, все так сложноsad.gif
Дело в том, Что у меня задачки то простенькие: там диодами поморгать ,там эл. регулятором громкости поуправлять.. Просто хочется, чтоб оно лежало где-то на диске в папке "Source" а я в любой момент взял из нее то что мне нужно ,прикрутил к новой разработке и поскакал дальшеsmile.gif
НЕоходимо что-то почитать, чтоб вникнуть. Спасибо, я вернусь к этому вопросу, но немного позже, а сейчас я создал новый воркспейс и перетащил все что мне было необходимо в новый проект.
Dog Pawlowa
Цитата(rezident @ May 20 2009, 00:42) *
Это возможно, только если проекты созданы в одинаковой версии IDE IAR. А в случае создания проектов для разных кристаллов это по-моему вообще невозможно (хотя здесь могу и ошибаться).

Скорее всего Вы правы, но есть еще система контроля версий типа svn, фактически стоящая поверх любых компиляторов.
Она существенно облегчает наследование проектов.
HEX
организация структуры проекта мне попадалась только тут:
Таненбаум "Операционные системы разработка и реализаци"
но и по инету полазить можно
Dir
Цитата(rezident @ May 20 2009, 00:42) *
Это возможно, только если проекты созданы в одинаковой версии IDE IAR. А в случае создания проектов для разных кристаллов это по-моему вообще невозможно (хотя здесь могу и ошибаться).


Если под "кристаллами" понимаются разные архитектуры (ARM, MSP430, AVR...), то не знаю, не пробовал.Хотя почему бы и нет, если IDE одно. А если разные чипы (например ATtiny24, ATmega64...), то постоянно так работаю. Создаю Workspace для всего девайса, а внутри проекты для разных модулей. Единственно, что имена проектов должны отличаться, т.к. каталоги для проектов в Workspace одни и те же. Т.е. файлы main.c нужно переименовать. Например, по имени проекта.
Zlumd
Цитата(Буратино @ May 19 2009, 11:54) *
Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов.
Скажите, как правильно это сделать? Я попробовал скопировать всю папку с кодом, но открывая проект и работая с ним понял что ИАР, цепляет "корнями" родоначальный прожект.
Может быть правильно будет создать новый проект и в него "заливать" готовые части? Сори за глупые вопросы.
Цепляются только файлы, открытые в IARe для редактирования.
Если копируешь проект в другую папку. То в скопированном проекте надо закрыть все открытые для редактирования файлы и заново открыть их через вкладку Workspace.
А если проекты различаются всего несколькими процедурами, то удобно их объединить в один Workspace и использвать директивы условной компиляции, как посоветовал Dog Pawlowa.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.