Как НЕ переполнять стек .

AVR версия программы

Как НЕ переполнять стек .

Сообщение saho (Саша) » 28 дек 2012, 13:05

Уважаемые друзья . Стал актуальным вопрос о переполнении вредоносного стека . При всех принятых , по моему скромному мнению , мерах через продолжительное время работы (несколько суток) иногда происходит зависание чипа . Количество сбоев не дают возможности сделать бесспорных выводов , но есть устойчивое подозрение , что это последствия переполнения стека . В связи с этим вопросы :
1. Какие общие требования для предотвращения переполнения стека ?
2. Существует ли возможность в ФК при разработке проекта каим то образом следить за состоянием счётчика стека ?
3.Что именно происходит , когда он переполняется ? Или как точно определить факт переполнения ? Может тогда можно будет организовать ему РЕСЕТ .
4. И как вариант можно организовать периодический РЕСЕТ.
Попробуем на корню исключить возможность переполнения .
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе

Re: Как НЕ переполнять стек .

Сообщение Nicolasomsk (Nicolasomsk) » 28 дек 2012, 13:23

А что, ждущая собака уже не помогает? :) Фьюз Watchdog
Семь бед-один reset
Аватар пользователя
Ник: Nicolasomsk
Имя: Nicolasomsk
(Омск)
Практик
Практик
Информация о пользователе

Re: Как НЕ переполнять стек .

Сообщение Taska (Максим) » 28 дек 2012, 14:06

Ну так может ты выложишь прогу с протеусом.
В протеусе хорошо видно как стек разрастается.
Аватар пользователя
Ник: Taska
Имя: Максим
(Кривой Рог)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение saho (Саша) » 28 дек 2012, 14:24

Taska писал(а):Ну так может ты выложишь прогу с протеусом.

Понято - вечерком выложу .
В протеусе хорошо видно как стек разрастается.

Вот как раз это и нужно - хотя бы намёк на разрастание .
Nicolasomsk писал(а):А что, ждущая собака уже не помогает? :) Фьюз Watchdog

В том то и дело , что собака хоть и включена , но не помогает .
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение mim (mim) » 28 дек 2012, 15:19

saho писал(а):Стал актуальным вопрос о переполнении вредоносного стека, иногда происходит зависание чипа, есть устойчивое подозрение , что это последствия переполнения стека

На каком основании такие устойчивые подозрения???
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение saho (Саша) » 28 дек 2012, 18:47

mim писал(а):На каком основании такие устойчивые подозрения???

1. Есть грешок - проект пестрит переходами GO TO и есть "матрёшки" .
2. Без каких либо причин обнуляется ЕПРОМ (это может быть и не втему ).
3. И главное - сбой проявляет себя как говорится "не документированными"функциями прибора - мерцанием информационного светодиода в таком режиме , которого не должно быть . Такое впечатление , что происходит беспорядочное скакание по программе .
plc.zip
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение mim (mim) » 28 дек 2012, 19:59

Матрешки - это мягко сказано. На все наплевать и все переписать.
Входишь в прерывание и превращаешь его в основную программу (уму не постижимо), затем из прерывания несколько раз вызываешь процедуры и макросы, как свои, так и Матриксов (а там еще похлеще). Чушь полная. Про переходы,я молчу - это самое безобидное.
В прерывании - только минимум телодвижений.
Все переписывать, поэтапно!
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение saho (Саша) » 31 дек 2012, 09:54

Я не пропал , я работаю . Вернее пробую между праздниками (у меня вся родня под НГ родилась с убийственной периодичностью в два дня).
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение saho (Саша) » 01 янв 2013, 04:28

Всех с НГ !!! Да прибудет с нами сила !!!
А интересно - в новых версиях ФК прерывания по RX можно просто разрешить или нужно дополнительно активировать (скрытые значки)?
atmega32_PLC.fcf_avr
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: Как НЕ переполнять стек .

Сообщение saho (Саша) » 03 янв 2013, 09:52

saho писал(а):в новых версиях ФК прерывания по RX можно просто разрешить

Подправил немного . Переходы отвалились за ненадобностью . Правда в таком варианте символы с компорта у меня получается посылать только последовательно , а не строкой . Для этого придётся переделать екзешник .
v5.zip
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode AVR

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей