Giter Site home page Giter Site logo

kos's Introduction

KOS - K operation system

Простая микроядерная операционная система для микроконтроллеров stm32f103, однако может быть переделана под другие ARM Cortex-M процессоры (необходимо переписать функции работы с SD картой и прерываниями)

Представляет собой мультизадачную операционную систему, способную хранить и выполнять по 1 процессу (для переключения процессов сохраняет их в ПЗУ)

Репозиторий содержит набор функций и структур для работы с SD-картой, загрузкой, исполнением и сохранением процессов.

Для работы используются библиотеки HAL STM32 и FatFS elm-chan'а

Код библиотек не представлен в репозитории(кроме файла diskio.c), для сборки системы необходимо самостоятельно установить их

Использование

  1. Создать структуру типа SDCardPort
  2. Вызвать функцию initializeSDCard
  3. Вызвать f_mount библиотеки FatFS
  4. Вызвать функцию initializeScheduler
  5. Добавить процессы с помощью функции createProcess
  6. вызвать runProcesses (исполняет все процессы по 1 разу)

Простой пример:

sdport0 = (struct SDCardPort){ // struct SDCardPort sdport0
	.state = NOTINITIALIZED,
	.GPIOx = SPI1_CS_GPIO_Port,
	.hspi = &hspi1,
	.pin = SPI1_CS_Pin
};
while(initializeSDCard(&sdport0) != 0){HAL_Delay(1);}
FATFS SDFatFs;
FRESULT res = f_mount(&SDFatFs, _T("") , 0);
if(initializeScheduler() == SCHEDULER_OK){
	struct ProcessSettings settings = {.tacts=1};
	createProcess(_T("my_proc"),&settings);
	runProcesses();
}
f_mount(NULL, _T(""), 0);

Компиляция программ под систему

Все процессы, загружаемые системой, должны иметь точку входа >= 0x20002000 и иметь размер не более 12 КиБ (в т.ч. стек)

kos's People

Contributors

deyzer2566 avatar

Stargazers

Reshetov Semen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.