|
Список переменных проекта |
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 24)
|
Dec 7 2007, 16:39
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Dec 10 2007, 12:12
|

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

|
Цитата(Сергей Борщ @ Dec 7 2007, 19:39)  Симулятор! А вопрошавшему надо из работающего устройства через какой-то свой монитор считывать участки памяти и представлять их как реальные переменные: Именно так и предполагается. Вообще то, если хорошо поковырять файлы *.map и *.lst , то данные о переменных можно вытащить (из *.map - имена и начальные адреса, а из *.lst - их типы и структуры) правда парсинг будет достаточно сложный
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 13 2007, 08:28
|

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

|
Цитата(IJAR @ Dec 10 2007, 15:12)  Именно так и предполагается. Вообще то, если хорошо поковырять файлы *.map и *.lst , то данные о переменных можно вытащить (из *.map - имена и начальные адреса, а из *.lst - их типы и структуры) правда парсинг будет достаточно сложный что-то я, видимо, до конца не понял задачу. в исходном сообщении об этом ни слова Цитата IAR 4.20 Можно ли из файлов создаваемых компиляторм "вытащить" список имен переменных в RAM, их начальные адреса и формат? если задача еще актуальна, можно ли тогда ее уточнить? это разовая задача или типовая (то есть, нужен скрипт) ? почему информацию о структуре нельзя взять из исходных файлов?
|
|
|
|
|
Dec 13 2007, 12:38
|

Местный
  
Группа: Свой
Сообщений: 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) для чтения и их размер; далее запросы к контроллеру и далее форматный вывод на экран прочитанного из контроллера на экран.
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 13 2007, 12:51
|

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

|
Цитата(IJAR @ Dec 13 2007, 15:38)  Из исходника взять данные конечно можно, но из файлов компилятора проще, легче парсить строки, поскольку в них информация структуирована, например в .map:
[..]
получим ИМЯ, РАЗМЕР, и НАЧАЛЬНЫЙ адрес переменной, далее по имени в *.lst найдем описание структуры, парсим и ее; далее обычная прогрммная эквилибристика => делаем файл описания переменных который будет читать терминальная программа по каждому обновлению ну а далее формирование списка и размеров смежных областей RAM(EEPROM) для чтения и их размер; далее запросы к контроллеру и далее форматный вывод на экран прочитанного из контроллера на экран. в общем, я не согласен только с утверждением, что .map проще парсить - в с структура не менее структурированная, впрочем, если coff открыть не удается, то все равно без парсинга .map (или .lst) не обойтись. в остальном - Вы вроде и ответили на свой вопрос
|
|
|
|
|
Dec 14 2007, 14:32
|

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

|
Цитата(sergik_vrn @ Dec 13 2007, 15:51)  в общем, я не согласен только с утверждением, что .map проще парсить - в с структура не менее структурированная, впрочем, если coff открыть не удается, то все равно без парсинга .map (или .lst) не обойтись. в остальном - Вы вроде и ответили на свой вопрос  Согласен что наметился путь решения, хотя и довольно тернистый. Что касается coff файла, то его не удается создать, а открыть то как раз получается, например coff файл для pic процессоров вполне разбираем.
--------------------
Вяжешь - вой, а поедешь - песни пой. Между "хочу" и "можно" всегда есть дистанция
|
|
|
|
|
Dec 17 2007, 09:54
|

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

|
Цитата(Сергей Борщ @ Dec 14 2007, 18:52)  Если проект не на С++, то можно создать файл в формате IEEE-695. прошу прощения, если чего пропустил, а UBROF случайно не годится?
|
|
|
|
|
Dec 17 2007, 12:09
|

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

|
Цитата(Сергей Борщ @ Dec 17 2007, 14:04)  Если у вас есть описание этого формата, и вы готовы поделиться этой информацией - то годится. как выяснилось, перечень типов записей в UBROF это не описание формата. тогда увы
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|