Микроконтроллердің жұмыс жүйелері - Micro-Controller Operating Systems

MicroC / OS
ӘзірлеушіMicrium, Inc.,
Кремний зертханалары
ЖазылғанANSI C
ОЖ отбасыНақты уақыттағы операциялық жүйелер
Жұмыс жағдайыАғымдағы
Дереккөз моделіАшық ақпарат көзі, Apache лицензиясы (2020 жылғы жағдай бойынша)
Бастапқы шығарылым1991; 29 жыл бұрын (1991)
Соңғы шығарылымOS-III / 2016; 4 жыл бұрын (2016)
Репозиторийgithub.com/ SiliconLabs
Маркетингтің мақсатыКіріктірілген құрылғылар
Қол жетімдіАғылшын
ПлатформаларARM Cortex-M3, Cortex-M4F, ARM7TDMI; Atmel AVR; eSi-RISC және басқалары.
Ядро түріМикро ядролы
Әдепкі пайдаланушы интерфейсіμC /GUI
ЛицензияАшық ақпарат көзі 2020 жылғы жағдай бойынша. Бұрын Коммерциялық, ақысыз білім беруді пайдалану.
Ресми сайтwww.micrium.com/ өнімдер

Микроконтроллердің жұмыс жүйелері (MicroC / OSретінде стильдендірілген μC / OS) Бұл нақты уақыттағы операциялық жүйе (RTOS) Жан Дж. Лаброссені 1991 жылы жасаған. Бұл басымдылыққа негізделген алдын-ала шынайы уақыт үшін ядро микропроцессорлар, көбінесе бағдарламалау тілінде жазылған C. Ол пайдалануға арналған ендірілген жүйелер.

MicroC / OS С-та бірнеше функцияны анықтауға мүмкіндік береді, олардың әрқайсысы тәуелсіз ағын немесе тапсырма ретінде орындай алады. Әр тапсырма әр түрлі басымдылықпен орындалады және меншіктегідей орындалады Орталық процессор (ОРТАЛЫҚ ЕСЕПТЕУІШ БӨЛІМ). Төменгі басымдылықты кез-келген уақытта жоғары басымдықты тапсырмалар алдын-ала алуға болады. Жоғары басымдылықтағы тапсырмалар амалдық жүйенің (ОЖ) қызметтерін пайдаланады (мысалы, кешігу немесе оқиға), төменірек басымдылықты орындауға мүмкіндік береді. ОЖ қызметтері тапсырмалар мен жадыны басқаруға, міндеттер арасындағы байланысқа және уақытқа арналған.[1]

Тарих

MicroC / OS ядросы бастапқыда Embedded Systems Programming журналындағы үш бөлімнен тұратын мақалада және кітапта жарияланған μC / OS нақты уақыттағы ядро Лабросс Жан Дж.ISBN  0-87930-444-8). Автор алдымен а-ның ішкі жақтарын жай суреттеуді көздеді портативті операциялық жүйені ол өзі қолдану үшін ойлап тапты, бірақ кейінірек ОЖ-ны коммерциялық өнім ретінде II және III нұсқаларында дамытты.

μC / OS-II

ΜC / OS үшін жазылған және 1998 жылы коммерциялық өнім ретінде ұсынылған бастапқы код негізінде μC / OS-II портативті, ROM қолдайтын, ауқымды, алдын-ала, нақты уақыт режимінде, детерминирленген, көп міндет ядро үшін микропроцессорлар, және цифрлық сигналдық процессорлар (DSP). Ол қолданбалы 255 тапсырманы басқарады. Оның өлшемін тек белгілі бір пайдалану үшін қажет мүмкіндіктерді қамту үшін масштабтауға болады (5 пен 24 Кбайт аралығында).

ΜC / OS-II-нің көп бөлігі жоғары портативті түрде жазылған ANSI C, мақсатты микропроцессорға арналған кодпен жазылған құрастыру тілі. Соңғысын пайдалану жеңілдету үшін барынша азайтылады портинг басқа процессорларға.

Кіріктірілген жүйелерде қолдану

μC / OS-II кірістірілген пайдалануға арналған. Егер өндірушіде тиісті құралдар тізбегі болса (мысалы, C компиляторы, құрастырушы және байланыстырушы-локатор), μC / OS-II өнімнің бөлігі ретінде ендірілуі мүмкін.

μC / OS-II көптеген енгізілген жүйелерде қолданылады, соның ішінде:

Тапсырма күйлері

μC / OS-II - а көп тапсырма операциялық жүйе. Әр тапсырма шексіз цикл болып табылады және келесі бес күйдің кез-келгенінде болуы мүмкін (қосымша төмендегі суретті қараңыз)

