Aurochs 0 31 января, 2010 Опубликовано 31 января, 2010 · Жалоба Ну а фол-то где? Какой фол? Было сказано "на грани фола" - согласитесь, что это не одно и то же. Несколько команд изменяющих и восстанавливающих указатель стека - добавляются по месту легко и непренужденно. Не спорю. Если, оно конечно, это надо. Вот именно. И, скорее всего, в 99 случаях из 100 будет необоснованно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 31 января, 2010 Опубликовано 31 января, 2010 · Жалоба Какой фол? Было сказано "на грани фола" - согласитесь, что это не одно и то же. Хочу знать что за фол о нахождении на грани которого Вы говорите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба На грани фола в моем понимании означает, что сильно увеличивается потенциальная опасность возникновения ошибок, приводящих к труднодиагностируемому краху системы. Если нужен пример, пожалуйста - переключение стека в фиксированную область во вложенных прерываниях. Хотя для отчаянных ребят, программирующих в стиле "а-ля улыбнитесь, каскадеры" это, конечно, не довод ;) . И, честно говоря, нет ни малейшего желания вступать в дебаты по этому поводу. Хотел только предупредить, а дальше уж, как говорится, каждый выбирает для себя... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба Счётчик вложености прерываний нужен хотя бы для того, чтобы не заниматься зря перепланировкой при выходе из вложенного прерывания, делать это только при выходе из всех прерываний. А при его наличии не переключать стек во вложенных прерываниях труда не составит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба И, честно говоря, нет ни малейшего желания вступать в дебаты.... Ну когда нет аргументов, а только футбольно-киношные отсылки, то это следует признать совершенно разумным желанием. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба На грани фола в моем понимании означает, что сильно увеличивается потенциальная опасность возникновения ошибок, приводящих к труднодиагностируемому краху системы. В общем смысле любая программа либо работает, либо нет. Занимается она "сложным переключением контекста" или вычислением 2+2 - совершенно без разницы с точки зрения "надежности" работы устройства. Другое дело - нагрузка на голову программиста, но это вопрос профессионализма и навыка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rexton 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба начал осваивать rtos правильно ли я понимаю что при создании задачи размер стека надо указывать в зависимости от того, сколько вложенных функций будет в самой задаче? то есть если в задаче глубина вложенности функций будет например 10, то и размер стека надо указывать >176? то есть такая задача отожрет >704 байта оперативы. что в общем то не кашерно при наличии 8к оперативы. или что то я не так делаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба начал осваивать rtos правильно ли я понимаю что при создании задачи размер стека надо указывать в зависимости от того, сколько вложенных функций будет в самой задаче? Про локальные переменные тоже надо не забывать. то есть если в задаче глубина вложенности функций будет например 10, то и размер стека надо указывать >176? то есть такая задача отожрет Почему именно 176? Каждый уровень потребляет 17,6 байта? >704 байта оперативы. что в общем то не кашерно при наличии 8к оперативы. или что то я не так делаю? Контроллер слабоват. Нужен более мощный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба начал осваивать rtos правильно ли я понимаю что при создании задачи размер стека надо указывать в зависимости от того, сколько вложенных функций будет в самой задаче? то есть если в задаче глубина вложенности функций будет например 10, то и размер стека надо указывать >176? то есть такая задача отожрет >704 байта оперативы. что в общем то не кашерно при наличии 8к оперативы. или что то я не так делаю? Думаю, не ошибусь, если скажу так: выделяете под задачу столько стека, сколько бы выделили для ее работы без операционки в свойствах линкера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rexton 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба Почему именно 176? Каждый уровень потребляет 17,6 байта? ну не 17,6 байта. Я так понял что указываемое значение - это не число байт, а число 32разрядных слов. а 176 - экспериментальным путем получено. указываю меньше 32 - вообще задача не запускается а потом добавляю по 16 на каждый уровень вложенности функций, иначе вылетает в vApplicationStackOverflowHook Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба а число 32разрядных слов. А какая архитектура? а потом добавляю по 16 на каждый уровень вложенности функций, иначе вылетает в vApplicationStackOverflowHook ИМХО сомнительный подход. Могу ошибаться, но мне кажется, что уровень вложенности не равен количеству вызовов функций: void f2() { } void f1() { f2(); } void main() { f1() } Для этого кода уровень вложенности не 2, столько сколько компилятор сделает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rexton 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба согласен. тогда получается лишняя заморочка по расчету того сколько же стека нужно задаче.... а камень - stm32f100rb Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба согласен. C чем именно согласны? тогда получается лишняя заморочка по расчету того сколько же стека нужно задаче.... Лишняя? Стек надо как-то учитывать.... Если стека не хватает работать не будет. А говорите - лишняя. а камень - stm32f100rb Понятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться