Вывод аппаратной ошибки на текстовый экран !!!

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем dreaMaster, 18 июл 2018.

  1. dreaMaster

    dreaMaster Нуб

    Уважаемые форумчане!

    Подскажите, пожалуйста, каким образом можно вывести информацию об аппаратной ошибке (отсутствие свободной памяти и т.д), например, на текстовый экран?

    Возможно ли использовать для этого инструкцию Е.getErrorFlags()? Если да, то как?
     
    Последнее редактирование: 18 июл 2018
  2. Daniil

    Daniil Гуру

    А кто следит за ошибками - мк или программист? Как таковых "ошибок" нет, есть строгое выполнение инструкций. Если идёт обращение к несуществующей ячейке, то как мк должен отреагировать? Мне кажется, что за этим должен следить пользователь.
    В цикле инкрементировать 8-миразрядный счетчик до 256?
    Дёргать отсутствующей ногой?
    Деление на ноль?
    Все эти операции основаны на их схемотенической реализации на транзисторах и отлавливание таких ошибок приводит к значительному усложнению схемотехники. Надо ли это удорожание?
     
    parovoZZ и Mitrandir нравится это.
  3. parovoZZ

    parovoZZ Гуру

    Аппаратная ошибка приводит к зацикливанию МК. Как следствие, выводить ошибку некому.
     
    null нравится это.
  4. dreaMaster

    dreaMaster Нуб

    Тогда почему мы видим информацию об ошибке в консоли?
     
  5. dreaMaster

    dreaMaster Нуб

    Безусловно, я с вами согласен, что за ошибками следит пользователь. В готовом, отлаженном изделии их не должно быть! Тем не менее, хочу реализовать функционал, который позволит выводить аппаратные ошибки, например, на текстовый экран при длительной, непрерывной работе разрабатываемого мною устройства.

    Мой вопрос, да и предположение о том, что такая возможность есть были основаны на том, что ошибки такого рода мы видим в консоли, а так же, наличия метода объекта E(): E.getErrorFlags() (event E.errorFlag !?). Я не знаю, как работать с данным методом, поэтому и спрашиваю в надежде, что кто-нибудь объяснит для чего он нужен!
     
  6. parovoZZ

    parovoZZ Гуру

    Можешь перечислить?
     
  7. ostrov

    ostrov Гуру

    Вот тоже интересно, а кто будет ошибку на экран выводить?
     
  8. Mitrandir

    Mitrandir Гуру

    Js
     
  9. ostrov

    ostrov Гуру

    Второй?
     
  10. Mitrandir

    Mitrandir Гуру

    В смысле ?
     
  11. Daniil

    Daniil Гуру

    Я извиняюсь, но с js не знаком. О каких ошибках идёт речь?
    Можно пример? Как я себе представляю:
    Есть написанная вами функция. Перед выполнением основных операций происходит проверка входных параметров на допустимые значения. Если есть ошибка, то вывести на экран сообщение.
    И как вы можете гарантировать, что аппаратная ошибка не связана с экраном? (достоверность информации под вопросом).

    С ARMами (на искре STM32F405RG) я сейчас активно знакомлюсь (у меня atsamg55). Когда начинал, то иногда моя программа попадала в процедуру dummy_handler. Это случалось, когда я делал ошибки (сейчас не могу сказать какие именно). (Об этом выше писал parovoZZ)
    Код (C++):
    void dummy_handler()
    {
    while 1 {}
    }
    Подозреваю, что в этой процедуре можно анализировать глобальные переменные (заданные пользователем) и значения регистров (памяти, стека и т.п.)
    Может, чем-то подобным и пользуется iskra.
    В целях развлечения, может, и интересная задача, особенно, её решение познакомит с архитектурой камня, но мне видится более простое-дорогое решение программатором с внутрисхемной отладкой (термины могу путать).
     
    Последнее редактирование: 19 июл 2018
  12. Mitrandir

    Mitrandir Гуру

    В джаваскрипте же вроде есть трай кетч.
     
  13. Daniil

    Daniil Гуру

    Любопытна прослойка между js и asm.
    Будет ли js отлавливать "ошибки" переполнения и др. ведь для мк это штатная работа
     
    Mitrandir нравится это.
  14. parovoZZ

    parovoZZ Гуру

    А интерпретатор JS где будет крутиться? В текстовом экране?
     
  15. null

    null Гик

    Всмысле что при аппаратной ошибке МК не сможет вывести что-то на экран
     
  16. Mitrandir

    Mitrandir Гуру

    Часть аппаратных проблем можно определить, часть нет
     
  17. parovoZZ

    parovoZZ Гуру

    Вы про какие аппаратные проблемы говорите? Сбой программного счетчика? Снижение напряжения питания? Отказ nand памяти? EEPROM? Внутри МК возникновение аппаратной ошибки крайне маловероятно. Если ошибка прилетает снаружи (ЭМИ), то это вопрос к схемотехнике.
    Оверстек, уход указателя в пустую ячейку и подобное - это всё программные ошибки.
     
    Mitrandir нравится это.
  18. dreaMaster

    dreaMaster Нуб

    На данный момент не могу воспроизвести ошибку и отправить код и скрин консоли, но...
     

    Вложения:

  19. Mitrandir

    Mitrandir Гуру

    Ну так это не аппаратные ошибки
     
  20. Mitrandir

    Mitrandir Гуру