Цитата(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) для чтения и их размер;
далее запросы к контроллеру и далее форматный
вывод на экран прочитанного из контроллера на экран.
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция