{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T01:25:29Z","timestamp":1760059529497,"version":"build-2065373602"},"reference-count":57,"publisher":"MDPI AG","issue":"6","license":[{"start":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T00:00:00Z","timestamp":1750291200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Future Internet"],"abstract":"<jats:p>This paper presents a framework that enables programmers to deploy embedded real-time firmware of Internet of Things (IoT) devices more conveniently than using plain C\/C++-language programming, by abstracting away from low-level details and the ad hoc management of multiple, diverse network technologies. Moreover, unlike other proposals, the framework is able to accommodate both time and event-driven applications. Experimental results show that for Modbus-CAN communication, the worst-case time overhead of the framework is less than 6% of the total combined processing and communication time. Its memory requirement is less than 5% and 4% of the Flash memory and RAM available on a typical IoT microcontroller. The framework also compares favorably with respect to two other approaches in terms of the sustainable minimum cycle time, memory overhead, and level of programming abstraction when tested on a simple real-time algorithm.<\/jats:p>","DOI":"10.3390\/fi17060269","type":"journal-article","created":{"date-parts":[[2025,6,20]],"date-time":"2025-06-20T03:05:27Z","timestamp":1750388727000},"page":"269","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["A C-Based Framework for Low-Cost Real-Time Embedded Systems"],"prefix":"10.3390","volume":"17","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9607-9993","authenticated-orcid":false,"given":"Ivan","family":"Cibrario Bertolotti","sequence":"first","affiliation":[{"name":"Istituto di Elettronica e di Ingegneria dell Informazione e delle Telecomunicazioni (IEIIT), Consiglio Nazionale delle Ricerche (CNR), 10129 Turin, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2025,6,19]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"Bigler, T., Gaderer, G., Loschmidt, P., and Sauter, T. (2011, January 5\u20139). SmartFridge: Demand Side Management for the device level. Proceedings of the 16th IEEE Conference on Emerging Technologies and Factory Automation (ETFA), Toulouse, France.","DOI":"10.1109\/ETFA.2011.6059105"},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"1313","DOI":"10.1016\/j.engappai.2012.05.002","article-title":"State of the art of smart homes","volume":"25","author":"Morikawa","year":"2012","journal-title":"Eng. Appl. Artif. Intell."},{"key":"ref_3","doi-asserted-by":"crossref","unstructured":"Lobaccaro, G., Carlucci, S., and L\u00f6fstr\u00f6m, E. (2016). A Review of Systems and Technologies for Smart Homes and Smart Grids. Energies, 9.","DOI":"10.3390\/en9050348"},{"key":"ref_4","doi-asserted-by":"crossref","unstructured":"Choudhary, G., and Jain, A.K. (2016, January 23\u201325). Internet of Things: A survey on architecture, technologies, protocols and challenges. Proceedings of the International Conference on Recent Advances and Innovations in Engineering (ICRAIE), Jaipur, India.","DOI":"10.1109\/ICRAIE.2016.7939537"},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"1238","DOI":"10.1109\/COMST.2024.3430368","article-title":"A Survey on Intelligent Internet of Things: Applications, Security, Privacy, and Future Directions","volume":"27","author":"Aouedi","year":"2024","journal-title":"IEEE Commun. Surv. Tutor."},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"110350","DOI":"10.1016\/j.comnet.2024.110350","article-title":"A comprehensive survey on digital twin for future networks and emerging Internet of Things industry","volume":"244","author":"Hakiri","year":"2024","journal-title":"Comput. Netw."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"020114","DOI":"10.1063\/5.0241650","article-title":"Transportation networks that leverage internet of things architectures: A review","volume":"3162","author":"Robinsha","year":"2025","journal-title":"AIP Conf. Proc."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"114263","DOI":"10.1109\/ACCESS.2024.3443271","article-title":"A Systematic Literature Review on Requirements Engineering and Maintenance for Embedded Software","volume":"12","author":"Fariha","year":"2024","journal-title":"IEEE Access"},{"key":"ref_9","unstructured":"Cibrario Bertolotti, I., Hu, T., and Ghafour Zadeh Kashani, G. (2017, January 23\u201327). A Low-Overhead Framework for Inexpensive Embedded Control Systems. Proceedings of the 12th International Conference on Digital Telecommunications (ICDT), Venice, Italy."},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"1332","DOI":"10.1016\/j.conengprac.2006.10.004","article-title":"Communication in industrial automation\u2014What is going on?","volume":"15","author":"Neumann","year":"2007","journal-title":"Control Eng. Pract."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"309","DOI":"10.1016\/j.rcim.2017.08.001","article-title":"Hard real-time communication solution for mechatronic systems","volume":"49","year":"2018","journal-title":"Robot.-Comput.-Integr. Manuf."},{"key":"ref_12","first-page":"1","article-title":"Event-Driven Architectures: The Foundation of Modern Distributed Systems","volume":"16","author":"Thondalapally","year":"2025","journal-title":"Int. J. Sci. Technol."},{"key":"ref_13","doi-asserted-by":"crossref","unstructured":"Mok, W.Y. (2024, January 15\u201317). A Conceptual Model Based Design Methodology for MongoDB Databases. Proceedings of the 2024 7th International Conference on Information and Computer Technologies (ICICT), Honolulu, HI, USA.","DOI":"10.1109\/ICICT62343.2024.00030"},{"key":"ref_14","doi-asserted-by":"crossref","unstructured":"Umbarkar, S., and Admane, S. (2025, January 7\u20139). Advanced Embedded Software and Systems using MBD for Electrical Grid Stability. Proceedings of the 2025 IEEE 14th International Conference on Communication Systems and Network Technologies (CSNT), Bhopal, India.","DOI":"10.1109\/CSNT64827.2025.10967990"},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"64","DOI":"10.1109\/JPROC.2002.805826","article-title":"The synchronous languages 12 years later","volume":"91","author":"Benveniste","year":"2003","journal-title":"Proc. IEEE"},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"268","DOI":"10.1145\/3674657","article-title":"Synchronous Programming with Refinement Types","volume":"8","author":"Chen","year":"2024","journal-title":"Proc. ACM Program. Lang."},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Samek, M. (2008). Practical UML Statecharts in C\/C++, Newnes. [2nd ed.].","DOI":"10.1201\/b16463"},{"key":"ref_18","doi-asserted-by":"crossref","first-page":"213","DOI":"10.1177\/00375497241290369","article-title":"STL4IoT: A statechart template library for IoT system design","volume":"101","author":"Rempillo","year":"2025","journal-title":"Simulation"},{"key":"ref_19","doi-asserted-by":"crossref","unstructured":"Navet, N., and Fejoz, L. (2016, January 30). CPAL: High-level Abstractions for Safe Embedded Systems. Proceedings of the ACM International Workshop on Domain-Specific Modeling (DSM), Amsterdam, The Netherlands.","DOI":"10.1145\/3023147.3023153"},{"key":"ref_20","unstructured":"(2024). Information Technology\u2014Programming Languages\u2014C, 5th ed (Standard No. ISO\/IEC 9899)."},{"key":"ref_21","unstructured":"Cibrario Bertolotti, I., Hu, T., and Navet, N. (June, January 31). Model-based design languages: A case study. Proceedings of the 13th IEEE International Workshop on Factory Communication Systems (WFCS), Trondheim, Norway."},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Hu, T., Cibrario Bertolotti, I., and Navet, N. (2017, January 13\u201315). Towards Seamless Integration of N-Version Programming in Model-Based Design. Proceedings of the 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), Limassol, Cyprus.","DOI":"10.1109\/ETFA.2017.8247678"},{"key":"ref_23","first-page":"1","article-title":"From FMTV to WATERS: Lessons Learned from the First Verification Challenge at ECRTS (invited)","volume":"Volume 262","author":"Papadopoulos","year":"2023","journal-title":"Leibniz International Proceedings in Informatics (LIPIcs), Proceedings of the 35th Euromicro Conference on Real-Time Systems (ECRTS 2023), Vienna, Austria, 11\u201314 July 2023"},{"key":"ref_24","doi-asserted-by":"crossref","unstructured":"Bolton, W. (2015). Programmable Logic Controllers, Newnes. [6th ed.].","DOI":"10.1016\/B978-0-12-802929-9.00001-7"},{"key":"ref_25","unstructured":"CODESYS (2025, June 16). Industrial IEC 61131-3 PLC Programming. Available online: https:\/\/www.codesys.com."},{"key":"ref_26","doi-asserted-by":"crossref","unstructured":"Strasser, T., Rooker, M., Ebenhofer, G., Zoitl, A., Sunder, C., Valentini, A., and Martel, A. (2008, January 13\u201316). Framework for Distributed Industrial Automation and Control (4DIAC). Proceedings of the 6th IEEE International Conference on Industrial Informatics (INDIN), Daejeon, Republic of Korea.","DOI":"10.1109\/INDIN.2008.4618110"},{"key":"ref_27","doi-asserted-by":"crossref","unstructured":"Fu, Y., Gui, W., and Song, H. (2023, January 23\u201325). Smart Factory Design Based on CoDeSys. Proceedings of the 2023 6th International Conference on Information Communication and Signal Processing (ICICSP), Xi\u2019an, China.","DOI":"10.1109\/ICICSP59554.2023.10390674"},{"key":"ref_28","doi-asserted-by":"crossref","unstructured":"Pinto, G., Nunes, A., Silva, L., Pinto, R., Pinheiro, J., and Ribeiro, A. (2023, January 12-\u201327). Digital Factory: An Industrial Case Study for Function Block-Oriented Development. Proceedings of the 2023 IEEE 9th World Forum on Internet of Things (WF-IoT), Aveiro, Portugal.","DOI":"10.1109\/WF-IoT58464.2023.10539486"},{"key":"ref_29","unstructured":"(2013). Programmable Controllers\u2014Part 3: Programming Languages, 3rd ed (Standard No. IEC 61131-3)."},{"key":"ref_30","unstructured":"Arduino, A.G. (2025, June 16). Arduino IDE. Available online: https:\/\/www.arduino.cc."},{"key":"ref_31","doi-asserted-by":"crossref","unstructured":"\u00c1vila, B.Y.L., V\u00e1zquez, C.A.G., Baluja, O.P., Alexandru, M., Cotfas, D.T., Cotfas, P.A., and Dom\u00ednguez, L.A.Q. (2024, January 24\u201326). Protothread and Cooperative Multitasking Scheduler on the Arduino Framework. Proceedings of the 2024 International Conference on Applied and Theoretical Electricity (ICATE), Craiova, Romania.","DOI":"10.1109\/ICATE62934.2024.10749444"},{"key":"ref_32","doi-asserted-by":"crossref","unstructured":"Buonocunto, P., Biondi, A., and Lorefice, P. (2014, January 18\u201320). Real-time multitasking in Arduino. Proceedings of the 9th IEEE International Symposium on Industrial Embedded Systems (SIES), Pisa, Italy.","DOI":"10.1109\/SIES.2014.7087331"},{"key":"ref_33","doi-asserted-by":"crossref","first-page":"111185","DOI":"10.1016\/j.jss.2021.111185","article-title":"ARTe: Providing real-time multitasking to Arduino","volume":"186","author":"Restuccia","year":"2022","journal-title":"J. Syst. Softw."},{"key":"ref_34","doi-asserted-by":"crossref","first-page":"41","DOI":"10.1016\/j.csi.2014.05.004","article-title":"Modular design of an open-source, networked embedded system","volume":"37","author":"Hu","year":"2015","journal-title":"Comput. Stand. Interfaces"},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"14","DOI":"10.5753\/jisa.2024.3634","article-title":"Hardware-Independent Embedded Firmware Architecture Framework","volume":"15","author":"Farina","year":"2024","journal-title":"J. Internet Serv. Appl."},{"key":"ref_36","unstructured":"Barry, R. (2010). Using the FreeRTOS Real Time Kernel\u2014Standard Edition, Lulu Press. [1st ed.]."},{"key":"ref_37","unstructured":"ChaN (2025, June 16). FatFs Generic FAT File System Module. Available online: http:\/\/elm-chan.org\/fsw\/ff\/00index_e.html."},{"key":"ref_38","unstructured":"Dunkels, A. (2025, June 16). lwIP\u2014A Lightweight TCP\/IP Stack. Available online: http:\/\/savannah.nongnu.org\/projects\/lwip\/."},{"key":"ref_39","unstructured":"(2024). Road Vehicles\u2014Controller Area Network (CAN)\u2014Part 1: Data Link Layer and Physical Signalling (Standard No. ISO 11898-1:2024)."},{"key":"ref_40","doi-asserted-by":"crossref","unstructured":"Pontarolli, R.P., Bigheti, J.A., Domingues, F.O., de S\u00e1, L.B., and Godoy, E.P. (2022). Distributed I\/O as a service: A data acquisition solution to Industry 4.0. HardwareX, 12.","DOI":"10.1016\/j.ohx.2022.e00355"},{"key":"ref_41","doi-asserted-by":"crossref","unstructured":"Cena, G., Cibrario Bertolotti, I., Hu, T., and Valenzano, A. (2014, January 5\u20137). Design, verification, and performance of a MODBUS-CAN adaptation layer. Proceedings of the 10th IEEE International Workshop on Factory Communication Systems (WFCS), Toulouse, France.","DOI":"10.1109\/WFCS.2014.6837605"},{"key":"ref_42","unstructured":"CiA (2011). CiA 301 V4.2.0 \u2013 CANopen Application Layer and Communication Profile, CAN in Automation e.V."},{"key":"ref_43","unstructured":"Modbus-IDA (2006). MODBUS Messaging on TCP\/IP Implementation Guide V1.0b, Modbus Organization, Inc.. Available online: http:\/\/www.modbus-ida.org\/."},{"key":"ref_44","unstructured":"Modbus-IDA (2006). MODBUS over Serial Line Specification and Implementation Guide V1.02, Modbus Organization, Inc.. Available online: http:\/\/www.modbus-ida.org\/."},{"key":"ref_45","unstructured":"Walter, C. (2025, June 16). FreeMODBUS\u2014A Modbus ASCII\/RTU and TCP Implementation. Available online: http:\/\/freemodbus.berlios.de\/."},{"key":"ref_46","unstructured":"Embedded Solutions (2025, May 19). Modbus Master. Available online: http:\/\/www.embedded-solutions.at\/."},{"key":"ref_47","unstructured":"Tisserant, E., and Dupin, F. (2025, May 19). Free Software CANopen Framework. Available online: https:\/\/canfestival.org\/."},{"key":"ref_48","unstructured":"(2024). ISO\/IEC\/IEEE International Standard: Telecommunications and exchange Between Information Technology Systems\u2014Requirements for Local and Metropolitan Area Networks\u2014Part 1Q: Bridges and Bridged Networks (Standard No. ISO\/IEC\/IEEE 8802-1Q:2024(en))."},{"key":"ref_49","unstructured":"Baker, T.P., and Shaw, A. (1988, January 6\u20138). The cyclic executive model and Ada. Proceedings of the IEEE Real-Time Systems Symposium (RTSS), Huntsville, AL, USA."},{"key":"ref_50","doi-asserted-by":"crossref","unstructured":"Hristu-Varsakelis, D., and Levine, W.S. (2005). Real-Time Scheduling for Embedded Systems. Handbook of Networked and Embedded Control Systems, Birkh\u00e4user Boston.","DOI":"10.1007\/b137198"},{"key":"ref_51","unstructured":"Modbus-IDA (2006). MODBUS Application Protocol Specification V1.1b, Modbus Organization, Inc.. Available online: http:\/\/www.modbus-ida.org\/."},{"key":"ref_52","doi-asserted-by":"crossref","first-page":"37","DOI":"10.1007\/BF00365463","article-title":"Software architecture for hard real-time applications: Cyclic executives vs. fixed priority executives","volume":"4","author":"Locke","year":"1992","journal-title":"Real-Time Syst."},{"key":"ref_53","doi-asserted-by":"crossref","unstructured":"Bloom, G., Alsulami, B., Nwafor, E., and Cibrario Bertolotti, I. (2018, January 13\u201315). Design patterns for the industrial Internet of Things. Proceedings of the 14th IEEE International Workshop on Factory Communication Systems (WFCS), Imperia, Italy.","DOI":"10.1109\/WFCS.2018.8402353"},{"key":"ref_54","unstructured":"(2025, June 16). NXP B.V. LPC1769\/68\/67\/66\/65\/64\/63 Product Data Sheet, Rev. 6. Available online: http:\/\/www.nxp.com\/."},{"key":"ref_55","unstructured":"Moxa Inc (2025, June 16). Modular I\/O Product Series. Available online: https:\/\/www.moxa.com\/product\/Modular_IO.htm."},{"key":"ref_56","unstructured":"Chamberlain, S., Pesch, R., Red Hat Support, and Johnston, J. (2014). The Red Hat Newlib C Library, Libc 2.2.0, Red Hat Inc."},{"key":"ref_57","doi-asserted-by":"crossref","unstructured":"Cibrario Bertolotti, I. (2017, January 22\u201325). RTOS Support in C-Language Toolchains. Proceedings of the 18th IEEE International Conference on Industrial Technology (ICIT), Toronto, ON, Canada.","DOI":"10.1109\/ICIT.2017.7915556"}],"container-title":["Future Internet"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1999-5903\/17\/6\/269\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T17:55:16Z","timestamp":1760032516000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1999-5903\/17\/6\/269"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,19]]},"references-count":57,"journal-issue":{"issue":"6","published-online":{"date-parts":[[2025,6]]}},"alternative-id":["fi17060269"],"URL":"https:\/\/doi.org\/10.3390\/fi17060269","relation":{},"ISSN":["1999-5903"],"issn-type":[{"type":"electronic","value":"1999-5903"}],"subject":[],"published":{"date-parts":[[2025,6,19]]}}}