Перейти к содержанию
    

Подскажите, как правильно в IAR Embedded Workbench вести несколько однотипных проектов?

Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов.

Скажите, как правильно это сделать? Я попробовал скопировать всю папку с кодом, но открывая проект и работая с ним понял что ИАР, цепляет "корнями" родоначальный прожект.

Может быть правильно будет создать новый проект и в него "заливать" готовые части? Сори за глупые вопросы.

Изменено пользователем Буратино

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов...

Правильнее всего создать в одном workspace несколько проектов.

Только при использовании условной компиляции для общих файлов укажите разные папки для объектных файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов.

Скажите, как правильно это сделать?

Используйте в программных модулях относительные пути. У меня во всех хедерах всех проектах используются относительные пути (относительно корня проекта) и поэтому при перемещении папки проекта (с сохранением структуры подкаталогов проекта) в другое место проблем не возникает. Только следует помнить, что при первом открытии перемещенного проекта в окне(ах) редактора 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" //общий для всех проектов и для всех кристаллов хедер

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

 

Правильнее всего создать в одном workspace несколько проектов.
Это возможно, только если проекты созданы в одинаковой версии IDE IAR. А в случае создания проектов для разных кристаллов это по-моему вообще невозможно (хотя здесь могу и ошибаться).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох ребята, все так сложно:(

Дело в том, Что у меня задачки то простенькие: там диодами поморгать ,там эл. регулятором громкости поуправлять.. Просто хочется, чтоб оно лежало где-то на диске в папке "Source" а я в любой момент взял из нее то что мне нужно ,прикрутил к новой разработке и поскакал дальше:)

НЕоходимо что-то почитать, чтоб вникнуть. Спасибо, я вернусь к этому вопросу, но немного позже, а сейчас я создал новый воркспейс и перетащил все что мне было необходимо в новый проект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это возможно, только если проекты созданы в одинаковой версии IDE IAR. А в случае создания проектов для разных кристаллов это по-моему вообще невозможно (хотя здесь могу и ошибаться).

Скорее всего Вы правы, но есть еще система контроля версий типа svn, фактически стоящая поверх любых компиляторов.

Она существенно облегчает наследование проектов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

организация структуры проекта мне попадалась только тут:

Таненбаум "Операционные системы разработка и реализаци"

но и по инету полазить можно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это возможно, только если проекты созданы в одинаковой версии IDE IAR. А в случае создания проектов для разных кристаллов это по-моему вообще невозможно (хотя здесь могу и ошибаться).

 

Если под "кристаллами" понимаются разные архитектуры (ARM, MSP430, AVR...), то не знаю, не пробовал.Хотя почему бы и нет, если IDE одно. А если разные чипы (например ATtiny24, ATmega64...), то постоянно так работаю. Создаю Workspace для всего девайса, а внутри проекты для разных модулей. Единственно, что имена проектов должны отличаться, т.к. каталоги для проектов в Workspace одни и те же. Т.е. файлы main.c нужно переименовать. Например, по имени проекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть небольшой законченый проект, планируется по образу и подобию создать еще несколько управляющих программ,но уже для других девайсов.

Скажите, как правильно это сделать? Я попробовал скопировать всю папку с кодом, но открывая проект и работая с ним понял что ИАР, цепляет "корнями" родоначальный прожект.

Может быть правильно будет создать новый проект и в него "заливать" готовые части? Сори за глупые вопросы.

Цепляются только файлы, открытые в IARe для редактирования.

Если копируешь проект в другую папку. То в скопированном проекте надо закрыть все открытые для редактирования файлы и заново открыть их через вкладку Workspace.

А если проекты различаются всего несколькими процедурами, то удобно их объединить в один Workspace и использвать директивы условной компиляции, как посоветовал Dog Pawlowa.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...