Шаблоны проектирования / реализации для встраиваемых систем - PullRequest
5 голосов
/ 24 ноября 2010

Существуют ли какие-либо хорошие источники по шаблонам проектирования и / или реализации для встроенных систем? Книги или хорошие веб-ресурсы.

Тема может быть:

  • Размышления о типичном способе отделения адресов регистров от реализации драйвера.
  • Или практика использования / построения уровня аппаратной абстракции и способы достижения максимальной выгоды от этого.
  • Создание одной и той же кодовой базы для нескольких аппаратных ревизий / платформ.
  • Определение приоритетов ISR и разделение их на критичную по времени часть, а также выполнение, когда время позволяет часть.
  • Юнит-тестирование или дажеразработка, управляемая тестами для встроенных систем?

Полагаю, что я прошу что-то вроде GoF, но сфокусировано на разработке встроенного программного обеспечения.

Спасибо

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

Я еще не читал, но у Брюса Пауэла Дугласа есть новая книга под названием " Шаблоны проектирования для встроенных систем на C ".

Описание книги гласит:

Автор тщательно учитывает особые проблемы, возникающие при проектировании и разработке встроенных приложений, в частности параллелизм, обмен данными, скорость и использование памяти.

Похоже, что темы также включают аппаратноедоступ, конечные автоматы, устранение неполадок и управление ресурсами.

0 голосов
/ 21 мая 2019

Я думаю, что во встроенном мире не хватает хороших книг и ресурсов. Вот мой совет. Я надеюсь, что вы найдете информацию интересной.

Разработка на основе тестирования для встраиваемых систем C - прекрасная книга, которая может дать вам хорошее начало в жизненно важной области разработки на основе тестирования. На данный момент это лучшая база знаний TDD по встраиваемым решениям, которую я нашел до сих пор.

Искусство проектирования встраиваемых систем - это всеобъемлющая книга, в которой содержится множество различных приложений. Большинство устройств великолепны, книга была написана десять лет назад, поэтому многие идеи и рамки считаются старыми, но взгляды провокационные и захватывающие. Я изучил много маленьких трюков, которые изменили способ, которым я вижу встроенный мир. Автор увлечен лучшими практиками и компромиссами, Из этой книги я узнал, насколько важно использовать чистые функции и может ли это помочь мне избежать глупых необнаружимых ошибок.

Следующий совет не приходит, в частности, от встроенного, но он мне очень помогает, имея гораздо лучший код, чистый код и чистую архитектуру книги. Они были написаны для языков более высокого уровня, НО принципы одинаковы, хороший код - это хороший код, эти книги дали мне другую точку зрения на то, что считается хорошим и что такое мастерство кода, я жду программиста, который написал бы такой книга для мира встраиваемых систем.

и последний совет - посещение веб-сайта barrgroup , на котором есть отличные вебинары и отличный стандарт кода. У них также есть платформа для встроенных курсов, на мой взгляд, они подчеркивают основные аспекты разработки в гибкой среде с TDD.

Я надеюсь, что ссылки помогут вам, ожидая увидеть и другие ответы.

0 голосов
/ 09 мая 2019

Я прочитал Шаблоны проектирования для встраиваемых систем на C для только первые две с половиной третьей главы .

Я несобираюсь сделать заключение об этой книге, вместо этого Я предлагаю вам сообщение , что часть кода примера из этой книги не работает.

Вот фрагмент кода изкнига.

typedef struct MotorProxy MotorProxy;
struct MotorProxy
{
    unsigned int* motorAddr;
    unsigned int rotaryArmLength;
};

void MotorProxy_disable(MotorProxy* const me)
{
    if(!me->motorData)    //wrong! should be me->motorAddr
    {
        return;
    }
    me->motorAddr &= 0xFFFE;
}

Есть еще случаи, когда, например, пропущены двоеточие, опечатка и т. д.

...