Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Вклад в KAOS-RT

KAOS-RT развивается как компактное и понятное ядро. Хорошее изменение делает систему полезнее, не усложняя её модель исполнения и не скрывая важных условий от пользователя.

Перед изменением ядра прочитайте контракт. Если изменение меняет публичный API, семантику событий, таймеров или жизненного цикла автомата, сначала опишите предлагаемый сценарий применения в обсуждении задачи.

Что присылать

  • исправление с воспроизводимым описанием проблемы;
  • новый порт для конкретного МК или семейства;
  • минимальный пример, который показывает практическое применение;
  • уточнение документации, устраняющее неоднозначность;
  • небольшое улучшение ядра с понятной причиной и проверкой результата.

Не объединяйте в одном запросе функциональное изменение, рефакторинг и массовое форматирование.

Границы ядра

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

Callback автомата и fsm_loop_service() выполняют ограниченный шаг работы. Публичный API меняется только вместе с контрактом и подходящим примером.

Новый или изменённый порт

Порт размещается в port/<семейство_МК>/. В его README или в описании запроса должны быть указаны:

  • точная модель МК или поддерживаемое семейство;
  • компилятор и необходимые расширения языка;
  • источник логических тиков и его разрядность;
  • способ создания критической секции;
  • параметр частоты источника времени, задаваемый конфигурацией платы;
  • известные ограничения и способ проверки на целевой платформе.

Порт не должен задавать частоту аппаратного источника времени по умолчанию. Она принадлежит конфигурации платы и её дерева тактирования. Подробнее — в PORTING.md.

Проверка перед запросом

В описании запроса укажите:

  • цель изменения и затронутые файлы;
  • конфигурацию сборки;
  • выполненную проверку и её результат;
  • платформу для изменений порта или примера.

Изменение ядра, событий или таймеров проверяйте в прикладном сценарии. Изменение порта проверяйте на соответствующей платформе, если она доступна.

Документация и лицензия

README остаётся краткой точкой входа. Условия работы ядра описываются в контракте, а ограничения конкретной платформы — рядом с её портом. Комментарий нужен там, где он объясняет нетривиальное решение, предусловие API или аппаратное ограничение.

Отправляя вклад, автор подтверждает право передать его в проект по Apache License 2.0. Не добавляйте сторонний код без совместимой лицензии и обязательных уведомлений.

About

No description, website, or topics provided.

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors