Wydajność architektury STM32 w zakresie wykonywania kodu pośredniego dla systemów sterowania
Streszczenie
W artykule przedstawiono badania wydajności wykonywania przez mikrokontrolery STM32 kodu dla maszyny wirtualnej (tzw. kodu pośredniego) dedykowanej dla systemów sterowania. Architektura ARM zastosowana w tych układach odznacza się ograniczeniami związanymi z dostępem do niewyrównanych adresów. Zaproponowano trzy sposoby wyeliminowania tych ograniczeń, a każdy z nich poddano zestawowi testów mających ustalić ich wydajność. Testy przeprowadzono dla dwóch trybów działania, tj. z 16- i 32-bitowym adresowaniem dla różnych generacji układów. Wyniki testów pozwalają dobrać właściwe rozwiązanie dla określonej platformy.
Słowa kluczowe
ARM, kod pośredni, maszyna wirtualna, STM32
The Performance of Executing Intermediate Code for Control Systems Using STM32 Architecture
Abstract
The article presents performance tests of code executed by STM32 microcontrollers using a virtual machine (so-called intermediate code) dedicated to control systems. The ARM architecture used in these chips has limitations related to access to non-aligned addresses. Three ways to overcome these limitations have been proposed, and each has been subjected to a suite of tests to determine their performance. Tests were conducted for two operating modes, i.e. with 16- and 32-bit addressing for different generations of chips. The test results allow to choose the right solution for a specific platform.
Keywords
ARM, intermediate code, STM32, virtual machine
Bibliografia
- CODESYS (2017). Codesys download area, [www.codesys.com/download.html].
- CPDev engineering environment, [https://cpdev.kia.prz.edu.pl].
- STM32 32-bit Arm Cortex MCUs, [www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html].
- Arm Cortex-M0 (ARMv6), [https://developer.arm.com/documentation/dui0497/a].
- Arm Cortex-M4 (ARMv7), [https://developer.arm.com/documentation/100166/0001].
- ECMA-335, S. (2012). Common Language Infrastructure (CLI), Ecma, Geneva.
- Hajduk Z., Trybus B., Sadolewski J., Architecture of FPGA embedded multiprocessor programmable controller, “IEEE Transactions on Industrial Electronics”, Vol. 62, No. 5, 2015, 2952–2961, DOI: 10.1109/TIE.2014.2362888.
- IEC 61131-3, S. (2013). Programmable Controllers. Part 3. Programming languages, IEC, International Standard.
- ISaGRAF, [www.rockwellautomation.com/en-us/support/documentation/technical-data/isagraf_20190326-0743.html].
- Lindholm T., Yellin F., Bracha G., Buckley A., The Java Virtual Machine Specification, Oracle America, Inc. 2013.
- Rzońca D., Sadolewski J., Stec A., Świder Z., Trybus B., Trybus L., Open environment for programming small controllers according to IEC 61131-3 standard, “Scalable Computing: Practice and Experience”, Vol. 10, No. 3, 2009, 325–336.
- Rzońca D., Sadolewski J., Stec A., Świder Z., Trybus B., Trybus L., Programming controllers in structured text language of IEC 61131-3 standard, “Journal of Applied Computer Science”, Vol. 16, No. 1, 2008, 49–67.
- Simros M., Wollschlaeger M., Theurich S., Programming embedded devices in IEC 61131-languages with industrial PLC tools using PLCopen XML, Proceedings of the CONTROLO’ 2012 Portuguese Conference on Automatic Control, Funchal, Portugal, 51–56.
- Trybus B., Development and Implementation of IEC 61131-3 Virtual Machine, “Theoretical and Applied Informatics”, Vol. 23, No. 1, 2011, 21–35, DOI: 10.2478/v10179-011-0002-z.
- Rzońca D., Sadolewski J., Stec A., Świder Z., Trybus B., Trybus L., Developing a Multiplatform Control Environment, “Journal of Automation, Mobile Robotics and Intelligent Systems”, Vol. 13, No. 4, 2019, 73–84, DOI: 10.14313/JAMRIS/4-2019/40.
- Rzońca D., Sadolewski J., Stec A., Świder Z., Trybus B., Trybus L., Ship Autopilot Software – A Case Study. In: Bartoszewicz A., Kabziński J., Kacprzyk J. (eds), Advanced, Contemporary Control. Advances in Intelligent Systems and Computing, Vol. 1196, Springer, Cham. DOI: 10.1007/978-3-030-50936-1_124.
- Velu V.K., Mobile Application Penetration Testing. Packt Publishing, 2016, ISBN 9781785883378.