|
|
  |
Оперативно отключать/включать warming'и возможно ?, в AVRstudio |
|
|
|
May 31 2008, 07:49
|

Участник

Группа: Свой
Сообщений: 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 и всё такое...
|
|
|
|
|
Jun 2 2008, 08:23
|

Участник

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

|
Цитата(ILYAUL @ May 31 2008, 13:45)  В режиме DEBUG - правая клавиша мыши по полю Message - затем по галочке , но уже левой. Да , прибудет с Вами сила...  У меня это почему-то _вообще_ не работает и на рабочем, и на домашнем компе. Кроме того - насколько я понимаю, это отключает показ всех варнингов, а мне надо отключить некоторые. Были мысли добавлять в строку лишний байт по необходимости, но я не нашел способа получить численное выражение длины строки (со STRLEN у меня не задалось почему-то)...
|
|
|
|
|
Jun 2 2008, 11:47
|

Профессионал
    
Группа: Свой
Сообщений: 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 не будет Собственно за Вас это делает любой отладчик , но при этом предупреждает Вас , а при программировании в МК - лишний байт выбрасывается ( уточню)
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jun 2 2008, 13:54
|

Участник

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

|
Цитата(ILYAUL @ Jun 2 2008, 15:47)  Вообще-то существует такое правило , если число чисел при записи в строке не чётное то Вы просто добавляете $00
.db 01,01,04,00,05,00,$FF - нужные значения + ,00 и message не будет
Собственно за Вас это делает любой отладчик , но при этом предупреждает Вас , а при программировании в МК - лишний байт выбрасывается ( уточню) Да это я прекрасно понимаю и об этом и писал в исходном. :-) Дело в том, что оч не хочется каждую мессагу (=строку .db) руками подгонять под четное количество байт...
|
|
|
|
|
Jun 3 2008, 07:22
|

Участник

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

|
Цитата(smac @ Jun 2 2008, 23:10)  Есть вариант переписать макрос с проверкой параметра @0 на четность, и в случае нечетности добавлять байт. Геморно и маразматично, зато варнингов не будет  Щас нет под рукой ни студии, ни доков, но если подождете до завтрашнего вечера - попробую написать Я пробовал - что-то никак... STRLEN не работает с @0, ей нужно именно строку в первозданном виде. Но если у Вас получится - респект. Жжжжду. :-) Цитата(ILYAUL @ Jun 2 2008, 23:18)  А зачем ? Studio сама его добавляет - и не работе не сказывается А зачем - это я в исходном писал, ага. Достаточно прочитать два-три раза.
|
|
|
|
|
Jun 3 2008, 17:52
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003

|
Цитата(Vlad219i @ Jun 3 2008, 11:22)  Я пробовал - что-то никак... STRLEN не работает с @0, ей нужно именно строку в первозданном виде. Но если у Вас получится - респект. Жжжжду. :-) 2 Vlad219i После внимательного прочтения темы понял, что @0 строковый параметр, поэтому задача сильно усложняется, да и времени маловато. Но буду пытаться по возможности. Если тема еще актуальна дайте знать.
|
|
|
|
|
Jun 4 2008, 08:01
|

Участник

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

|
Цитата(smac @ Jun 3 2008, 21:52)  2 Vlad219i После внимательного прочтения темы понял, что @0 строковый параметр, поэтому задача сильно усложняется, да и времени маловато. Но буду пытаться по возможности. Если тема еще актуальна дайте знать. Да, @0 - это строка. Тема для меня актуальна уже давно, периодически делал подходы - никак... Я не настаиваю, но если вдруг... :-)
|
|
|
|
|
Jun 4 2008, 09:41
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jun 4 2008, 12: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.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|