嵌入式软件语言及开发新范式
New Paradigms for Embedded Software Languages and Development
DOI: 10.12677/etis.2025.24020, PDF,   
作者: 陈铭松, 焦跃军, 杨永淏:华东师范大学软硬件协同设计技术与应用教育部工程研究中心,上海
关键词: 嵌入式软件软件开发语言低代码虚拟仿真Embedded Software Software Development Language Low-Code Virtual Simulation
摘要: 嵌入式系统作为针对各类特定用途的计算平台,已被广泛应用到航空航天、轨道交通、汽车电子以及智慧城市等领域。随着嵌入式系统复杂度增加,传统嵌入式软件语言及开发面临性能瓶颈、资源受限、安全要求严苛及开发效率低下等多重挑战。传统嵌入式软件语言内存管理机制复杂不仅提高了学习门槛,也增加了维护难度。嵌入式软件开发层次多、复杂性高、软硬件耦合紧密导致上市时间长难以快速迭代。近年来兴起的新型嵌入式开发语言、低代码平台、智能开发辅助工具以及虚拟仿真平台有效提升了嵌入式开发效率。文章将围绕这些新兴的嵌入式软件语言和开发范式,综述国内外研究现状与发展趋势,为嵌入式软件开发提供参考。
Abstract: Embedded systems are application-specific computing platforms that have been widely used in various safety-critical domains, including aerospace, rail transit, automotive electronics, and smart cities. As the complexity of embedded systems increases, traditional embedded software languages and development processes face multiple challenges, including performance bottlenecks, limited resources, strict security requirements, and low development efficiency. The complex memory management mechanisms of traditional embedded languages not only raise the learning threshold but also increase maintenance difficulty. The multiple layers, high complexity, and tight hardware-software coupling of embedded software development lead to long time-to-market and difficulty in rapid iteration. In recent years, emerging embedded development languages, low-code platforms, intelligent development tools, and virtual simulation platforms have been reshaping the paradigms for embedded software languages and development. This survey focuses on these emerging embedded software languages and development paradigms, reviews the current research status and development trends at home and abroad, and provides references for embedded software development.
文章引用:陈铭松, 焦跃军, 杨永淏. 嵌入式软件语言及开发新范式[J]. 嵌入式技术与智能系统, 2025, 2(4): 223-231. https://doi.org/10.12677/etis.2025.24020

参考文献

