{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:09:58Z","timestamp":1750306198449,"version":"3.41.0"},"reference-count":27,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,1,5]],"date-time":"2017-01-05T00:00:00Z","timestamp":1483574400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGBED Rev."],"published-print":{"date-parts":[[2017,1,5]]},"abstract":"<jats:p>Embedded computer systems are proliferating, but the complexities of embedded software make it increasingly difficult to produce systems that are robust and reliable. These challenges increase as embedded systems are connected to networks and relied on to control or monitor physical processes in critical infrastructure. This paper describes a senior-level course that exposes students to foundational characteristics of embedded software, such as concurrency, synchronization and communication. The core of the class is a sequence of laboratory assignments in which students design and implement a real-time operating system. Each student-developed RTOS has the same API, so all can run the same application code, but internal implementations vary widely. The principal challenges that arise in the design and debugging of a multi-tasking RTOS tend to be instances of the general problems that arise in embedded software. In our experience, the activity of creating a working RTOS is effective in helping students acquire the knowledge and skills required to be successful embedded software developers.<\/jats:p>","DOI":"10.1145\/3036686.3036695","type":"journal-article","created":{"date-parts":[[2017,1,6]],"date-time":"2017-01-06T13:30:07Z","timestamp":1483709407000},"page":"71-80","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Embedded software education"],"prefix":"10.1145","volume":"14","author":[{"given":"James","family":"Archibald","sequence":"first","affiliation":[{"name":"Brigham Young University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Doran","family":"Wilde","sequence":"additional","affiliation":[{"name":"Brigham Young University"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,1,5]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Coverity: Open source code has fewer defects. linux-magazine.com April 2014.  Coverity: Open source code has fewer defects. linux-magazine.com April 2014."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1080\/08993400601165347"},{"key":"e_1_2_1_3_1","unstructured":"M. Barr. Five more top causes of nasty embedded software bugs. www.eetimes.com November 2010.  M. Barr. Five more top causes of nasty embedded software bugs. www.eetimes.com November 2010."},{"key":"e_1_2_1_4_1","unstructured":"M. Barr. Five top causes of nasty embedded software bugs. www.eetimes.com April 2010.  M. Barr. Five top causes of nasty embedded software bugs. www.eetimes.com April 2010."},{"key":"e_1_2_1_5_1","unstructured":"R. E. Bryant and D. R. O'Hallaron. Computer Systems: A Programmer's Perspective. Prentice Hall 2nd edition 2011.  R. E. Bryant and D. R. O'Hallaron. Computer Systems: A Programmer's Perspective. Prentice Hall 2nd edition 2011."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086519.1086526"},{"key":"e_1_2_1_7_1","first-page":"1","volume-title":"Parallel and Distributed Systems, 2007 International Conference on","volume":"2","author":"Chen J.","year":"2007"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2009.118"},{"key":"e_1_2_1_9_1","first-page":"362","volume-title":"Information Technology: Research and Education, 2005. ITRE 2005. 3rd International Conference on","author":"Hsu R. C.","year":"2005"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/TE.2006.888906"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1121812.1121814"},{"key":"e_1_2_1_12_1","first-page":"289","volume-title":"Proc. FECS","author":"Jamieson P.","year":"2010"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TE.2010.2058576"},{"key":"e_1_2_1_14_1","first-page":"742","volume-title":"Information & Communication Technology Electronics & Microelectronics (MIPRO), 2013 36th International Convention on","author":"Kastelan I.","year":"2013"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086519.1086522"},{"key":"e_1_2_1_16_1","doi-asserted-by":"crossref","unstructured":"J. J. Labrosse. MicroC\/OS-II: The real-time kernel. CMP Books 2nd edition 2002.  J. J. Labrosse. MicroC\/OS-II: The real-time kernel. CMP Books 2nd edition 2002.","DOI":"10.1201\/9781482295603"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/TE.2008.2010990"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1002\/cae.20401"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1121812.1121818"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ETTandGRS.2008.182"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1121812.1121815"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086519.1086521"},{"volume-title":"Addison-Wesley","year":"1999","author":"Simon D. E.","key":"e_1_2_1_23_1"},{"key":"e_1_2_1_24_1","unstructured":"D. B. Stewart. Twenty-five most common mistakes with real-time software development. Tutorial at 2006 Embedded Systems Conference September 2006.  D. B. Stewart. Twenty-five most common mistakes with real-time software development. Tutorial at 2006 Embedded Systems Conference September 2006."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086519.1086524"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/5.811598"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/MESA.2010.5552036"}],"container-title":["ACM SIGBED Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3036686.3036695","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3036686.3036695","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:50:26Z","timestamp":1750218626000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3036686.3036695"}},"subtitle":["an RTOS-based approach"],"short-title":[],"issued":{"date-parts":[[2017,1,5]]},"references-count":27,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,1,5]]}},"alternative-id":["10.1145\/3036686.3036695"],"URL":"https:\/\/doi.org\/10.1145\/3036686.3036695","relation":{},"ISSN":["1551-3688"],"issn-type":[{"type":"electronic","value":"1551-3688"}],"subject":[],"published":{"date-parts":[[2017,1,5]]},"assertion":[{"value":"2017-01-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}