Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Анализатор исходного кода для AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Sergei Frolov
Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.
=GM=
Цитата(Sergei Frolov @ Mar 13 2007, 11:32) *
Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.

Сложная задача. Например, как засечь метку в команде ijmp или переменную в st y+,r16? Или я не о том?
Sergei Frolov
С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как
label: .byte 1
то мне хочется видеть, использую ли я это имя дальше или нет.
Alex_Pol
А в любом текстовом редакторе "Поиск", "Найти дальше"?
=GM=
Цитата(Sergei Frolov @ Mar 13 2007, 12:56) *
С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как
label: .byte 1
то мне хочется видеть, использую ли я это имя дальше или нет.

А если метку закомментировать и пропустить сквозь транслятор, вроде бы он должен сказать, что такая-то метка не определена, значит, метка используется, если не ругнулся, значит - не используется.
Sergei Frolov
Цитата
А если метку закомментировать и пропустить сквозь транслятор, вроде бы он должен сказать, что такая-то метка не определена, значит, метка используется, если не ругнулся, значит - не используется.


Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.
muravei
Цитата(Sergei Frolov @ Mar 13 2007, 16:14) *
Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.

А почему бы ни написать смешную программку на ВБ, Делфи, и тд , которая получала бы весь список и сама находила невстречающиеся?
Sergei Frolov
Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

label1: .byte 1
...
lds r16, label101
; lds r16, label1

, считая, что они используются.
muravei
Цитата(Sergei Frolov @ Mar 13 2007, 16:34) *
придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

Ну это , думаю, лишне, а некоторый интеллект не помешает.
1) меткой будет все до пробела
2) можно не искать в строке после ";"
=GM=
Цитата(Sergei Frolov @ Mar 13 2007, 13:34) *
Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

label1: .byte 1
...
lds r16, label101
; lds r16, label1

, считая, что они используются.

Зачем ассемблер? И что он даст?

Напишите простой текстовый процессор. Слегонца пропускаете все символы между точкой с запятой и концом строки (CR,LF), считая это комментарием. Любые метки и переменные между (CR,LF) и двоеточием помещаете в текстовый буфер и на втором проходе ищете совпадение каждой строки из текстового буфера с текстом программы, исключая комментарии. Нет совпадения - вывод на печать или в файл...

А вот нельзя ли написать макрос для ворда? Тогда и писать ничего не надо, кроме макроса(:-).
Sergei Frolov
Да я уже понял, что как всегда, придется все делать самому. smile.gif
dxp
Цитата(Sergei Frolov @ Mar 13 2007, 19:34) *
Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

label1: .byte 1
...
lds r16, label101
; lds r16, label1

, считая, что они используются.

Что-то сложно у Вас выходит. Эта задача лекго решается написанием несложного скрипта на каком-нибуль хорошем интерпретируемом языке (я бы рекомендовал Python). Скрипт, реализующий нужную функциональность, по размеру займет примерно экран текста. На Питоне
beer_warrior
Есть такие Unix тулзы grep, sed и awk. В сущности и созданы для подобных операций.(поиск и замена регулярных выражений) Виндовские версии их существуют. Читать описание и применять.
Хотя идея с Python тоже понравилась.
muravei
Цитата(=GM= @ Mar 13 2007, 17:17) *
А вот нельзя ли написать макрос для ворда? Тогда и писать ничего не надо, кроме макроса(:-).

Можно, на ВБА.
Stariy Alex
Может эта штука чего то даст. Дизассемблер 130 кб. Киров Вам знаком.
---------------------------
Принцип работы отладчика прост: в нужном месте в отлаживаемую программу
вставляется небольшая подпрограмма вывода байта в отладчик. Передача
производится в последовательном коде по двум проводам, протокол обмена
похож на стандартный интерфейс SPI. Отладчик быстро принимает этот байт
и передает через COM порт в компьютер. Запущенная в компьютере программа
выводит его на экран, что позволяет пользователю оперативно отслеживать
содержимое нужных регистров в нужных местах программы в реальном режиме работы.
http://ra4nal.qrz.ru/main/linc.html
Stariy Alex
---
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.