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

 
 
 
Reply to this topicStart new topic
> Оперативно отключать/включать warming'и возможно ?, в AVRstudio
Vlad219i
сообщение May 31 2008, 07:49
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



В проекте есть конструкции типа:
Код
.macro    msearchinrxbuffer
    ldi    zh, high(string<<1)
    ldi    zl, low(string<<1)
    rcall    searchinrxbuffer
    rjmp    theend
string:
    .db    @0, $00
theend:
.endmacro


Это к примеру, а в общем случае - просто строки .db произвольной длины в .cseg.
При компиляции, если строка имеет нечетное количество символов, avrasm вывешивает warning ".cseg .db misalignment - padding zero byte" - ну то есть ведет себя, как положено. Но меня это немножко не устраивает, хочется вот именно этот warning отключить, отвлекает он (их несколько десятков, на самом деле).
Делал несколько подходов с разных сторон - что-то никак, но надежда теплится... :-)
Это вообще возможно, как думаете ?
Отключение вообще всех сообщений (-v0) - типичное не то.

Да - студия свежая, конечно. Avrasm2 и всё такое...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 31 2008, 09:45
Сообщение #2


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Vlad219i @ May 31 2008, 11:49) *
Делал несколько подходов с разных сторон - что-то никак, но надежда теплится... :-)
Это вообще возможно, как думаете ?
Отключение вообще всех сообщений (-v0) - типичное не то.

Да - студия свежая, конечно. Avrasm2 и всё такое...

В режиме DEBUG - правая клавиша мыши по полю Message - затем по галочке , но уже левой.

Да , прибудет с Вами сила... wink.gif


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Jun 2 2008, 08:23
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(ILYAUL @ May 31 2008, 13:45) *
В режиме DEBUG - правая клавиша мыши по полю Message - затем по галочке , но уже левой.

Да , прибудет с Вами сила... wink.gif


У меня это почему-то _вообще_ не работает и на рабочем, и на домашнем компе. Кроме того - насколько я понимаю, это отключает показ всех варнингов, а мне надо отключить некоторые.
Были мысли добавлять в строку лишний байт по необходимости, но я не нашел способа получить численное выражение длины строки (со STRLEN у меня не задалось почему-то)...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jun 2 2008, 11:47
Сообщение #4


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Vlad219i @ Jun 2 2008, 12:23) *
У меня это почему-то _вообще_ не работает и на рабочем, и на домашнем компе. Кроме того - насколько я понимаю, это отключает показ всех варнингов, а мне надо отключить некоторые.
Были мысли добавлять в строку лишний байт по необходимости, но я не нашел способа получить численное выражение длины строки (со STRLEN у меня не задалось почему-то)...


Вообще-то существует такое правило , если число чисел при записи в строке не чётное то Вы просто добавляете $00

.db 01,01,04,00,05,00,$FF - нужные значения + ,00 и message не будет

Собственно за Вас это делает любой отладчик , но при этом предупреждает Вас , а при программировании в МК - лишний байт выбрасывается ( уточню)


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Jun 2 2008, 13:54
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(ILYAUL @ Jun 2 2008, 15:47) *
Вообще-то существует такое правило , если число чисел при записи в строке не чётное то Вы просто добавляете $00

.db 01,01,04,00,05,00,$FF - нужные значения + ,00 и message не будет

Собственно за Вас это делает любой отладчик , но при этом предупреждает Вас , а при программировании в МК - лишний байт выбрасывается ( уточню)


Да это я прекрасно понимаю и об этом и писал в исходном. :-)
Дело в том, что оч не хочется каждую мессагу (=строку .db) руками подгонять под четное количество байт...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jun 2 2008, 18:49
Сообщение #6


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Vlad219i @ Jun 2 2008, 17:54) *
Да это я прекрасно понимаю и об этом и писал в исходном. :-)
Дело в том, что оч не хочется каждую мессагу (=строку .db) руками подгонять под четное количество байт...

