Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Форматы проекта

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Форматы проекта
Ксения
Junior Member

Сообщений: 1
Регистрация: Январь 2005

написано 09 Января 2005 19:17ИнфоПравкаОтветитьIP

Так уж получилось, что на меня скинули продолжение сопровождения программы для ATMEL AT90S2313, написанной уволившимся сотрудником. Все концы оборваны (товарищ ушел обиженным на руководство), а мне в наследство достался проект (xxx.prj) из трех С-шных файлов с результатами их компиляции (*.obj, *.lst, xxx.map, xxx.a90).
Исходники особых вопросов не вызвали, но повторить компиляцию я до сих пор не смогла из-за отсутствия компилятора (перед свои уходом сотрудник сдал свою работу без компилятора, а свой рабочий компьютер очистил от данных).
Между тем, здравый смысл мне подсказывает, что прежде, чем вносить свои изменения в текст программы, мне следовало бы сначала самой повторить приготовление бинарного кода для прошивки, чтобы убедиться, что компилирую я программу при тех же самых установках параметров.
Вот тут-то и произошел затык :-(.
По информации из листингов (lst и map) удалось выяснить, что компиляция проекта производилась посредством этих инструментов:

IAR Atmel AVR C/EC++ Compiler V2.28A/WIN
IAR Universal Linker V4.53O/WIN

Однако с сайта /www.iar.com удалось добыть только последнюю версию AVRStudio 4.08, которая порождает с листинге следующие записи:

IAR Atmel AVR C/EC++ Compiler V3.10C/W32
IAR Universal Linker V4.58A/386

Само по себе это не страшно, только новая версия работает с проектами с расширениями *.eww и *.ewp (текстовый формат) и наотрез отказалась воспринимать доставшийся мне рабочий проект с расширением *.prj (бинарный).
Новый проект я конечно создала, только компилирует он мне прошивку другой длины (длиннее).

Вопрос-просьба к участникам форума:
1) Поделиться со мной той старой версией компилятора (V2.28A), чтобы я могла ПРОЧИТАТЬ доставшийся мне проект.
2) Или надоумить меня, как можно воспринять проект старого формата на последних версиях компилятора.

Ксения

Весельчак У
Moderator

Сообщений: 6345
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 10 Января 2005 02:28ИнфоПравкаОтветитьIP

Только почему AVRStudio?
Ну да ладно.

только компилирует он мне прошивку другой длины (длиннее).
А она работает?
Другая длина может быть из-за разной степени (и/или параметров) оптимизации. Я бы лично не стал искать только из-за этого более старую версию. Лучше покопаться в настройках оптимизации и попробовать получить тот же размер.

с проектами с расширениями *.eww и *.ewp
Это не проекты, а "workspace", т.е. сохранение рабочего окружения. Проекты, по-прежнему, имеют расширение *.prj. Естественно, что от другой версии работать не будет.

AlexOr
Member

Сообщений: 450
Откуда: СПб
Регистрация: Май 2003

написано 10 Января 2005 07:49ИнфоПравкаОтветитьIP

Ксения
AVRStudio 4.08, которая порождает с листинге следующие записи:
IAR Atmel AVR C/EC++ Compiler V3.10C/W32
IAR Universal Linker V4.58A/386

А такое возможно?

Ксения
Junior Member

Сообщений: 2
Регистрация: Январь 2005

написано 10 Января 2005 17:04ИнфоПравкаОтветитьIP

Весельчак У: "Только почему AVRStudio?"
AlexOr: "А такое возможно?"

Поправляюсь. Та штука, которой я сама пыталась компилять, представляется так:
IAR Embedded Workbench for Atmel AVR V3.10C
Причем именно она ассоциируется после инсталляции с расширением файлов *.eww
(запускается из \common\bin\EwProPm.exe)

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

Весельчак У: "Это не проекты, а "workspace", т.е. сохранение рабочего окружения. Проекты, по-прежнему, имеют расширение *.prj"

Неправда. Пары файлов xxx.eww и xxx.ewp вполне достаточно для компиляции, в процессе которой никаких файлов с расширением xxx.prj не порождается. Все параметры компиляции хранятся в файле xxx.ewp в текстовом виде. Например, размер RSTACK'a хранится в нем так:
<option>
<name>SCRStackSize</name>
<state>10</state>
</option>
А в бинарном файле xxx.prj разобрать можно только полные PATH на инклюды:
C:\PROGRAM FILES\IAR SYSTEMS\EW23 EVALUATION VERSION\avr\SRC\CLIB\INC\ina90.h
(может быть это тоже поможет понять чем компилировали этот проект)

Весельчак У: "Другая длина может быть из-за разной степени (и/или параметров) оптимизации. Я бы лично не стал искать только из-за этого более старую версию. Лучше покопаться в настройках оптимизации и попробовать получить тот же размер."

Копалась, размер действительно меняется, но получить тоже самое не удается. Кроме того, число возможных комбинаций параметров оптимизации слишком велико, чтобы все эти варианты можно было бы перебрать вручную.
Очень хотелось бы извлечь "натуральные" параметры из старого xxx.prj, в этом и состоит моя просьба.

Весельчак У: "А она работает?"

