реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Анализатор исходного кода для AVR, поиск неиспользуемых меток
Sergei Frolov
сообщение Mar 13 2007, 14:32
Сообщение #1


Участник
*

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



Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 13 2007, 15:54
Сообщение #2


Ambidexter
*****

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



Цитата(Sergei Frolov @ Mar 13 2007, 11:32) *
Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.

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


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Sergei Frolov
сообщение Mar 13 2007, 15:56
Сообщение #3


Участник
*

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



С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как
label: .byte 1
то мне хочется видеть, использую ли я это имя дальше или нет.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Mar 13 2007, 16:06
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



А в любом текстовом редакторе "Поиск", "Найти дальше"?
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 13 2007, 16:08
Сообщение #5


Ambidexter
*****

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



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

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


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Sergei Frolov
сообщение Mar 13 2007, 16:14
Сообщение #6


Участник
*

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



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


Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 13 2007, 16:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



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

А почему бы ни написать смешную программку на ВБ, Делфи, и тд , которая получала бы весь список и сама находила невстречающиеся?
Go to the top of the page
 
+Quote Post
Sergei Frolov
сообщение Mar 13 2007, 16:34
Сообщение #8


Участник
*

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



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

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

, считая, что они используются.
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 13 2007, 16:53
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



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

Ну это , думаю, лишне, а некоторый интеллект не помешает.
1) меткой будет все до пробела
2) можно не искать в строке после ";"
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 13 2007, 17:17
Сообщение #10


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) и двоеточием помещаете в текстовый буфер и на втором проходе ищете совпадение каждой строки из текстового буфера с текстом программы, исключая комментарии. Нет совпадения - вывод на печать или в файл...

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


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Sergei Frolov
сообщение Mar 13 2007, 17:29
Сообщение #11


Участник
*

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



Да я уже понял, что как всегда, придется все делать самому. smile.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Mar 13 2007, 17:30
Сообщение #12


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). Скрипт, реализующий нужную функциональность, по размеру займет примерно экран текста. На Питоне


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 13 2007, 17:45
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



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


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 13 2007, 18:15
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(=GM= @ Mar 13 2007, 17:17) *
А вот нельзя ли написать макрос для ворда? Тогда и писать ничего не надо, кроме макроса(:-).

Можно, на ВБА.
Go to the top of the page
 
+Quote Post
Stariy Alex
сообщение Mar 13 2007, 18:37
Сообщение #15


Знающий
****

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



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

Сообщение отредактировал Stariy Alex - Mar 13 2007, 18:45
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016