
{"id":719,"date":"2019-09-26T15:13:01","date_gmt":"2019-09-26T15:13:01","guid":{"rendered":"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/?page_id=719"},"modified":"2019-10-10T09:01:01","modified_gmt":"2019-10-10T09:01:01","slug":"level-5-embedded-and-real-time-systems","status":"publish","type":"page","link":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-5-embedded-and-real-time-systems\/","title":{"rendered":"Level 5 &#8211; Embedded and Real Time Systems"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-134\" src=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539.png\" alt=\"\" width=\"6178\" height=\"2552\" srcset=\"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539.png 6178w, https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539-300x124.png 300w, https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539-768x317.png 768w, https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539-1024x423.png 1024w, https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539-560x231.png 560w, https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539-260x107.png 260w, https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-content\/uploads\/sites\/94\/2018\/09\/banner_ELEC1_KS_6171x2539-160x66.png 160w\" sizes=\"auto, (max-width: 6178px) 100vw, 6178px\" \/><\/p>\n<h1><b>Embedded and Real-Time Systems<\/b><\/h1>\n<h2>(Practical course materials for level 5)<\/h2>\n<p><i>Dr Nicholas J Outram, University of Plymouth<\/i><\/p>\n<p>&nbsp;<\/p>\n<p>In level 5 (stage-2 of undergraduate studies), we begin to address a problem you may have encountered: how to read and update multiple devices in real-time. In many ways, this is the core role of a microcontroller. Just knowing the syntax of a language, the registers of a device or the APIs of a framework such as Mbed-os is not usually enough. You also need to know how to approach, what might be generally called <em>software engineering<\/em>. The good news is that most problems have well tried and tested solutions which can be adapted and reused. One of the aims of this section is to introduce you to two of these:<\/p>\n<ul>\n<li>Rapid Polling<\/li>\n<li>Interrupts<\/li>\n<\/ul>\n<p>At <a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-6-advanced-embedded-programming\/\">level 6<\/a> (year 3 undergraduate), we will go further and use a real time operating system (RTOS), introducing concepts such as threads and event queues.<\/p>\n<p><em>Plymouth (UK) Students<\/em> &#8211; This section contains many of my practical labs the modules ELEC240 and ELEC241. They are also used as a warm-up for stage-3 ELEC350 and ELEC351.<\/p>\n<h2>Table of Contents<\/h2>\n<p><a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/embedded-systems-in-context-level-4\/foreward\/\">Forward<\/a><\/p>\n<p><a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-5-embedded-and-real-time-systems\/review-of-mbed\/\">Review of Mbed<\/a><\/p>\n<p><a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-5-embedded-and-real-time-systems\/managing-multiple-inputs-and-outputs\/\">Managing Multiple Inputs and Outputs<\/a><\/p>\n<p><a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-5-embedded-and-real-time-systems\/performing-real-time-tasks-with-interrupts\/\">Performing Real-Time Tasks with Interrupts<\/a><\/p>\n<p><a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-5-embedded-and-real-time-systems\/analogue-interfacing-real-time-data-conversion\/\">Analogue Interfacing &#8211; Real Time Data Conversion<\/a><\/p>\n<p>Interfacing with SPI and I2C<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/blogs.plymouth.ac.uk\/embedded-systems\/mbed-os-2\/courses\/glossary-2\/\">Glossary<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Embedded and Real-Time Systems (Practical course materials for level 5) Dr Nicholas J Outram, University of Plymouth &nbsp; In level 5 (stage-2 of undergraduate studies), we begin to address a problem you may have encountered: how to read and update multiple devices in real-time. In many ways, this is the core role of a microcontroller.&hellip; <a class=\"more-link\" href=\"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/microcontrollers\/mbed-os-2\/courses\/level-5-embedded-and-real-time-systems\/\">Continue reading <span class=\"screen-reader-text\">Level 5 &#8211; Embedded and Real Time Systems<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":128,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-719","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/pages\/719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/comments?post=719"}],"version-history":[{"count":12,"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/pages\/719\/revisions"}],"predecessor-version":[{"id":823,"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/pages\/719\/revisions\/823"}],"up":[{"embeddable":true,"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/pages\/128"}],"wp:attachment":[{"href":"https:\/\/blogs.plymouth.ac.uk\/embedded-systems\/wp-json\/wp\/v2\/media?parent=719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}