На беглый взгляд работает, но на 100% уверенности в этом нет. Микропроцессор служит промежуточным звеном в процессе обмена данными между компьютером типа IBM PC и внешним железом (четырьмя ADC + DIO). На микропроцессор ложатся задачи обеспечения буферизации снимаемых с ADC данных и их пересылка по RS232-каналу, а также установка режимов ADC по внешнему требованию.
Весь этот комплекс работает уже несколько лет, непрерывно развиваясь. Ошибки отлавливались годами. Вносить возмущение в эту работу своим неумением компилировать мне очень бы не хотелось. Не говоря уже о том, что я постоянно буду обречена трясись из-за того, что не буду знать на что мне пенять - на свои изменения в программе или на отступление от первоначальных опций компиляции.

[Это сообщение изменил Ксения (изменение 10 Января 2005 21:49).]

Весельчак У
Moderator

Сообщений: 6350
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 11 Января 2005 02:43ИнфоПравкаОтветитьIP

Ксения
Неправда. Пары файлов xxx.eww и xxx.ewp вполне достаточно для компиляции, в процессе которой никаких файлов с расширением xxx.prj не порождается.
Что неправда? То, что workspace включает в себя проект, ещё не значит что это всё неправда.
У меня иногда *.prj порождается, хотя я и не отслеживал когда.

На микропроцессор ложатся задачи обеспечения буферизации снимаемых с ADC данных и их пересылка по RS232-каналу, а также установка режимов ADC по внешнему требованию.
Тогда оттестировать на правильность работы достаточно просто. Тем более, что все ошибки уже известны.
А ежели уж совсем страшно, можно попробовать поставить 2 устройства "в параллель", прицепить к выходам цифровой компаратор и посмотреть различия. Хотя с синхронизацией придётся что-то решать. (Я бы за это не взялся. )

И вообще, по-моему, ошибки гораздо чаще возникают из-за ошибок в программе, а не неправильных параметров компиляции. При неправильных параметрах (в отлаженной программе) скорее или совсем не будет компилироваться, или ухудшится эффективность работы. Исключение, пожалуй, составляют функции вроде scanf/printf (sscanf/sprintf), но это легко найти в программе. Кстати, эти параметры чаще задаются в .xcl файле. Он сохранился? Ежели нет, придётся восстанавливать размеры и положения сегментов и упомянутые параметры - вот тут придётся попотеть, ежели это используется в программе.
Ежели используются какие-то библиотеки (вроде плавающей арифметики), то они обязательно должны быть от полной версии компилятора, иначе - облом, хотя это вроде должно проявиться на этапе линковки.

Ксения
Junior Member

Сообщений: 3
Регистрация: Январь 2005

написано 11 Января 2005 13:03ИнфоПравкаОтветитьIP

Весельчак У: "Что неправда? То, что workspace включает в себя проект, ещё не значит что это всё неправда. У меня иногда *.prj порождается, хотя я и не отслеживал когда."

Я четко процитировала, с чем не согласилась. Это ваша фраза - "Проекты, по-прежнему, имеют расширение *.prj". Создание нового проекта свидетельствуют о том, что в процессе этой процедуры порождаются файлы *.eww и *.ewp, причем опции и установки хранятся в последнем.
Если бы "иногда *.prj порождается" в процессе компиляции, то это свидетельствовало как раз о том, что такой файл проектом НЕ является. Проект это то, что присутствует ДО КОМПИЛЯЦИИ и определяет ЗАДАНИЕ на нее и ее условия, а значит никакие файлы, получаемые уже в процессе работы компилятора на эту роль претендовать не могут.

Весельчак У: "Тогда оттестировать на правильность работы достаточно просто."

Оттестировать во всей полноте сложно. Пускаться сейчас в обсуждение данного вопроса я не стану.

Весельчак У: "При неправильных параметрах (в отлаженной программе) скорее или совсем не будет компилироваться, или ухудшится эффективность работы."

У программы страшный дефицит с оперативной памятью (все съедает тот буфер, который обеспечивает асинхронный режим опроса ADC). По этой причине стеки минимальны. Судя по листингу, мой проект выжирает на два байта RSTACK'а больше, чем проект моего предшественника. Причину выяснить пока так и не удалось.

Весельчак У: "Исключение, пожалуй, составляют функции вроде scanf/printf (sscanf/sprintf), но это легко найти в программе. Кстати, эти параметры чаще задаются в .xcl файле. Он сохранился?"

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

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

Ксения
Junior Member

Сообщений: 4
Регистрация: Январь 2005

написано 12 Января 2005 01:07ИнфоПравкаОтветитьIP

Сама доперла, как утилизировать старый формат проекта.
Для тех, у кого возникнет аналогичная проблема, пишу ее решение:

1) New -> Open Workspace
2) Add Existing Project (to Current Workspace) -> открывается диалог выбора файла
3) устанавливаем Files of type: "Old Project Files (*.prj, *.pew)" и выбираем старый файл проекта
4) Соглашаемся на предложение:
The project flle is in old format.
Would you like to convert it for use with this version?
OK
Новый проект готов! При выходе соглашаешься на сохранение проекта, тогда он пишется на диск.

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

P.S. И все-таки кто может поделиться старым дистрибутивом 2.28А - откликнитесь! (ломалка для этой версии мне не нужна, она у меня уже есть).

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика