![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Добрый день. Захотелось тут поковыряться с профайлером. До этого необходимости в нём не было. Итак, прочитав доку по профайлеру я в мейкфайл добавил вожделенный ключик -pg. Всё скомпилировалось. Далее расчехляю профайлер:
Конечно же ничего не происходит, т.к. нет файла gmon.out. Порыскав по интернетам я обнаружил деталь, которую не заметил в доке на профайл - скомпилированную программу надо запустить и прогнать несколько раз ( ./myprogram 50). Но как это сделать во-первых под виндой, а во-вторых не исполняемый файл? Я понимаю, что что-то ещё упускаю и говорю глупости, но никак не могу понять что ![]() В общем подскажите - как жить счастливо? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Очень и очень сомнительная перспектива по профилированию чего бы то ни было на железном AVR
![]() Только под симуляторами ![]() Можно посмотреть, что там в newlib'е для avr написали в mcount (эту функцию вставляет компилятор для профилирования) |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
xvr, я вообще даже и не думал профилировать на реальном железе
![]() А как? ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Скачал (не поленился) avr-libc. Никаких упоминаний профилирующих функций там не нашел (вообще!)
Как оно собралось с -pg не очень представляю Добавлено через 1 минуту и 27 секунд А можно какой нибудь откомпилированный файлик (с -pg и -S) ? |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Откомпилил с ключами:
Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
От профайлера обраружены счетчики в сегмента данных, с которыми никто не работает
![]()
Резюме - профайлер не работоспособен, хотя до конца из сорцов компилятора и не вычесан ![]() А avr-gprof вообще фикция. |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
![]() xvr, а ты знаешь ещё какие-нибудь средства оценки времени выполнения программы? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Они могут быть вообще не в курсе - ну собралось там что то, и фиг с ним ![]()
Не задавался таким вопросом (применительно к МК). Наверное можно в симуляторе что то посчитать, ну и на реальной железке померять (если найдется свободная нога у процессора - вывести туда 1 в начале куска кода и 0 в конце. Дальше осциллограф ![]() |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
![]() Я на самом деле хотел заморочится с профайлером из-за того, что думал одно из прерываний у меня выполняется слишком долго, из-за чего следующее возникает когда предыдущее ещё не отработало. В симуляторе такое воспроизвести сложнее, а для метода с осцильником мне не хватает второго щупа (что бы остлеживать и возникновение прерывания, и длительность выполнения обработчика) ![]() ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Для этого достаточно одного щупа. В начале обработчика взводишь ногу в 1, в конце сбрасываешь в 0. Дальше смотришь осциллографом скважность. Если она подползает к 100%, то что то в прерывании пора чинить ![]()
Ну вот, а так хотелось попрофилировать ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |