Asynchronous programming using C++ coroutines in embedded and edge computing

Belson, Bruce (2024) Asynchronous programming using C++ coroutines in embedded and edge computing. PhD thesis, James Cook University.

[img]
Preview
PDF (Thesis)
Download (5MB) | Preview
View at Publisher Website: https://doi.org/10.25903/sgqr-1f83
 
2


Abstract

Bruce Belson investigated C++20 'coroutine' support, examining its suitability for Internet-of-Things devices and embedded systems. The enhancements required for widespread embedded use were identified. Coroutines were found to offer improved ease-of-use. Simple and careful application of coroutines delivered 20% speed improvements and 18% power reduction, offering much improved battery life.

Item ID: 86079
Item Type: Thesis (PhD)
Keywords: C++, coroutines, embedded software, Internet of Things (IoT), microcontrollers
Related URLs:
Copyright Information: Copyright © 2024 Bruce Belson
Additional Information:

Three publications arising from this thesis are stored in ResearchOnline@JCU, at time of processing. Please see the Related URLS. The publications are:

[Chapter 2] Belson, Bruce, Holdsworth, Jason, Xiang, Wei, and Philippa, Bronson (2019) A survey of asynchronous programming using coroutines in the Internet of Things and embedded systems. ACM Transactions on Embedded Computing Systems, 18 (3). 21.

[Chapter 3] Belson, Bruce, Xiang, Wei, Holdsworth, Jason, and Philippa, Bronson (2021) C++20 coroutines on microcontrollers - what we learned. IEEE Embedded Systems Letters, 13 (1). pp. 9-12.

[Chapter 4] Belson, Bruce, and Philippa, Bronson (2022) Speeding up Machine Learning Inference on Edge Devices by Improving Memory Access Patterns using Coroutines. In: Proceedings of the IEEE 25th International Conference on Computational Science and Engineering. pp. 9-16. From: CSE 2022: IEEE 25th International Conference on Computational Science and Engineering, 9-11 December 2022, Wuhan, China.

Date Deposited: 11 Jul 2025 02:06
FoR Codes: 46 INFORMATION AND COMPUTING SCIENCES > 4612 Software engineering > 461204 Programming languages @ 30%
40 ENGINEERING > 4009 Electronics, sensors and digital hardware > 400902 Digital electronic devices @ 40%
40 ENGINEERING > 4009 Electronics, sensors and digital hardware > 400907 Industrial electronics @ 30%
SEO Codes: 28 EXPANDING KNOWLEDGE > 2801 Expanding knowledge > 280110 Expanding knowledge in engineering @ 50%
28 EXPANDING KNOWLEDGE > 2801 Expanding knowledge > 280115 Expanding knowledge in the information and computing sciences @ 50%
Downloads: Total: 2
Last 12 Months: 2
More Statistics

Actions (Repository Staff Only)

Item Control Page Item Control Page