реклама на сайте
подробности

 
 
> Как реагировать на критическую ошибку времени исполнения?, Хочется аналог исключения в iar avr
AndryG
сообщение Apr 15 2016, 22:34
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317



Рисую велосипед марки "планировщик". Будет ездить на связанных списках sm.gif Для рисования использую IAR (avr).

В коде есть момент "приплыли", когда дальнейшее нормальное выполнение невозможно.
Я решил, что в данном случае не надо полумер по типу "а эту задачу в очередь не поставим, ибо места нет".

На php я бы выбросил исключение и перехватил бы его на самом высоком уровне для вывода юзеру "упс".
А как тут быть? Решение хочется универсальное, ибо планируется использовать сей код в разных проектах без индивидуального допиливания.

Поделитесь, пжлст, идеями. Может какой механизм великого компилятора можно задействовать? Как вы поступаете в таких случаях?

Код
void qtTask(qtTaskPtr ptr, qtDelay tick){
  Task *r = empty.h;

  if(NULL == r){ // нет свободных записей. Приплыли.
    PORTB |= 0xff; // это отладочная затычка. Как быть при такой ошибке в библиотечном коде.
    while(1);
  }

  head2tail(&empty, tick ? &delay : &active);
...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Jun 14 2016, 10:46
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



exception в си называется assert sm.gif
Причем, обычно его включают на время отладки, а в релизе выключают.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 09:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016