1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chenyananee-CYNOS

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

CynOS (Легковесная псевдо-операционная система)


Примечание: для повышения эффективности использования системных ресурсов, избегайте блокировки в пользовательских задачах. Система предоставляет простой модуль программирования конечных автоматов.


Особенности

  1. Занимает мало ресурсов, компоненты слабо связаны, легко настраиваема, проста в портировании

  2. Удобна для модульного программирования на голом железе

  3. Предоставляет общие фреймворки для системных модулей

Настройка системы

  1. Настройте файл cynos_cfg.h

Методы портирования (подробнее см. demo.c)

  1. Включите файл cynos.h
  2. Создайте объект ядра, например: CREATE_KERNEL_OBJ(ui,5) // создает объект ядра ui, в котором можно создать 5 задач
  3. В таймерном прерывании вызовите CynOS_KernelObj_Tick(CYNOS_KEROBJ(ui),1); // предоставьте тактовый сигнал для объекта ядра ui
  4. Инициализируйте объект ядра CynOS_KernelObj_Init(CYNOS_KEROBJ(ui),5,0);
  5. Создайте задачу CynOS_Kernel_Task_Create(CYNOS_KEROBJ(ui),user_task_init,user_task,1000); // создает задачу user_task, функция инициализации которой — user_task_init, и которая выполняется каждые 1000 мс
  6. Начните планирование задач CynOS_Start(CYNOS_KEROBJ(ui),KERNEL_RUN_FOREVER); // запустите планирование потоков объекта ядра ui

Пример портирования

Пример портирования системы — создание задач и использование модуля конечных автоматов (см. demo.c)

Описание конфигурационного файла

Переключатели модулей

Макрос Описание
CYNOS_CPU_LEN Разрядность системы
CYNOS_USER_TASK_MAX Максимальное количество пользовательских задач
CYNOS_SYSTICK_FRQ Скорость системного таймера (время между прерываниями в мс)
CYNOS_TASK_SYSTICK_EN Использование планировщика на основе таймера
CYNOS_TASK_TIME_HOOK_EN Функция-хук для таймера
CYNOS_TASK_PEND_HOOK_EN Функция-хук для приостановки задач
CYNOS_TASK_RESUM_HOOK_EN Функция-хук для возобновления задач
CYNOS_DEBUG_KERNEL_PRINT Если пользователь включает функцию печати ядра, необходимо указать интерфейс печати
USE_CYNOS_DEBUG Переключатель отладочного модуля
USE_CYNOS_MUTEX Переключатель модуля мьютексов
USE_CYNOS_SEM Переключатель модуля семафоров
USE_CYNOS_FIFO Переключатель модуля FIFO
USE_CYNOS_EVENT Переключатель функции событий

Конфигурация модулей

  1. Конфигурация DEBUG
Макрос Описание
CYNOS_DEBUG_SIZE Ресурсы модуля DEBUG
  1. Конфигурация FIFO
Макрос Описание
CYNOS_FIFO_SIZE Ресурсы модуля FIFO
  1. Конфигурация MUTEX
Макрос Описание
null null
  1. Конфигурация SEM
Макрос Описание
null null
  1. Конфигурация EVENT
Макрос Описание
null null

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Псевдооперационная система для нудного ядра с низкой степенью耦合度 и высокой степенью кастомизации для фронтэнда и бэкэнда, использует небольшое количество ресурсов. Исправленный текст: Псевдооперационная система для нудного ядра с низкой степенью耦合度 и высокой степенью кастомизации для фронтэнда и бэкэнда, использует небольшое количество ресурсов... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chenyananee-CYNOS.git
git@api.gitlife.ru:oschina-mirror/chenyananee-CYNOS.git
oschina-mirror
chenyananee-CYNOS
chenyananee-CYNOS
main