Предупреждение компилятора
|
|
demanik |
Дата: Ср, 17.12.2008, 19:28 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Что значит сообщение: WARNING:WORD Variable 'tmp_1'Crossing Bank Boundary ACCESS и чем оно грозит?
Попробуй всё и вся... может быть пол...
|
|
|
|
ADMIN |
Дата: Чт, 18.12.2008, 16:33 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Переменная типа Word пересекает границы банка - дословно, но поскольку это не ошибка, а предупреждение то ответственность за правильность работы целиком и полностью лежит на разработчике. Просто в реальном устройстве могут при определенных условиях возникать казусы и различные непредвиденные ситуации. Так что лучше попробовать оптимизировать программу
|
|
|
|
demanik |
Дата: Чт, 18.12.2008, 16:38 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (basicpic) Так что лучше попробовать оптимизировать программу А каким образом
Попробуй всё и вся... может быть пол...
|
|
|
|
ADMIN |
Дата: Чт, 18.12.2008, 16:49 | Сообщение # 4 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Ну это я могу сказать лишь посмотрев код. Может что и можно поменять. Какие-то одинаковые функции объединить, использовать одну переменную для нескольких задач, например. Может что-то проще можно написать.
|
|
|
|
demanik |
Дата: Чт, 18.12.2008, 17:01 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (basicpic) Может что-то проще можно написать В данной программе на 18F2520 использовано около 70% програмной памяти и около 15% памяти переменных. У меня уже раз была такаяже ситуация но я наоборот увеличил программу и добавил еще около 20 разных переменных и сообщение ищезло. В данной программе использовано около 70% програмной памяти и около 15% памяти переменных.
Попробуй всё и вся... может быть пол...
|
|
|
|
ADMIN |
Дата: Чт, 18.12.2008, 17:04 | Сообщение # 6 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Ну вот, может подпрограмма использующая эту переменную, использует не одну страницу памяти. Может и добавить надо что-то.
|
|
|
|
retas |
Дата: Ср, 16.12.2009, 13:04 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
У меня тоже попадалось такое сообщение - я просто перенёс такую переменную в начало описаний переменных.
|
|
|
|
ADMIN |
Дата: Ср, 16.12.2009, 16:45 | Сообщение # 8 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Это, кстати, может быть ошибкой компилятора, который, как я заметил, может из-за одного пробела писать ошибку.
|
|
|
|
retas |
Дата: Ср, 16.12.2009, 22:09 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
А не подскажете конкретнее, о каких пробелах и в каких местах реч?
|
|
|
|
ADMIN |
Дата: Чт, 17.12.2009, 01:21 | Сообщение # 10 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Дело в том, что когда программа во взломанном компиляторе имеет развернутые комментарии, то иногда он писал ошибку синтаксиса. После разных манипуляций с укорочением и иногда удалением комментариев, перемещением строк кода(в том числе удалением лишних пробелов после комментариев или пустых строк(пробелов) между строками кода) все начинало работать.
|
|
|
|
retas |
Дата: Вт, 22.12.2009, 19:04 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Уважаемый, ADMIN! * У меня подобных проблем (из за пробелов, коментариев) не попадалось, но за то с прерываниями - хоть отбавляй. Быть может вы заметили какую то законамерность и можете подсказать как не писать, хотя я сомневаюсь что написанное вами будет одинакого компилиться на другом компе. У меня один проект, скажем, нормально компилился, а через несколько недель - бардак, компилятор даже придумал что я не описал переменную в асм файле, хотя на асм мною не было написано ни строчки. Я, при случае, всем хвалил Протон и направлял сюда на сайт а сам уж, было, подумывал плюнуть на него. Ну и если он у меня начнёт придираться к манере а не к сути написанного... А не пробовали ли при ваших проблемах, скажем, ту же прогру скомпилить для другого типа МК или же попробовать обнаружить связь именно с какими то операторами и т.п. *С какой версией Протона у вас это происходит? *Если мы используем подлеченный какой то таблеткой Протон, значит ли это, что другого лекарства не изобретено. Не может ли быть, что применяемое нами не одно? Вот нашёл такое http://www.crackserialcodes.com/crack-p....en.html .
|
|
|
|
Dmitry |
Дата: Вт, 22.12.2009, 23:25 | Сообщение # 12 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Вообще-то это имеется ввиду, что именно переменная (а не подпрограмма) пересекла границу банка памяти ДАННЫХ. Т.е. переменных набралось более 256 байт и вот как раз этот WORD попал так, что его младший байт еще в нулевой странице, а страший уже в первой. О чем компилятор радостно и сообщает. Лечится вставкой ненужной переменной размера в 1 байт перед этой WORD. Почему компилятор не делает это сам - для меня загадка. В PIC Basic Pro такой проблемы не замечал. Цитата с мануала: "Problems may also arise if a word or dword variable crosses a BANK boundary. If this happens, a warning message will be displayed in the error window. Most of the time, this will not cause any problems, however, to err on the side of caution, try and ensure that word or dword type variables are fully inside a BANK. This is easily accomplished by placing a dummy byte variable before the offending word or dword type variable, or relocating the offending variable within the list of Dim statements. "
|
|
|
|
ADMIN |
Дата: Ср, 23.12.2009, 15:04 | Сообщение # 13 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Я не искал закономерности, просто отметил этот факт и всегда методом исключений находил место в программе(точнее, в комментариях!), из-за которого компилятор вырисовывал нелепые ошибки. Конечно, если пользоваться офф. версией, как Demanik, то, возможно, таких проблем не было бы. Придет время, и у меня будет офф. версия.
|
|
|
|
ADMIN |
Дата: Ср, 23.12.2009, 15:07 | Сообщение # 14 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Quote (Dmitry) Вообще-то это имеется ввиду, что именно переменная (а не подпрограмма) пересекла границу банка памяти ДАННЫХ. Вы правы. Quote (Dmitry) Почему компилятор не делает это сам - для меня загадка. В PIC Basic Pro такой проблемы не замечал. Не факт, что при прочих равных условиях в PBP такого не будет, я думаю.
|
|
|
|
contra |
Дата: Вс, 04.04.2010, 10:03 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
Всем привет! При попытке компиляции появляется: Error: USB Key not found - что зто значит?
|
|
|
|