| dc.contributor.author | Dounaev, Pavel | |
| dc.date.accessioned | 2021-05-26T11:39:49Z | |
| dc.date.available | 2021-05-26T11:39:49Z | |
| dc.date.issued | 2021 | - |
| dc.identifier.uri | http://www.theseus.fi/handle/10024/499560 | |
| dc.description.abstract | Opinnäytetyön tavoitteena oli dokumentoida reaaliaikaisen käyttöjärjestelmän suunnittelu ja toteutus ARM CortexM3prosessorille. Käyttöjärjestelmä suunniteltiin ja toteutettiin asetettujen vaatimuksien mukaan. Toteutetun käyttöjärjestelmän oli mahduttava mikro-ohjaimen rajalliseen Flash muistitilaan, mutta samalla sisältävän riittävästi ominaisuuksia, jotta käyttöjärjestelmä voitaisiin luokitella reaaliaikaiseksi moniajokäyttöjärjestelmäksi. Käyttöjärjestelmän kehittämiseen sisältyi CortexM3-prosessorin käyttöjärjestelmä tuen tutkiminen, jota käytettiin käyttöjärjestelmän ominaisuuksien toteuttamiseen.
Käyttöjärjestelmän kehittäminen oli toteutettu CortexM3prosessoriin pohjautuvalla NXPLPC1549kehityskortilla. Käyttöjärjestelmän pienen koon saavuttamiseksi käyttöjärjestelmä suunniteltiin lisäkerrokseksi mikroohjaimen ohjelmistopinoon. Käyttöjärjestelmän moniajo saavutettiin toteuttamalla mekanismi, joka jakaa sovelluksen useaan pieneen yksikköön, taskiin, joita käyttöjärjestelmä hallitsee ja ajoittaa suoritusta ajoitusalgoritmin mukaan. Ajoitusalgoritmiksi suunniteltiin prioriteettipohjainen roundrobinalgoritmi, joka mahdollisti tärkeimmän taskin suorituksen sovelluksen suorituksen aikana. Noudattamalla muita annettuja vaatimuksia, synkronointi ja taskien välisiä viestintäominaisuuksia toteutettiin semafori, mutex ja postilaatikko primitiiveillä.
Kehitetystä käyttöjärjestelmästä tuli yksinkertainen, mutta pieni ja käytännöllinen. Käyttöjärjestelmistä, käyttöjärjestelmien teoriasta ja toteutuksista kiinnostunut henkilö voi käyttää kehitettyä käyttöjärjestelmää käytännöllisenä esimerkkinä yksinkertaisesta käyttöjärjestelmästä syvempää analysointia ja oppimista varten. Kehitettyä käyttöjärjestelmää voidaan jatkokehittää toteuttamalla puuttuvat vaatimukset ja myös laajentaa lisäominaisuuksilla käyttöjärjestelmän turvallisuuteen ja skaalautuvuuteen. Käyttöjärjestelmän lähde koodi on saatavilla Gitohjelmavarastosta: https://github.com/dounpav/pavOS | fi |
| dc.description.abstract | The objective of this project was to document the design and implementation of a Real-Time Operating System (RTOS) for the ARM CortexM3 processor. A set of requirements was set for the RTOS. The RTOS needed to be small enough to fit a microcontroller’s Flash memory but also provide enough features so the RTOS could be considered as a multitasking RTOS. The development of the RTOS also included exploring Cortex-M3 processor’s Operating System (OS) support that was utilized to implement the OS features.
To develop the RTOS for the Cortex-M3 processor, a Cortex-M3 based NXP LPC1549 microcontroller board was chosen. To keep the size of the RTOS small, it was designed to be an additional layer in the microncontroller’s software stack. The multitasking was achieved by allowing the application to be split into multiple units known as tasks, which the RTOS manages and schedules for the execution. The implemented RTOS was designed to use priority based round-robin scheduling as its scheduling algorithm for the scheduling tasks, which allowed the system to execute the most important tasks at any given time. To further follow the set requirements, synchronization and intertask communication features were implemented with semaphore, mutex and mailbox primitives to be used by these tasks.
A simple but yet small and practical RTOS was achieved. It can be used and analyzed by anyone interested in OSs or anyone who needs a reference about implementing one for the Cortex-M3 processor. The developed RTOS can further be developed to complete missing requirements and also add additional features that would increase its security and its scalability. | en |
| dc.language.iso | eng | - |
| dc.rights | fi=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|sv=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|en=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.| | - |
| dc.title | Design and Implementation of Real-Time Operating System | - |
| dc.type.ontasot | fi=AMK-opinnäytetyö|sv=YH-examensarbete|en=Bachelor's thesis| | - |
| dc.identifier.urn | URN:NBN:fi:amk-2021052611359 | - |
| dc.subject.specialization | Älykkäät järjestelmät ja ohjelmistot | - |
| dc.subject.degreeprogram | fi=Tieto- ja viestintätekniikka|sv=Informations- och kommunikationsteknik|en=Information and Communications Technology| | - |
| dc.subject.yso | processors | - |
| dc.subject.yso | software development | - |
| dc.subject.yso | microcontrollers | - |
| dc.subject.yso | programming | - |
| dc.subject.yso | software design | - |
| dc.subject.discipline | Tieto- ja viestintätekniikan tutkinto-ohjelma | - |
| annif.suggestions.links | http://www.yso.fi/onto/yso/p10874|http://www.yso.fi/onto/yso/p2407|http://www.yso.fi/onto/yso/p21530|http://www.yso.fi/onto/yso/p14524|http://www.yso.fi/onto/yso/p25316|http://www.yso.fi/onto/yso/p4887|http://www.yso.fi/onto/yso/p27066|http://www.yso.fi/onto/yso/p5461|http://www.yso.fi/onto/yso/p22076|http://www.yso.fi/onto/yso/p18792 | en |