Сонымен қатар, ол 255 тапсырманы басқара алады. Алайда, осы тапсырмалардың сегізі μC / OS-II үшін сақталып, 247 тапсырмаға дейін өтінім қалдыру ұсынылады.[2]

Ядро

The ядро - бұл операциялық жүйеге арналған үй шаруашылығының көптеген міндеттерін орындайтын бағдарлама. Жүктеуші әр түрлі құрылғыларды белгілі күйге келтіретін және компьютерді жалпы жұмыстарға дайындайтын ядроны басқарады.[3] Ядро тапсырмаларды басқаруға (яғни, процессордың уақытын басқаруға) және міндеттер арасындағы байланысқа жауап береді.[4] Ядро ұсынатын негізгі қызмет болып табылады контекстті ауыстыру.

The жоспарлаушы - бұл ядроның қандай тапсырма орындалатынын анықтауға жауапты бөлігі.[5] Нақты уақыттағы ядролардың көпшілігі басымдыққа негізделген. Басымдыққа негізделген ядрода CPU-ны басқару әрдайым іске қосуға дайын ең маңызды тапсырмаға беріледі. Басымдыққа негізделген ядролардың екі түрі бар: алдын-ала емес және алдын-ала. Ерекше емес ядролар әр тапсырманың CPU-ны басқарудан айқын бас тарту үшін бірдеңе жасауын талап етеді.[5] Алдын алу ядросы жүйенің жауап беру қабілеті маңызды болған кезде қолданылады. Осылайша, μC / OS-II және коммерциялық нақты уақыттағы ядролардың басым бөлігі.[6] Орындауға дайын ең маңызды басымдылық әрқашан CPU-ны басқаруға беріледі.

Тапсырмалар беру

Ең жоғары орындалу деңгейіне ие тапсырмаларға жоғары басымдық беріледі жылдамдықты-монотонды жоспарлау.[7] Бұл жоспарлау алгоритмі нақты уақыт режиміндегі операциялық жүйелерде (RTOS) а статикалық-басымдылықты жоспарлау сыныбы.[8]

Тапсырмаларды басқару

Жылы есептеу, тапсырма - бірлік орындау. Кейбіреулерінде операциялық жүйелер, тапсырма синонимі а процесс, басқаларында жіп. Жылы пакеттік өңдеу компьютерлік жүйелер, тапсырма - бұл а ішіндегі орындалу бірлігі жұмыс.MCC / OS-II жүйесінің пайдаланушысы келесі функцияларды қолдану арқылы тапсырмаларды басқара алады:

  • Тапсырманың ерекшелігі
  • Тапсырма құру
  • Тапсырмалар стегі мен стектерді тексеру
  • Тапсырманы жою
  • Тапсырманың басымдылығын өзгертіңіз
  • Тапсырманы уақытша тоқтату және жалғастыру
  • Тапсырма туралы ақпарат алыңыз[9]

Жадыны басқару

Болдырмау үшін бөлшектену, μC / OS-II қосымшаларға а-дан тұрақты өлшемді жад блоктарын алуға мүмкіндік береді бөлім іргелес жады аймағынан жасалған. Барлық жад блоктарының өлшемдері бірдей, ал бөлімде ажырамас блоктар саны. Осы жад блоктарын бөлу және бөлу тұрақты уақытта орындалады және а детерминирленген жүйе.[10]

Уақытты басқару

μC / OS-II уақыттың кідірісі мен күту уақытын бақылау үшін мерзімді уақыт көзін беруді талап етеді. Кене секундына 10 мен 1000 рет болуы керек, немесе Герц. Кене жылдамдығы неғұрлым тез болса, соғұрлым көп болады үстеме μC / OS-II жүйеге әсер етеді. Сағаттық жиіліктің жиілігі қосымшаның қалаған ажыратымдылығына байланысты. Кене көздерін аппараттық таймерді бөлу немесе an жасау арқылы алуға болады үзу ан айнымалы ток (Айнымалы ток) электр желісі сигналы (50 немесе 60 Гц). Бұл мерзімді уақыт көзі сағат тілі деп аталады.[11]

Кейін сағат белгісі анықталады, міндеттер мыналар болуы мүмкін:

  • Тапсырманы кешіктіру
  • Кешіктірілген тапсырманы жалғастырыңыз

Тапсырмалар арасында байланыс орнату

