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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Список переменных проекта
Сергей Борщ
сообщение Dec 7 2007, 16:39
Сообщение #16


Гуру
******

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



Цитата(sergik_vrn @ Dec 7 2007, 16:44) *
в самом IAR симулятор, и там в окне watch посмотреть все, что нужно?
Симулятор! А вопрошавшему надо из работающего устройства через какой-то свой монитор считывать участки памяти и представлять их как реальные переменные:
Цитата
Идея то такая: на экране список переменных с их форматом, отметил галочками интеремующие - получил список с текущими значениями, нажал кнопку "Обновить" новые текущие значения.


--------------------
На любой вопрос даю любой ответ
"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 10 2007, 12:12
Сообщение #17


Местный
***

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



Цитата(Сергей Борщ @ Dec 7 2007, 19:39) *
Симулятор! А вопрошавшему надо из работающего устройства через какой-то свой монитор считывать участки памяти и представлять их как реальные переменные:


Именно так и предполагается.
Вообще то, если хорошо поковырять файлы *.map и *.lst , то данные о переменных
можно вытащить (из *.map - имена и начальные адреса, а из *.lst - их типы и структуры)
правда парсинг будет достаточно сложный


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


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

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



Цитата(IJAR @ Dec 10 2007, 15:12) *
Именно так и предполагается.
Вообще то, если хорошо поковырять файлы *.map и *.lst , то данные о переменных
можно вытащить (из *.map - имена и начальные адреса, а из *.lst - их типы и структуры)
правда парсинг будет достаточно сложный

что-то я, видимо, до конца не понял задачу. в исходном сообщении об этом ни слова

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

если задача еще актуальна, можно ли тогда ее уточнить? это разовая задача или типовая (то есть, нужен скрипт) ? почему информацию о структуре нельзя взять из исходных файлов?
Go to the top of the page
 
+Quote Post
IJAR
сообщение Dec 13 2007, 12:38
Сообщение #19


Местный
***

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



Цитата(sergik_vrn @ Dec 13 2007, 11:28) *
что-то я, видимо, до конца не понял задачу. в исходном сообщении об этом ни слова
если задача еще актуальна, можно ли тогда ее уточнить? это разовая задача или типовая (то есть, нужен скрипт) ? почему информацию о структуре нельзя взять из исходных файлов?


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

Код
ABSOLUTE
  Relative segment, address: DATA 0000010C - 0000010D (0x2 bytes), align: 0
  Segment part 14. ROOT.
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           bi_Wector_USER          0000010C

    -------------------------------------------------------------------------
NEAR_N
  Relative segment, address: DATA 00000182 - 00000195 (0x14 bytes), align: 0
  Segment part 25.            Intra module refs:   main
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           l_b                     00000182
    -------------------------------------------------------------------------
CODE
  Relative segment, address: CODE 0001E0D8 - 0001E0E3 (0xc bytes), align: 1
  Segment part 26.
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           __low_level_init        0001E0D8        ?call_low_level_init (?C_STARTUP)
               stack 1 = 00000000 ( 00000002 )
    -------------------------------------------------------------------------

Понятно, что строку CODE и все что далее до строки
"--------------------------------"
можно пропустить, а вот NEAR_N или ABSOLUTE - заслуживают внимания - получим ИМЯ, РАЗМЕР,
и НАЧАЛЬНЫЙ адрес переменной, далее по имени в *.lst найдем описание структуры, парсим и ее;
далее обычная прогрммная эквилибристика => делаем файл описания переменных
который будет читать терминальная программа по каждому обновлению ну а далее формирование
списка и размеров смежных областей RAM(EEPROM) для чтения и их размер;
далее запросы к контроллеру и далее форматный
вывод на экран прочитанного из контроллера на экран.


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


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

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



Цитата(IJAR @ Dec 13 2007, 15:38) *
Из исходника взять данные конечно можно, но из файлов компилятора проще, легче парсить
строки, поскольку в них информация структуирована, например в .map:

[..]

получим ИМЯ, РАЗМЕР,
и НАЧАЛЬНЫЙ адрес переменной, далее по имени в *.lst найдем описание структуры, парсим и ее;
далее обычная прогрммная эквилибристика => делаем файл описания переменных
который будет читать терминальная программа по каждому обновлению ну а далее формирование
списка и размеров смежных областей RAM(EEPROM) для чтения и их размер;
далее запросы к контроллеру и далее форматный
вывод на экран прочитанного из контроллера на экран.

в общем, я не согласен только с утверждением, что .map проще парсить - в с структура не менее структурированная, впрочем, если coff открыть не удается, то все равно без парсинга .map (или .lst) не обойтись. в остальном - Вы вроде и ответили на свой вопрос smile.gif
Go to the top of the page
 
+Quote Post
IJAR
сообщение Dec 14 2007, 14:32
Сообщение #21


Местный
***

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



Цитата(sergik_vrn @ Dec 13 2007, 15:51) *
в общем, я не согласен только с утверждением, что .map проще парсить - в с структура не менее структурированная, впрочем, если coff открыть не удается, то все равно без парсинга .map (или .lst) не обойтись. в остальном - Вы вроде и ответили на свой вопрос smile.gif


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


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


Гуру
******

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



Цитата(IJAR @ Dec 14 2007, 16:32) *
Что касается coff файла, то его
не удается создать,
Если проект не на С++, то можно создать файл в формате IEEE-695.


--------------------
На любой вопрос даю любой ответ
"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
sergik_vrn
сообщение Dec 17 2007, 09:54
Сообщение #23


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

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



Цитата(Сергей Борщ @ Dec 14 2007, 18:52) *
Если проект не на С++, то можно создать файл в формате IEEE-695.

прошу прощения, если чего пропустил, а UBROF случайно не годится?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 17 2007, 11:04
Сообщение #24


Гуру
******

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



Цитата(sergik_vrn @ Dec 17 2007, 11:54) *
прошу прощения, если чего пропустил, а UBROF случайно не годится?
Если у вас есть описание этого формата, и вы готовы поделиться этой информацией - то годится.


--------------------
На любой вопрос даю любой ответ
"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
sergik_vrn
сообщение Dec 17 2007, 12:09
Сообщение #25


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

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



Цитата(Сергей Борщ @ Dec 17 2007, 14:04) *
Если у вас есть описание этого формата, и вы готовы поделиться этой информацией - то годится.

как выяснилось, перечень типов записей в UBROF это не описание формата. тогда увы
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 - 10:12
Рейтинг@Mail.ru


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