|
Анализатор исходного кода для AVR, поиск неиспользуемых меток |
|
|
|
Mar 13 2007, 14:32
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 28-05-05
Из: Питер
Пользователь №: 5 495

|
Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.
|
|
|
|
|
Mar 13 2007, 15:56
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 28-05-05
Из: Питер
Пользователь №: 5 495

|
С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как label: .byte 1 то мне хочется видеть, использую ли я это имя дальше или нет.
|
|
|
|
|
Mar 13 2007, 16:08
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Sergei Frolov @ Mar 13 2007, 12:56)  С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как label: .byte 1 то мне хочется видеть, использую ли я это имя дальше или нет. А если метку закомментировать и пропустить сквозь транслятор, вроде бы он должен сказать, что такая-то метка не определена, значит, метка используется, если не ругнулся, значит - не используется.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 13 2007, 16:14
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 28-05-05
Из: Питер
Пользователь №: 5 495

|
Цитата А если метку закомментировать и пропустить сквозь транслятор, вроде бы он должен сказать, что такая-то метка не определена, значит, метка используется, если не ругнулся, значит - не используется. Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.
|
|
|
|
|
Mar 13 2007, 16:34
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 28-05-05
Из: Питер
Пользователь №: 5 495

|
Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды
label1: .byte 1 ... lds r16, label101 ; lds r16, label1
, считая, что они используются.
|
|
|
|
|
Mar 13 2007, 17:17
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Sergei Frolov @ Mar 13 2007, 13:34)  Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды
label1: .byte 1 ... lds r16, label101 ; lds r16, label1
, считая, что они используются. Зачем ассемблер? И что он даст? Напишите простой текстовый процессор. Слегонца пропускаете все символы между точкой с запятой и концом строки (CR,LF), считая это комментарием. Любые метки и переменные между (CR,LF) и двоеточием помещаете в текстовый буфер и на втором проходе ищете совпадение каждой строки из текстового буфера с текстом программы, исключая комментарии. Нет совпадения - вывод на печать или в файл... А вот нельзя ли написать макрос для ворда? Тогда и писать ничего не надо, кроме макроса(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 13 2007, 17:30
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(Sergei Frolov @ Mar 13 2007, 19:34)  Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды
label1: .byte 1 ... lds r16, label101 ; lds r16, label1
, считая, что они используются. Что-то сложно у Вас выходит. Эта задача лекго решается написанием несложного скрипта на каком-нибуль хорошем интерпретируемом языке (я бы рекомендовал Python). Скрипт, реализующий нужную функциональность, по размеру займет примерно экран текста. На Питоне
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Mar 13 2007, 18:37
|

Знающий
   
Группа: Свой
Сообщений: 736
Регистрация: 29-04-06
Из: Berlin
Пользователь №: 16 605

|
Может эта штука чего то даст. Дизассемблер 130 кб. Киров Вам знаком. --------------------------- Принцип работы отладчика прост: в нужном месте в отлаживаемую программу вставляется небольшая подпрограмма вывода байта в отладчик. Передача производится в последовательном коде по двум проводам, протокол обмена похож на стандартный интерфейс SPI. Отладчик быстро принимает этот байт и передает через COM порт в компьютер. Запущенная в компьютере программа выводит его на экран, что позволяет пользователю оперативно отслеживать содержимое нужных регистров в нужных местах программы в реальном режиме работы. http://ra4nal.qrz.ru/main/linc.html
Сообщение отредактировал Stariy Alex - Mar 13 2007, 18:45
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|