Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Предупреждение компилятора
Предупреждение компилятора
demanik Дата: Ср, 17.12.2008, 19:28  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Что значит сообщение:

WARNING:WORD Variable 'tmp_1'Crossing Bank Boundary ACCESS

и чем оно грозит?


Попробуй всё и вся... может быть пол...

ЯНДЕКС Дата: 17.12.2008
ADMIN Дата: Чт, 18.12.2008, 16:33  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Переменная типа Word пересекает границы банка - дословно, но поскольку это не ошибка, а предупреждение то ответственность за правильность работы целиком и полностью лежит на разработчике. Просто в реальном устройстве могут при определенных условиях возникать казусы и различные непредвиденные ситуации. Так что лучше попробовать оптимизировать программу
demanik Дата: Чт, 18.12.2008, 16:38  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (basicpic)
Так что лучше попробовать оптимизировать программу

А каким образом


Попробуй всё и вся... может быть пол...

ADMIN Дата: Чт, 18.12.2008, 16:49  |                                                                                                                Сообщение # 4
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Ну это я могу сказать лишь посмотрев код. Может что и можно поменять. Какие-то одинаковые функции объединить, использовать одну переменную для нескольких задач, например. Может что-то проще можно написать.
demanik Дата: Чт, 18.12.2008, 17:01  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (basicpic)
Может что-то проще можно написать

В данной программе на 18F2520 использовано около 70% програмной памяти и около 15% памяти переменных.

У меня уже раз была такаяже ситуация но я наоборот увеличил программу и добавил еще около 20 разных переменных и сообщение ищезло.
В данной программе использовано около 70% програмной памяти и около 15% памяти переменных.


Попробуй всё и вся... может быть пол...

ADMIN Дата: Чт, 18.12.2008, 17:04  |                                                                                                                Сообщение # 6
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Ну вот, может подпрограмма использующая эту переменную, использует не одну страницу памяти. Может и добавить надо что-то.
retas Дата: Ср, 16.12.2009, 13:04  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

У меня тоже попадалось такое сообщение - я просто перенёс такую переменную в начало описаний переменных.
ADMIN Дата: Ср, 16.12.2009, 16:45  |                                                                                                                Сообщение # 8
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Это, кстати, может быть ошибкой компилятора, который, как я заметил, может из-за одного пробела писать ошибку.
retas Дата: Ср, 16.12.2009, 22:09  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

А не подскажете конкретнее, о каких пробелах и в каких местах реч?
ADMIN Дата: Чт, 17.12.2009, 01:21  |                                                                                                                Сообщение # 10
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Дело в том, что когда программа во взломанном компиляторе имеет развернутые комментарии, то иногда он писал ошибку синтаксиса. После разных манипуляций с укорочением и иногда удалением комментариев, перемещением строк кода(в том числе удалением лишних пробелов после комментариев или пустых строк(пробелов) между строками кода) все начинало работать.
retas Дата: Вт, 22.12.2009, 19:04  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 447
Репутация: 11   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Уважаемый, ADMIN!
* У меня подобных проблем (из за пробелов, коментариев) не попадалось, но за то с прерываниями - хоть отбавляй.
Быть может вы заметили какую то законамерность и можете подсказать как не писать, хотя я сомневаюсь что написанное
вами будет одинакого компилиться на другом компе. У меня один проект, скажем, нормально компилился, а через несколько
недель - бардак, компилятор даже придумал что я не описал переменную в асм файле, хотя на асм мною не было написано
ни строчки. Я, при случае, всем хвалил Протон и направлял сюда на сайт а сам уж, было, подумывал плюнуть на него. Ну и
если он у меня начнёт придираться к манере а не к сути написанного...
А не пробовали ли при ваших проблемах, скажем, ту же прогру скомпилить для другого типа МК или же попробовать обнаружить
связь именно с какими то операторами и т.п.
*С какой версией Протона у вас это происходит?
*Если мы используем подлеченный какой то таблеткой Протон, значит ли это, что другого лекарства не изобретено. Не может ли
быть, что применяемое нами не одно? Вот нашёл такое http://www.crackserialcodes.com/crack-p....en.html .
ЯНДЕКС Дата: 22.12.2009
Dmitry Дата: Вт, 22.12.2009, 23:25  |                                                                                                                Сообщение # 12
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 157
Репутация: 6   ±
Замечания:   ±
На сайте с 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
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Я не искал закономерности, просто отметил этот факт и всегда методом исключений находил место в программе(точнее, в комментариях!), из-за которого компилятор вырисовывал нелепые ошибки. Конечно, если пользоваться офф. версией, как Demanik, то, возможно, таких проблем не было бы. Придет время, и у меня будет офф. версия. cool
ADMIN Дата: Ср, 23.12.2009, 15:07  |                                                                                                                Сообщение # 14
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Quote (Dmitry)
Вообще-то это имеется ввиду, что именно переменная (а не подпрограмма) пересекла границу банка памяти ДАННЫХ.

Вы правы.

Quote (Dmitry)
Почему компилятор не делает это сам - для меня загадка. В PIC Basic Pro такой проблемы не замечал.

Не факт, что при прочих равных условиях в PBP такого не будет, я думаю.

contra Дата: Вс, 04.04.2010, 10:03  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 112
Репутация: 0   ±
Замечания:   ±
На сайте с 27.06.2009

Статус: Offline

Всем привет!
При попытке компиляции появляется: Error: USB Key not found - что зто значит?
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Предупреждение компилятора
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: