реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Список переменных проекта
IJAR
сообщение Nov 19 2007, 12:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



IAR 4.20
Можно ли из файлов создаваемых компиляторм "вытащить" список имен переменных в RAM,
их начальные адреса и формат?


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 19 2007, 13:23
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(IJAR @ Nov 19 2007, 14:40) *
IAR 4.20
Можно ли из файлов создаваемых компиляторм "вытащить" список имен переменных в RAM,
их начальные адреса и формат?
Адреса и список можно вытащить из .map - там они рассортированы по объектным файлам и сегментам. Можно анализировать сегменты, располагаемые в ОЗУ. Но информации о типах там нет. Вся интересующая вас информация хранится в объектном файле для отладчика. Но формат его закрыт. Можно посмотреть другие форматы, которые генерит линкер - coff, elf.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IJAR
сообщение Nov 19 2007, 14:58
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(Сергей Борщ @ Nov 19 2007, 17:23) *
Адреса и список можно вытащить из .map - там они рассортированы по объектным файлам и сегментам. Можно анализировать сегменты, располагаемые в ОЗУ. Но информации о типах там нет. Вся интересующая вас информация хранится в объектном файле для отладчика. Но формат его закрыт. Можно посмотреть другие форматы, которые генерит линкер - coff, elf.


Да sign и unsign надо различать, да и форма массивов .......
А формат cof где есть открытый


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 19 2007, 15:32
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(IJAR @ Nov 19 2007, 16:58) *
А формат cof где есть открытый
Гугля выдает кучу ссылок: http://www.google.com/search?client=opera&...-8&oe=utf-8


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IJAR
сообщение Nov 20 2007, 11:30
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(Сергей Борщ @ Nov 19 2007, 19:32) *
Гугля выдает кучу ссылок: http://www.google.com/search?client=opera&...-8&oe=utf-8


Спасибо, буду ковырять Coff формат.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
-SD-
сообщение Nov 27 2007, 05:33
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 29-08-07
Из: г.Копейск, Чел. обл.
Пользователь №: 30 121



Можно воспользоваться Proteus'ом, если ваш контроллер им поддерживается.
Создать в нём простенький проект (один контроллер вставить без всякой обвязки). Сгенерить в IAR'е coff формат и подключить его к процессору в проекте Proteus'а.
Запустить выполнение по шагам и там выведится список всех глобальных переменных с их адресами.
Go to the top of the page
 
+Quote Post
IJAR
сообщение Nov 27 2007, 09:34
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(-SD- @ Nov 27 2007, 09:33) *
Можно воспользоваться Proteus'ом, если ваш контроллер им поддерживается.
Создать в нём простенький проект (один контроллер вставить без всякой обвязки). Сгенерить в IAR'е coff формат и подключить его к процессору в проекте Proteus'а.
Запустить выполнение по шагам и там выведится список всех глобальных переменных с их адресами.


Спасибо за совет, но мне как раз нужно обойтись без дополнительных средств.
У меня bootLoader объединен с просмоторщиком ресурсов контроллера и все это
завязано на внешний терминал PC. Все это работает в фоне основной программы.
Поэтому фокус с coff файлом наиболее подходит.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
-SD-
сообщение Nov 28 2007, 04:32
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 29-08-07
Из: г.Копейск, Чел. обл.
Пользователь №: 30 121



Цитата(IJAR @ Nov 27 2007, 14:34) *
Поэтому фокус с coff файлом наиболее подходит.


В принципе это одно и тоже, т.к. Proteus просто "расшифрует" coff файл и покажет это на экране. При этом не надо будет разбираться с coff форматом. Но если не имели дело с Proteus'ом, надо будет его качать, устанавливать, чуть разобраться в нём.
Не известно что легче. smile.gif
Go to the top of the page
 
+Quote Post
IJAR
сообщение Dec 3 2007, 09:08
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(-SD- @ Nov 28 2007, 08:32) *
В принципе это одно и тоже, т.к. Proteus просто "расшифрует" coff файл и покажет это на экране. При этом не надо будет разбираться с coff форматом. Но если не имели дело с Proteus'ом, надо будет его качать, устанавливать, чуть разобраться в нём.
Не известно что легче. smile.gif


Ну и что с того что на экран можно будет вызвать адреса переменных.
Далее лазить по RAM в разные места? Хорошо если 1-2 переменных типа char,
а обычно их больше. Идея то такая: на экране список переменных с их форматом,
отметил галочками интеремующие - получил список с текущими значениями,
нажал кнопку "Обновить" новые текущие значения.