ΜC / OS-II ішіндегі тапсырма немесе интерпроцессті байланыс: семафоралар, хабарлама пошта жәшігі, хабарлама кезектері, тапсырмалар және қызмет көрсету процедураларын үзу (ISR). Тапсырма немесе ISR оқиғаға бақылау блогы (ECB) деп аталатын ядро ​​объектісі арқылы тапсырма бергенде, олар бір-бірімен әрекеттесе алады. Сигнал оқиға болып саналады.

μC / OS-III

μC / OS-III - бұл 2009 жылы енгізілген және μC / OS-II RTOS-қа функционалдылықты қосатын Micro-Controller Operating Systems 3 нұсқасының қысқартылған сөзі.

μC / OS-III μC / OS-II барлық функциялары мен функцияларын ұсынады. Ең үлкен айырмашылық - бұл қолдау көрсетілетін тапсырмалардың саны. μC / OS-II 255 басымдылық деңгейінің әрқайсысында тек 1 тапсырмаға, ең көбі 255 тапсырмаға мүмкіндік береді. μC / OS-III қолданбалы есептердің кез-келген санына, басымдылық деңгейлеріне және деңгейге арналған тапсырмаларға мүмкіндік береді, тек процессордың жадқа қол жетімділігімен шектеледі.[12][13]

μC / OS-II және μC / OS-III қазіргі уақытта Silicon Labs еншілес кәсіпорны Micrium, Inc.-мен жұмыс істейді және әр өнімге немесе өнім желісіне лицензиялануы мүмкін.

Кіріктірілген жүйелерде қолдану

Қолданылуы μC / OS-II-мен бірдей

Тапсырма күйлері

μC / OS-III - а көп тапсырма операциялық жүйе. Әр тапсырма шексіз цикл болып табылады және бес күйдің кез келгенінде болуы мүмкін (тыныш, дайын, жұмыс істеп тұрған, үзілген немесе күтілетін). Тапсырманың басымдықтары 0-ден (ең жоғарғы басымдылық) максимумға дейін 255-ке дейін болуы мүмкін (ең төменгі басымдылық).

Айналмалы кесте

Екі немесе одан да көп тапсырма бірдей басымдылыққа ие болған кезде, ядро ​​бір тапсырманы алдын-ала белгіленген уақыт аралығында іске қосуға мүмкіндік береді, кванттық, содан кейін басқа тапсырманы таңдайды. Бұл процесс аяқталады айналмалы жоспарлау немесе уақытты кесу. Ядро келесі тапсырмаға бақылауды береді, егер:

  • Ағымдағы тапсырмада уақыт бөлігінде жұмыс жоқ немесе
  • Ағымдағы тапсырма уақыт бөлігінің аяқталуына дейін немесе
  • Уақыт кесіндісі аяқталады.

Ядро

ΜC / OS-III үшін ядро ​​функциясы μC / OS-II үшін бірдей.

Тапсырмаларды басқару

Тапсырмаларды басқару сонымен қатар μC / OS-II сияқты жұмыс істейді, дегенмен μC / OS-III көп тапсырманы қолдайды және қолданбада кез-келген тапсырманың болуына мүмкіндік береді. Тапсырмалардың максималды саны тек көлемімен шектеледі жады (код және деректер кеңістігі де) процессорға қол жетімді.

Тапсырма арқылы жүзеге асырылуы мүмкін аяқтауға жоспарлауға жүгіру, онда тапсырма аяқталғаннан кейін өзін жояды немесе әдетте an ретінде жойылады шексіз цикл, оқиғалардың болуын күту және сол оқиғаларды өңдеу.

Жадыны басқару

Жадыны басқару μC / OS-II сияқты орындалады.

Уақытты басқару

μC / OS-III μC / OS-II сияқты басқару мүмкіндіктерін ұсынады. Ол сонымен қатар қосымшаларға қызметтер ұсынады, осылайша тапсырмалар пайдаланушының анықтаған кідірісі үшін олардың орындалуын тоқтата алады. Кідірістер сағат тілінің немесе сағаттардың, минуттардың, секундтардың және минуттардың санымен белгіленеді миллисекундтар.

Тапсырмалар арасында байланыс орнату

Кейде тапсырма немесе ISR ақпаратты басқа тапсырмаға жеткізуі керек, себебі ол солай қауіпті екі тапсырма үшін бірдей нақты деректерге немесе аппараттық ресурстарға бірден қол жеткізу. Мұны ақпарат беру арқылы шешуге болады, тапсырмааралық байланыс деп аталады. Ақпаратты тапсырмалар арасында екі жолмен жеткізуге болады: ғаламдық деректер немесе хабарламалар жіберу арқылы.

