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

 
 
> Как реагировать на критическую ошибку времени исполнения?, Хочется аналог исключения в 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
Ответов
ar__systems
сообщение Jun 13 2016, 21:33
Сообщение #2


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



ничего не понял. В чем дилемма-то? Если приплыли, то дилеммы-то нет, открывайте кингстоны и до свидания.

Я представляю себе ситуацию например такую, что у меня периферия по I2C не отзывается. Печатаю в порт дебага сообщение и good bye.

Т.е. непонятно, какое именно преимущество дает вам вызов exit() по сравнению с не вызыванием ничего?
Go to the top of the page
 
+Quote Post



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

 


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


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