|
Список переменных проекта |
|
|
|
Nov 19 2007, 14:58
|

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

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

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

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

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

|
Цитата(-SD- @ Nov 27 2007, 09:33)  Можно воспользоваться Proteus'ом, если ваш контроллер им поддерживается. Создать в нём простенький проект (один контроллер вставить без всякой обвязки). Сгенерить в IAR'е coff формат и подключить его к процессору в проекте Proteus'а. Запустить выполнение по шагам и там выведится список всех глобальных переменных с их адресами. Спасибо за совет, но мне как раз нужно обойтись без дополнительных средств. У меня bootLoader объединен с просмоторщиком ресурсов контроллера и все это завязано на внешний терминал PC. Все это работает в фоне основной программы. Поэтому фокус с coff файлом наиболее подходит.
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Nov 28 2007, 04:32
|
Участник

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

|
Цитата(IJAR @ Nov 27 2007, 14:34)  Поэтому фокус с coff файлом наиболее подходит. В принципе это одно и тоже, т.к. Proteus просто "расшифрует" coff файл и покажет это на экране. При этом не надо будет разбираться с coff форматом. Но если не имели дело с Proteus'ом, надо будет его качать, устанавливать, чуть разобраться в нём. Не известно что легче.
|
|
|
|
|
Dec 3 2007, 09:08
|

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

|
Цитата(-SD- @ Nov 28 2007, 08:32)  В принципе это одно и тоже, т.к. Proteus просто "расшифрует" coff файл и покажет это на экране. При этом не надо будет разбираться с coff форматом. Но если не имели дело с Proteus'ом, надо будет его качать, устанавливать, чуть разобраться в нём. Не известно что легче.  Ну и что с того что на экран можно будет вызвать адреса переменных. Далее лазить по RAM в разные места? Хорошо если 1-2 переменных типа char, а обычно их больше. Идея то такая: на экране список переменных с их форматом, отметил галочками интеремующие - получил список с текущими значениями, нажал кнопку "Обновить" новые текущие значения. Правда с Cof файлом оказались проблемы: не хочет IAR 4.20 генерить его для ATmega процессоров а UBROF 8 пака не нащел описание формата. Так что пока идея в полном развале.
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 3 2007, 10:04
|

Местный
  
Группа: Свой
Сообщений: 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)
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 3 2007, 23:07
|
Частый гость
 
Группа: Свой
Сообщений: 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. Далее, в меню есть опция "Просмотр\Распределение памяти", там есть всё что вас интересует.
|
|
|
|
|
Dec 4 2007, 07:22
|

Шаман
     
Группа: Модераторы
Сообщений: 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. Не думаю, что это старьё кем-то всерьёз используется (в серийных разработках). А новые МК, судя по всему, не поддерживаются.
|
|
|
|
|
Dec 4 2007, 08:59
|
Частый гость
 
Группа: Свой
Сообщений: 96
Регистрация: 16-11-05
Из: г.Екатеринбург
Пользователь №: 10 930

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

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

|
Цитата(IJAR @ Nov 19 2007, 15:40)  IAR 4.20 Можно ли из файлов создаваемых компиляторм "вытащить" список имен переменных в RAM, их начальные адреса и формат? прошу прощения, что вмешиваюсь, а что, нельзя запустить в самом IAR симулятор, и там в окне watch посмотреть все, что нужно?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|