Ғаламдық айнымалыларды пайдалану кезінде әр тапсырма немесе ISR оның айнымалыларға эксклюзивті қол жетімділігіне кепілдік беруі керек. Егер ISR қатысса, жалпы айнымалыларға эксклюзивті қол жетімділікті қамтамасыз етудің жалғыз әдісі - бұл өшіру үзілістер. Егер екі тапсырма деректермен бөлісетін болса, әрқайсысы үзілістерді өшіру, жоспарлаушыны құлыптау және пайдалану арқылы айнымалыларға эксклюзивті қол жеткізе алады. семафора, немесе жақсырақ а өзара алып тастау семафора. Хабарламаларды а деп аталатын аралық нысанға жіберуге болады хабарлама кезегі, немесе тікелей тапсырмаға, өйткені μC / OS-III-де әр тапсырманың жеке хабарлама кезегі бар. Сыртқы хабарламалар кезегін пайдаланыңыз, егер бірнеше тапсырма хабарламаларды күтуге тура келсе. Хабарламаны тікелей тапсырмаға жіберіңіз, егер тек бір тапсырма алынған деректерді өңдейтін болса. Тапсырма хабарламаның келуін күтіп тұрғанда, процессордың уақытын пайдаланбайды.

Порттар

Порт үш аспектіні қамтиды: процессор, ОЖ және платаға арнайы (BSP) код. μC / OS-II және μC / OS-III нарықта ең танымал процессорлар мен тақталарға арналған порттары бар және пайдалануға жарамды қауіпсіздік маңызды ендірілген авиация, медициналық жүйелер және ядролық қондырғылар сияқты жүйелер. ΜC / OS-III портына ядроға арналған үш файлдың мазмұнын жазу немесе өзгерту кіреді: OS_CPU.H, OS_CPU_A.ASM, және OS_CPU_C.C. Процессорға арналған үш файлдың мазмұнын жазу немесе өзгерту қажет: CPU.H, CPU_A.ASM, және CPU_C.C. Соңында пайдаланылатын бағалау тақтасы немесе мақсатты тақта үшін тақтаны қолдау пакетін (BSP) жасаңыз немесе өзгертіңіз. ΜC / OS-III порты μC / OS-II портына ұқсас. Порттардың тізімі мұнда көрсетілгеннен әлдеқайда көп және порттар үздіксіз дамуға жатады. ΜC / OS-II және μC / OS-III екеуін де танымал қолдайды SSL / TLS сияқты кітапханалар wolfSSL, бұл барлық байланыстарда қауіпсіздікті қамтамасыз етеді.


Лицензияларды өзгерту

Silicon Labs сатып алғаннан кейін, 2020 жылы Micrium 2020 жылдың ақпанында Open Source лицензиялау үлгісіне көшті. Оған uC / OS III, барлық алдыңғы нұсқалары, барлық компоненттері (USB, файлдық жүйе, GUI, TCP / IP және т.б.) кіреді.


Құжаттама және қолдау

Әдеттегі қолдау форумынан басқа, бірнеше жақсы жазылған кітаптар бар. Кітаптар тегін PDF форматында қол жетімді немесе арзан мұқабада кітап ретінде сатып алынады. Бірқатар кітаптар белгілі бір микроконтроллер архитектурасына / дамыту платформасына сәйкес жасалған, ақылы қолдау Micrium және басқаларынан алынған.

Пайдаланылған әдебиеттер

  1. ^ «Micros / OS қосылған NiosII GCC». Электрлік және компьютерлік инженерия мектебі. Корнелл университеті. Маусым 2006. Алынған 25 сәуір 2017.
  2. ^ Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). б. 77.
  3. ^ Уикипедия: Операциялық жүйелер / ядро ​​модельдері # монолитті ядро
  4. ^ Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). б. 39.
  5. ^ а б Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). б. 40.
  6. ^ Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). б. 42.
  7. ^ Лю, Чунг Ланг; Layland, Джеймс В. (1973). «Нақты уақыт режимінде мультипрограммалаудың алгоритмдерін жоспарлау». ACM журналы. 20 (1): 46–61. CiteSeerX  10.1.1.36.8216. дои:10.1145/321738.321743.
  8. ^ Бовет, Даниэль. «Linux ядросын түсіну». Архивтелген түпнұсқа 2014-09-21.
  9. ^ Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). 45-49 бет.
  10. ^ Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). 273–285 бб.
  11. ^ Лаброссе, Жан Дж. MicroC / OS-II: Нақты уақыттағы ядро (Екінші басылым). 145–152 бет.
  12. ^ «μC / OS-II және μC / OS-III ерекшеліктерін салыстыру». Микрий.
  13. ^ «μC / OS-III шолуы». Микрий.

Дереккөздер

Сыртқы сілтемелер