Ответы пользователя по тегу C++
  • С чего начать изучение системного программирования?

    @Mirn
    я заметил тег ассемблера, и вот что про него посоветую:
    не писать на асме, а писать на си и смотреть что получается на асме.
    Хорошие проекты на Си в области системного программирования это например ядро люникса или загрузчик uboot.
    Ассемблер в современном мире не язык синтеза, это язык анализа и очень редкого, всё можно сделать на голом си.
    Даже специфичные системные команды на ассемблере и их блоки уже сделаны в 99.9999999999999% платформах Си, их нужно просто вызвать и уметь ими пользоваться, вот тут и понадобиться умение ЧИТАТЬ на асме.
    Ответ написан
    Комментировать
  • Как можно отловить случайную багу в embadded проекте?

    @Mirn
    1. Возможно это блокировки шины памяти.
    Они бывают если что-то занимает озу или флешь надолго или уарт очень быстрый, 500кБод и выше.
    Классика жанра - прошивка параметров в флеш или самого флеша. Или работа другого канала ДМА на макс скорости.
    2. Возможно ошибки приёма уарта, советую глянуть осцилографом стабильность уровней напряжения и временную стабильность фронтов.
    3. Баг в коде и порча ОЗУ - советую поменять раскладку памяти, если использовать LD файлы то это прощее, в других более закоренелых системах типа кейла непонятно как. Но метод такой - если перенести буфер уарта на другое место в ОЗУ и всё исправилось то это оно и есть. Можно размер стека изменить, поиграться с размером прочих буферов, массивов и тд.
    4. Попытаться покускам поотключать бизнес код.
    5. Не использовать RTOS - да фантастика, но очень часто причина в нём. Он не идеален, да даже если он был бы идеален, можно накосячить с его использованием.
    6. Неправильно настроенная прочая аппаратура - поотключать левое.
    7. Подумать когда возникла ошибка и об обстоятельстве её возникновения, нередко бывает например когда ошибка в ячейке c смещением 0х13 и тут вспоминаешь что была добавлена стркутура и третий байт массива в этой структуре как раз с смещением 0х13 после вызова уарта меняется ... опа!
    Ответ написан
    6 комментариев