[1] CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer.
https://cwe.mitre.org/data/definitions/119.html
[2] Rules for Developing Safe, Reliable, and Secure Systems (2016 Edition).
https://www.sei.cmu.edu/library/sei-cert-c-coding-standard-rules-for-developing-safe-reliable-and-secure-systems-2016-edition
[3] Secure by Design Alert: Eliminating Buffer Overflow Vulnerabilities.
https://www.cisa.gov/resources-tools/resources/secure-design-alert-eliminating-buffer-overflow-vulnerabilities
[4] Sas, D. and Avgeriou, P. (2020) Quality Attribute Trade-Offs in the Embedded Systems Industry: An Exploratory Case Study. Software Quality Journal, 28, 505-534. [Google Scholar] [CrossRef
[5] van der Spek, P. and Verhoef, C. (2014) Balancing Time‐to‐Market and Quality in Embedded Systems. Systems Engineering, 17, 166-192. [Google Scholar] [CrossRef
[6] Cimpanu, C. (2019) Microsoft: 70 Percent of All Security Bugs Are Memory Safety Issues.
https://www.zdnet.com/article/microsoft-70-percent-of-all-security-bugs-are-memory-safety-issues
[7] Eliminating Memory Safety Vulnerabilities at the Source.
https://sechub.in/view/2949364
[8] Mohanani, R., Salman, I., Turhan, B., Rodriguez, P. and Ralph, P. (2018) Cognitive Biases in Software Engineering: A Systematic Mapping Study. IEEE Transactions on Software Engineering, 46, 1318-1339. [Google Scholar] [CrossRef
[9] McDermott, T.A., Folds, D.J. and Hallo, L. (2020) Addressing Cognitive Bias in Systems Engineering Teams. INCOSE International Symposium, 30, 257-271. [Google Scholar] [CrossRef
[10] Tornhill, A. and Borg, M. (2022) Code Red: The Business Impact of Code Quality—A Quantitative Study of 39 Proprietary Production Codebases. Proceedings of the International Conference on Technical Debt, Pittsburgh, 16-18 May 2022, 11-20. [Google Scholar] [CrossRef
[11] Kaisti, M., Rantala, V., Mujunen, T., Hyrynsalmi, S., Könnölä, K., Mäkilä, T., et al. (2013) Agile Methods for Embedded Systems Development—A Literature Review and a Mapping Study. EURASIP Journal on Embedded Systems, 2013, Article No. 15. [Google Scholar] [CrossRef
[12] Herdt, V. and Drechsler, R. (2022) Advanced Virtual Prototyping for Cyber-Physical Systems Using RISC-V: Implementation, Verification and Challenges. Science China Information Sciences, 65, Article 110201. [Google Scholar] [CrossRef
[13] Liukkunen, K., Eteläperä, M., Oivo, M., Soininen, J. and Pellikka, M. (2008) Virtual Prototypes in Developing Mobile Software Applications and Devices. In: Jedlitschka, A. and Salo, O., Eds., International Conference on Product Focused Software Process Improvement, Springer, 174-188. [Google Scholar] [CrossRef
[14] JJaloyan, G.A., Moy, Y. and Paskevich, A. (2018) Borrowing Safe Pointers from Rust in Spark. arXiv:1805.05576.
[15] GNAT Pro Assurance: Product for Safety-Critical Systems.
https://www.adacore.com/gnatpro/assurance
[16] Adapting Go for Embedded/Real-Time Use.
https://groups.google.com/g/golang-nuts/c/6MPAzFgoS7M
[17] Microcontroller Targets, TinyGo Documentation.
https://tinygo.org/docs/concepts/compiler-internals/microcontrollers
[18] TinyGo: Driver Design and Development.
https://tinygo.org/docs/guides/driver-design
[19] Sharma, A., Sharma, S., Tanksalkar, S.R., Torres-Arias, S. and Machiry, A. (2024) Rust for Embedded Systems: Current State and Open Problems. Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security, Salt Lake, 14-18 October 2024, 2296-2310. [Google Scholar] [CrossRef
[20] Rust vs C Speed and Zero-Cost Abstractions.
https://kornel.ski/rust-c-speed
[21] Martins, E.M., Faé, L.G., Hoffmann, R.B., et al. (2025) NPB-Rust: NAS Parallel Benchmarks in Rust. arXiv:2502.15536.
[22] Benchmarks: Rust vs C/C++ Performance Comparisons.
https://benchmarksgame-team.pages.debian.net/benchmarksgame
[23] SPARK/Ada: Formal Verification for High-Integrity Software.
https://www.adacore.com/sparkpro
[24] Ravenscar Profile (Ada Real-Time Subset).
https://en.wikipedia.org/wiki/Ravenscar_profile
[25] Peripheral I/O in Go.
https://periph.io
[26] Levy, A., Campbell, B., Ghena, B., Giffin, D.B., Pannuto, P., Dutta, P., et al. (2017) Multiprogramming a 64kb Computer Safely and Efficiently. Proceedings of the 26th Symposium on Operating Systems Principles, Shanghai, 28 October 2017, 234-251. [Google Scholar] [CrossRef
[27] ArceOS: An Experimental Modular OS Written in Rust.
https://github.com/arceos-org/arceos
[28] Starry Tutorial Book.
https://azure-stars.github.io/Starry-Tutorial-Book
[29] AxVisor Tutorial Book.
https://arceos-hypervisor.github.io/doc/architecture/axvisor.html
[30] Low-Code Programming for Event-Driven Applications.
https://nodered.org
[31] Chen, M., Tworek, J., Jun, H., et al. (2021) Evaluating Large Language Models Trained on Code. arXiv:2107.03374.
[32] Tufano, M., Agarwal, A., Jang, J., et al. (2024) AutoDev: Automated AI-Driven Development. arXiv:2403.08299.
[33] Mahmoudi, A., Nešković, A., Thermann, C., Sehm, R., Hübner, C., Plattenteich, T., et al. (2025) A Systematic Mapping Study on Systemc/TLM Modeling Capabilities in New Research Domains. ACM Transactions on Design Automation of Electronic Systems, 30, 1-41. [Google Scholar] [CrossRef
[34] Virtual Components Modeling Library.
https://github.com/machineware-gmbh/vcml
[35] Kim, H., Kwak, J. and Cho, J. (2024) Autosar-Compatible Level-4 Virtual ECU for the Verification of the Target Binary for Cloud-Native Development. Electronics, 13, Article 3704. [Google Scholar] [CrossRef
[36] Hu, M., Cao, E., Huang, H., Zhang, M., Chen, X. and Chen, M. (2023) AIoTML: A Unified Modeling Language for AIoT-Based Cyber-Physical Systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 42, 3545-3558. [Google Scholar] [CrossRef
[37] Antmicro Platform Renode.
https://antmicro.com/platforms/renode
[38] 深圳航天科技创新研究院[EB/OL].
https://app.puliedu.com/#/portals, 2025-10-10.