Notice This is not the latest version of this item. The latest version can be found at:http://dx.doi.org/10.48441/4427.1927.2
Fulltext available Open Access
DC FieldValueLanguage
dc.contributor.advisorSchmidt, Thomas-
dc.contributor.authorGandraß, Niels Lukas-
dc.date.accessioned2024-09-25T12:40:29Z-
dc.date.available2024-09-25T12:40:29Z-
dc.date.created2022-02-23-
dc.date.issued2024-09-25-
dc.identifier.urihttps://hdl.handle.net/20.500.12738/16325-
dc.description.abstractTimer sind Bestandteil jedes Mikrocontrollers und beeinflussen zahlreiche Aspekte eingebetteter Systeme. Ihre wachsende Vielfalt lässt sich jedoch nur noch unzureichend über die historisch gewachsenen APIs eingebetteter Betriebssysteme abbilden. Ein solider und zukunftsorientierter Ersatz für die aktuelle Hardware-Abstraktion ist daher notwendig. Diese Arbeit bietet einen umfassenden Einblick in heutige Timer-Peripherie. Wir analysieren die Timer von 43 Gerätefamilien und acht Herstellern, charakterisieren Timeouts für typische IoT Anwendungen, beleuchten die Timer APIs eingebetteter Betriebssysteme, identifizieren Mängel aktueller Lösungen und diskutieren Ansätze zur Hardware-Abstraktion. Auf dieser Wissensbasis entwickeln wir ein zweischichtiges Low-level Timer API Design und implementieren es für das RIOT Betriebssystem. uTimer ermöglicht die transparente Nutzung unterschiedlicher Timer- Typen über eine gemeinsame Schnittstelle. Diese ist plattformunabhängig nutzbar und stellt grundlegende sowie gerätespezifische Funktionen zur Verfügung. Timer und Kanäle werden im Durchschnitt verdreifacht und neue Timer-Typen, wie beispielsweise ultra low-power timer, nativ unterstützt. Die Vereinheitlichung aktueller APIs sorgt darüber hinaus für konsistenten und gut wartbaren Timer-Code innerhalb des gesamten RIOT-Ökosystems. Wir entwickeln plattformunabhängige Unit-Tests sowie Benchmarks und führen diese auf insgesamt 14 Mikrocontrollern in einem HiL-Testbett mit CI Unterstützung aus. Die vorgestellte uTimer API benötigt für ihre zusätzliche Abstraktion lediglich zwischen 6 und 21 CPU-Zyklen. Dies entspricht einem Timeout-Fehler von weniger als 0:05%. Diesem steht die Nutzbarkeit zahlreicher neuer Timer-Funktionen gegenüber. Verzichtet man für spezielle Anwendungsfälle auf die Abstraktion von Timer-Typen, so kann jeglicher API-Overhead vollständig vermieden werden. Die automatisierte Ausführung von Tests und Benchmarks auf der aktuellen Code-Basis sowie für alle bevorstehenden Änderungen erleichtert außerdem die Entwicklung nachhaltiger Peripherie-Treiber und ermöglicht deren fundierte Bewertung.de
dc.description.abstractTimers are part of every microcontroller and influence numerous aspects of embedded applications. As the heterogeneous spectrum of timer peripherals continues to grow, embedded OSs increasingly struggle to expose novel timers and advanced features via their time-honoured APIs. The need for comprehensive and future-proof hardware abstraction therefore arises. This work provides detailed insight into modern timer peripherals. We conduct a survey of timer hardware across 43 device families from eight manufacturers, characterize typical timeouts within IoT applications, examine timer APIs of popular embedded OSs, identify deficiencies of current solutions, and discuss different approaches to hardware abstraction. This forms a solid base, on which a two-layered low-level timer API design is proposed and implemented for the RIOT OS. Its uniform interface allows transparently interchangeable use of all hardware timers. Generic and peripheral-specific features are exposed, yet application portability is preserved. On average, available timers and channels are tripled, and previously unexposed advanced timer types such as ultra-low power timers become usable. Current interfaces are streamlined to form a single API, fostering uniformity and maintainability of timer code throughout the whole RIOT ecosystem. We develop platform-independent timer unit tests and benchmark suites that are executed using a HiL testbed with CI support. The performance of our novel uTimer API is assessed on 14 MCUs. It only adds between six and 21 CPU cycles of abstraction overhead compared to existing solutions. This corresponds to timeout errors of less than 0:05% while numerous modern timer features are made available to user applications and high-level OS modules. For high-performance use, deliberate renunciation of timer-type transparency eliminates any performance differences between APIs at the cost of narrowing application portability. Automated execution of the contributed unit tests and benchmarks on nightly builds and pull requests moreover facilitates the development of sustainable implementations and permits their sound evaluation.en
dc.language.isoenen_US
dc.relation.isreplacedbyhttp://dx.doi.org/10.48441/4427.1927.2-
dc.subjectBetriebssystemeen_US
dc.subjectEingebettete Systemeen_US
dc.subjectHardwareabstraktionen_US
dc.subjectHardware Timeren_US
dc.subjectRessourcenbeschränkte Geräteen_US
dc.subjectSoftwaredesignen_US
dc.subjectembedded systemsen_US
dc.subjecthardware abstractionen_US
dc.subjecthardware timersen_US
dc.subjectoperating systemsen_US
dc.subjectresource constrained devicesen_US
dc.subject.ddc004: Informatiken_US
dc.titleA Uniform API for Cross-Platform Timer Hardware Abstraction on Resource Constrained IoT Devicesen
dc.typeThesisen_US
openaire.rightsinfo:eu-repo/semantics/openAccessen_US
thesis.grantor.departmentDepartment Informatiken_US
thesis.grantor.universityOrInstitutionHochschule für Angewandte Wissenschaften Hamburgen_US
tuhh.contributor.refereeKorf, Franz-
tuhh.identifier.urnurn:nbn:de:gbv:18302-reposit-195068-
tuhh.oai.showtrueen_US
tuhh.publication.instituteDepartment Informatiken_US
tuhh.publication.instituteFakultät Technik und Informatiken_US
tuhh.type.opusMasterarbeit-
dc.type.casraiSupervised Student Publication-
dc.type.dinimasterThesis-
dc.type.drivermasterThesis-
dc.type.statusinfo:eu-repo/semantics/publishedVersionen_US
dc.type.thesismasterThesisen_US
dcterms.DCMITypeText-
tuhh.dnb.statusdomainen_US
item.advisorGNDSchmidt, Thomas-
item.creatorGNDGandraß, Niels Lukas-
item.languageiso639-1en-
item.cerifentitytypePublications-
item.openairecristypehttp://purl.org/coar/resource_type/c_46ec-
item.creatorOrcidGandraß, Niels Lukas-
item.fulltextWith Fulltext-
item.grantfulltextopen-
item.openairetypeThesis-
crisitem.author.deptDepartment Informatik-
crisitem.author.orcid0000-0002-8523-9349-
crisitem.author.parentorgFakultät Technik und Informatik-
Appears in Collections:Theses
Show simple item record

Google ScholarTM

Check

HAW Katalog

Check

Note about this record

Version History
Version Item Date Summary
2 doi:10.48441/4427.1927.2 2024-10-07 13:53:35.776 updated version (only minor changes, because of corrupted graphics): 2024-10-07
1 doi:10.48441/4427.1927 2024-09-25 14:40:29.0 old version: 2024-09-25

Items in REPOSIT are protected by copyright, with all rights reserved, unless otherwise indicated.