Тогда остаётся единственный путь - переписать заново программу AVRSTUDIO


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
smac
сообщение Jun 2 2008, 19:10
Сообщение #7


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

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Есть вариант переписать макрос с проверкой параметра @0 на четность, и в случае нечетности добавлять байт. Геморно и маразматично, зато варнингов не будет smile.gif
Щас нет под рукой ни студии, ни доков, но если подождете до завтрашнего вечера - попробую написать

Сообщение отредактировал smac - Jun 2 2008, 19:12
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jun 2 2008, 19:18
Сообщение #8


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(smac @ Jun 2 2008, 23:10) *
Есть вариант переписать макрос с проверкой параметра @0 на четность, и в случае нечетности добавлять байт. Геморно и маразматично, зато варнингов не будет smile.gif
Щас нет под рукой ни студии, ни доков, но если подождете до завтрашнего вечера - попробую написать

А зачем ? Studio сама его добавляет - и не работе не сказывается


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Jun 3 2008, 07:22
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(smac @ Jun 2 2008, 23:10) *
Есть вариант переписать макрос с проверкой параметра @0 на четность, и в случае нечетности добавлять байт. Геморно и маразматично, зато варнингов не будет smile.gif
Щас нет под рукой ни студии, ни доков, но если подождете до завтрашнего вечера - попробую написать


Я пробовал - что-то никак... STRLEN не работает с @0, ей нужно именно строку в первозданном виде. Но если у Вас получится - респект. Жжжжду. :-)

Цитата(ILYAUL @ Jun 2 2008, 23:18) *
А зачем ? Studio сама его добавляет - и не работе не сказывается


А зачем - это я в исходном писал, ага. Достаточно прочитать два-три раза.
Go to the top of the page
 
+Quote Post
smac
сообщение Jun 3 2008, 17:52
Сообщение #10


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

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(Vlad219i @ Jun 3 2008, 11:22) *
Я пробовал - что-то никак... STRLEN не работает с @0, ей нужно именно строку в первозданном виде. Но если у Вас получится - респект. Жжжжду. :-)

2 Vlad219i
После внимательного прочтения темы понял, что @0 строковый параметр, поэтому задача сильно усложняется, да и времени маловато. Но буду пытаться по возможности. Если тема еще актуальна дайте знать.
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Jun 4 2008, 08:01
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(smac @ Jun 3 2008, 21:52) *
2 Vlad219i
После внимательного прочтения темы понял, что @0 строковый параметр, поэтому задача сильно усложняется, да и времени маловато. Но буду пытаться по возможности. Если тема еще актуальна дайте знать.


Да, @0 - это строка.
Тема для меня актуальна уже давно, периодически делал подходы - никак...
Я не настаиваю, но если вдруг... :-)
Go to the top of the page
 
+Quote Post
smac
сообщение Jun 4 2008, 09:41
Сообщение #12


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

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



Цитата(Vlad219i @ Jun 4 2008, 12:01) *
....
Тема для меня актуальна уже давно, ....


Код
.macro    msearchinrxbuffer
    ldi    zh, high(string<<1)
    ldi    zl, low(string<<1)
    rcall    searchinrxbuffer
    rjmp    theend
string:
    .if strlen(@0)%2==1
        .db    @0, $00
    .else
        .db    @0, $00, $00
    .endif
theend:
.endmacro


У метя вот этот макрос работал, однако одно но, при использовании макроса параметр а0 необходимо заключать в кавычки, иначе работать не будет. Например
Код
msearchinrxbuffer "abcdef"

P. S. У меня АВРСтудия 4.13 билд 528
Go to the top of the page
 
+Quote Post
Vlad219i
сообщение Jun 4 2008, 12:13
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 13-03-06
Из: Москва
Пользователь №: 15 204



Цитата(smac @ Jun 4 2008, 13:41) *
У метя вот этот макрос работал, однако одно но, при использовании макроса параметр а0 необходимо заключать в кавычки, иначе работать не будет.


Кудесник ! Огромное спасибо - всё великолепно прижилось.

У меня похожая конструкция жить не хотела... Правда - пробовал ее раньше, на одном из предыдущих релизов студии.

Цитата(smac @ Jun 4 2008, 13:41) *
P. S. У меня АВРСтудия 4.13 билд 528


4.14 b589.
Go to the top of the page
 
+Quote Post

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

 


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


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