Mon, 27 Oct 2003 01:53:59 +0300 Alex Mogilnikov wrote to Harry Zhurov:
AM> Собрал я и simulavr.
HZ>>> После этого оно, вроде, как-то работает, но криво: регистры и HZ>>> память (а также local и watch) не отображают значений,
AM> ? Hабросал тестовую программку, запустил симулятор, запустил отладчик.
AM> - значения глобальных переменных показывает; AM> - значения автоматических переменных показывает; AM> - значения регистров показывает; AM> - содержимое памяти программы показывает; AM> - содержимое памяти данных показывает; AM> - содержимое eeprom показывает; AM> - breakpoints работают; AM> - watchpoints работают; AM> - машинный код (дизассемблированный) показывается; AM> - run/cont/next/step/nexti работают.
AM> Подозреваю, что периферия симулируется не очень здорово, я это не AM> проверял, ну так про этот симулятор так и говорится: "This program is still AM> under development and is not ready for production use."
HZ>>> программа идет как-то странно...
AM> У меня программа очень простая, но идет как полжено (может ты AM> компилировал с включенной оптимизацией? Тогда это нормально. Для отладки AM> рекомендуется -O0).
Попробовал и так - без разницы.
AM> Похоже, или у тебя что-то криво собрано,
Это я не сам собирал (не занимаюсь я такими делами, да и нет у меня окружения соответствующего для этого), ибо не работаю с GCC.
AM> или ты просто не умеешь это готовить (не прочитал доки)...
А... Интересно, как это можно запустить, чтобы работало криво? Понимаю, либо смог запустить (и работает), либо не смог. А так, чтоб запустилось, но криво... :-\
Ну, научи убогого, что не так делаю. А делаю так:
simulavr -d atmega16 -g
На это оно выдает:
Simulating a atmega16 device.
MESSAGE: file ../../src/decoder.c: line 3517: generating opcode lookup_table Waiting on port 1212 for gdb client to connect...
Дальше запускаю
avr-insight.exe Exe\target.elf
(да, я не gdb использую, а insight, бо не понимаю толка в тонких извращениях; но должно быть монохренственно - это ведь, afaik, одно и то же, только UI разный).
Там указываю GDB Server TCP/IP, порт 1212, и оно, вроде пошло. Шаги выполняются, но функции не вызываются (команда call проходится, как будто это 'nop'), окошки с регистрами, памятью и прочим не обновляются (нули там), только PC изменяется. И почти на каждую команду в окне драйвера выдается такое:
WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff WARNING: file ../../src/decoder.c: line 3541: Unknown opcode: 0xffff
AM> Как обычно, версии того что я тестировал:
AM> alx2% simulavr -v
AM> simulavr version 0.1.1 AM> Copyright 2001, 2002 Theodore A. Roth.
I:\CAD\GCC\AVR\bin>simulavr.exe -v
simulavr version 0.1.1.20030912 Copyright 2001, 2002, 2003 Theodore A. Roth.
AM> alx2% avr-gdb --version AM> GNU gdb 5.3 AM> Copyright 2002 Free Software Foundation, Inc.
I:\CAD\GCC\AVR\bin>avr-insight.exe -v GNU gdb 5.3.91
...so long!
### "Hello World!" 17 errors, 31 warnings.