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

 
 
> Оперативно отключать/включать 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
 
Start new topic
Ответов
smac
сообщение Jun 2 2008, 19:10
Сообщение #2


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

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



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

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


Участник
*

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Участник
Сообщений: 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
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 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
Сообщение #6


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

Группа: Участник
Сообщений: 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



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

 


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


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