Непонятная нестабильность программы на BASCOM

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 6
Зарегистрирован: Чт июн 18, 2009 04:32:54

Сообщение Sergey84 »

Добрый день.
Зашел в тупик.
Использую BASCOM всего 2 дня, только потому что условия проекта такие.
Понемногу стал втягиваться. Проект почти готов. Но вот беда - при длительной работе - порядка 2-3 минут (в протеусе) появляется нестабильность, глючки.
Сама прога просто опрашивает по рс232 устройство и выводит на виртуальный терминал считанные значения.
Глюки заключаются в том что периодически, с определенной частотой в выводимом тексте проскакивают кракозяблы, а иногда программа просто останавливается (Напомню, пока тестирую в протеусе).
Пугает то, что периодичность и внешний вид глюка меняется при изменении параметров

framersize, swstack, hwstack.
Что я только не пробовал - и большие значения, и малые, и вообще не указывать, полагаясь на умолчания. Максимум что удавалось - это продлить до нескольких менут период глюка.
Боюсь что что-то там со стеком и т.д. перетирается...

Помогите. Для чего указанные значений? Как они могут вызывать такие глюки?

PS: Proteus 6.5 SP 5, BASCOM 1.11.9.1
Чип mrga8

Спасибо.
Сергей.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 152
Зарегистрирован: Пн ноя 03, 2008 12:08:42
Откуда: Владивосток

Сообщение Gryphon »

Использую BASCOM-AVR уже долго и ни разу не видел таких глюков. У тебя какой BASCOM-AVR: крякнутый или демо, а протеус? Кстати, были случаи, когда сам Протеус глючит (сам видел). Для начала покажи исходный код, а я сам проверю.
Вы получаете от людей больше, если им противоречите
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 438
Зарегистрирован: Вт сен 25, 2007 19:40:26
Откуда: Челябинск

Сообщение mr.Kirill »

[quote="Sergey84"]
PS: Proteus 6.5 SP 5, BASCOM 1.11.9.1
Чип mega8[/quote]
Если учесть что сейчас активно используется версия Proteus 7.4...То не мешало бы обновиться. С тех времен уже не мало воды утекло, много глюков было исправлено (и добавлено новых) :)
Родился
Сообщения: 6
Зарегистрирован: Чт июн 18, 2009 04:32:54

Сообщение Sergey84 »

Спасибо за советы.

Удалось кое-что наэкспериментировать.
Если во всех процедурах все Local переменные заменить на Dim (оставить объявления тамже, но не Local а Dim) - то все проблемы сразу исчезают.
Как только внутри функции делаю Local (хотябы одной), тутже возникают проблемы.
Насколько я понимаю, $framesize - это размер области для локальных переменных, который выделяется каждый раз когда вызывается функция?
Как только я не менял значение - все равно при длительной (а чаще сразу) работе появляются сбои. Сбои определенно управляются этой величиной, так как ее изменение изменяет момент сбоя и его вид.
Раньше писал на асм авр, на cvavr -проблем не было вообще...

PS: да, думаю стоит попробовать проапгрейдить Протеус, но так как раньше я не замечал этих глюков, то думаю что генерится плохой hex (ну или неправильно сконфигурированный)

Спасибо еще раз.
Очень хочется разобраться, мне с ним видимо еще придется работать.
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 438
Зарегистрирован: Вт сен 25, 2007 19:40:26
Откуда: Челябинск

Сообщение mr.Kirill »

Sergey84 писал(а):Раньше писал на асм авр, на cvavr -проблем не было вообще...
Если было такое хорошее начало - и ASM, и CVAVR, то зачем перешли на это "чудо" BASCOM?

Мой совет - бросайте его куда подальше, вернитесь к ASM и CVAVR.
Реклама
Родился
Сообщения: 6
Зарегистрирован: Чт июн 18, 2009 04:32:54

Сообщение Sergey84 »

Было бы счастье да несчастье помогло :cry:
Баском это условие проекта, в котором я лишь очередное звено.
Реклама
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

'бросайте его куда подальше, вернитесь к ..'
а вот здесь наоборот говорят
http://www.radiokot.ru/forum/viewtopic.php?t=17040

как жить дальше, кому верить.. (шутка)
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1596
Зарегистрирован: Вс дек 14, 2008 20:36:47
Откуда: SPb

Сообщение saschai »

'бросайте его куда подальше, вернитесь к ..'
а вот здесь наоборот говорят
http://www.radiokot.ru/forum/viewtopic.php?t=17040

как жить дальше, кому верить.. (шутка)
Не слушай никого и работай в том, что тебе удобнее :))
Я Бейсик изучал в 1983 году в институте, навыки остались, по сему и Васик мне по душе, хотя и всего по немножку, кстати долго метался между Си и АСМ. Мне, например для души, а не для заработка, оптимизировать можно любой код, так что все зависит от программера :))
Открыл глаза
Сообщения: 70
Зарегистрирован: Сб дек 27, 2008 15:40:06

Сообщение pomidor »

автоцитата с bascomavr.3bb.ru

'Наступил на эти грабли, забодался бороться, пока не прочитал на баскомовсом форуме [ http://www.mcselec.com/index2.php?optio ... &Itemid=59], что баском не любит underscore - знаков подчеркивания ( _ ) и иногда принимает их за перенос на следующую строку и маленько сходит с ума.
Те, названия типа First_sub лучше не применять, а использовать что-то вроде Secondsub'

может, в чем-то подобном проблема (кстати, исходник показали бы, глядишь, народ попробовал бы на разных протеусах-баскомах, а то и в железе)
Родился
Сообщения: 6
Зарегистрирован: Чт июн 18, 2009 04:32:54

Сообщение Sergey84 »

Всем спасибо за советы.

Учту информацию и по нижнему подчеркиванию, использовал, больше не буду.

Проблема как всегда в руках, в этом не сомневался (успокойтесь, любители васика :wink: ).
Невнимательно прочитал хелп, и использовал return внутри процедуры для выхода из нее (в середине тела процедуры). Все, сейчас все работает со всеми Local'ами при дефолтных значениях framesize 8)

Ничего плохого про бейсик сказать не могу, считаю что хороший программист справится с любым языком. Кажется немного перебирает в сгенерированном коде, многовато. Еще слишком туповат, не понимает сложных выражений - как результат куча временных переменных и сложночитаемый код.

Надо подшаманить прошивочку на 2 камня для дома - это будет на асм.

Всем спасибо.

PS: выложить код я не мог, у меня договоренность с заказчиком. Пока пытался сделать аналогичный с такой же проблемой (чтобы выложить сюда), сам обнаружил проблему :idea:.

Еще раз спасибо.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»