Перейти к содержанию
    

Анализатор исходного кода для AVR

Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.

Сложная задача. Например, как засечь метку в команде ijmp или переменную в st y+,r16? Или я не о том?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как

label: .byte 1

то мне хочется видеть, использую ли я это имя дальше или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как

label: .byte 1

то мне хочется видеть, использую ли я это имя дальше или нет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.

А почему бы ни написать смешную программку на ВБ, Делфи, и тд , которая получала бы весь список и сама находила невстречающиеся?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

 

label1: .byte 1

...

lds r16, label101

; lds r16, label1

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

Ну это , думаю, лишне, а некоторый интеллект не помешает.

1) меткой будет все до пробела

2) можно не искать в строке после ";"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

 

label1: .byte 1

...

lds r16, label101

; lds r16, label1

 

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

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

 

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

 

А вот нельзя ли написать макрос для ворда? Тогда и писать ничего не надо, кроме макроса(:-).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды

 

label1: .byte 1

...

lds r16, label101

; lds r16, label1

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть такие Unix тулзы grep, sed и awk. В сущности и созданы для подобных операций.(поиск и замена регулярных выражений) Виндовские версии их существуют. Читать описание и применять.

Хотя идея с Python тоже понравилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот нельзя ли написать макрос для ворда? Тогда и писать ничего не надо, кроме макроса(:-).

Можно, на ВБА.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может эта штука чего то даст. Дизассемблер 130 кб. Киров Вам знаком.

---------------------------

Принцип работы отладчика прост: в нужном месте в отлаживаемую программу

вставляется небольшая подпрограмма вывода байта в отладчик. Передача

производится в последовательном коде по двум проводам, протокол обмена

похож на стандартный интерфейс SPI. Отладчик быстро принимает этот байт

и передает через COM порт в компьютер. Запущенная в компьютере программа

выводит его на экран, что позволяет пользователю оперативно отслеживать

содержимое нужных регистров в нужных местах программы в реальном режиме работы.

http://ra4nal.qrz.ru/main/linc.html

Изменено пользователем Stariy Alex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...