Правда с Cof файлом оказались проблемы: не хочет IAR 4.20 генерить его для ATmega процессоров
а UBROF 8 пака не нащел описание формата. Так что пока идея в полном развале.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 3 2007, 09:25
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(IJAR @ Dec 3 2007, 11:08) *
а UBROF 8 пака не нащел описание формата.
и не найдете: UBROF - закрытый формат имени ИАРа. А .elf иар умеет генерить для меги?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IJAR
сообщение Dec 3 2007, 10:04
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(Сергей Борщ @ Dec 3 2007, 13:25) *
и не найдете: UBROF - закрытый формат имени ИАРа. А .elf иар умеет генерить для меги?


В EXTRA OPTION Linker-a ставлю: -Oelf,as=my_Proj.elf
при линковке получаю:
Fatal Error[e92]: Cannot use the 'elf' output format with this cpu
что, как я понимаю, означает что данный формат для такого типа CPU
не поддерживается (у меня mega128)


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
AndreyKeil
сообщение Dec 3 2007, 23:07
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 96
Регистрация: 16-11-05
Из: г.Екатеринбург
Пользователь №: 10 930



Цитата(IJAR @ Nov 19 2007, 17:40) *
IAR 4.20
Можно ли из файлов создаваемых компиляторм "вытащить" список имен переменных в RAM,
их начальные адреса и формат?


Скачайте среду разработки "Project-AVR/ESA" московской фирмы "Фитон" http://www.phyton.ru/cp1251/renevals/avr.shtml.
После установки, там есть опция "загрузить программу для отладки". Грузить нужно в формате UBROF8. Далее, в меню есть опция "Просмотр\Распределение памяти", там есть всё что вас интересует.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 4 2007, 07:22
Сообщение #13


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(AndreyKeil @ Dec 4 2007, 01:07) *
Скачайте среду разработки "Project-AVR/ESA" московской фирмы "Фитон" http://www.phyton.ru/cp1251/renevals/avr.shtml.
После установки, там есть опция "загрузить программу для отладки". Грузить нужно в формате UBROF8. Далее, в меню есть опция "Просмотр\Распределение памяти", там есть всё что вас интересует.

С сайта производителя:
Цитата
Поддерживаются микроконтроллеры:

AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414 (external SRAM), AT90S4414 (internal SRAM only), AT90S4433, AT90S4434, AT90S8515 (external SRAM), AT90S8515 (internal SRAM only), AT90S8534, AT90S8535, ATmega103, ATmega103 (external SRAM), ATmega161, ATmega161 (external SRAM), ATmega603, ATmega603 (external SRAM), ATtiny 10, ATtiny 11, ATtiny 12, ATtiny 15, ATtiny 22, ATtiny 28.

Не думаю, что это старьё кем-то всерьёз используется (в серийных разработках). А новые МК, судя по всему, не поддерживаются.
Go to the top of the page
 
+Quote Post
AndreyKeil
сообщение Dec 4 2007, 08:59
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 96
Регистрация: 16-11-05
Из: г.Екатеринбург
Пользователь №: 10 930



Не знаю, что там говорит производитель - я не читал, но в этой оболочке поддерживаются процессоры: ATmega8,ATmega16,ATmega32,ATmega128.
Эта среда, хоть и старая, но имеет возможности сравнимые с редактором SlickEdit. Из её возможностей мне нравится то, что можно загрузить код для отладки и пройтись по коду. При этом, можно в основном коде на "С" смотреть дизассемблер. Периферию не поддерживает. Просто - ход по коду с дизассемблером.
Новые процы я научился добавлять (худо-бедно).

...ещё забыл, переменные, регистры спецфункций, локальные переменные можно менять в процессе отладки.
Go to the top of the page
 
+Quote Post
sergik_vrn
сообщение Dec 7 2007, 14:44
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Цитата(IJAR @ Nov 19 2007, 15:40) *
IAR 4.20
Можно ли из файлов создаваемых компиляторм "вытащить" список имен переменных в RAM,
их начальные адреса и формат?

прошу прощения, что вмешиваюсь, а что, нельзя запустить в самом IAR симулятор, и там в окне watch посмотреть все, что нужно?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01518 секунд с 7
ELECTRONIX ©2004-2016