@article{Katin_Chmelov_Shemaev_2020, title={Development of typical "state" software patterns for CortexM microcontrollers in real time}, volume={3}, url={https://journals.uran.ua/eejet/article/view/205377}, DOI={10.15587/1729-4061.2020.205377}, abstractNote={<p>There are real-time technical systems that require high speed of software solutions. At the same time, it is necessary to ensure the unification of the source code, the quality of software maintenance, and mathematical modeling at a relatively low cost of software and hardware solution. Such hardware can be implemented on the basis of mass microcontrollers of the Cortex-M architecture.</p><p>The software part of these microcontrollers data could be implemented on the basis of a real-time operating system (RTOS). This study has found that the application of RTOS leads to a speed-related constraint. Simple software solutions are complex at unification, support, and have difficulties with mathematical modeling.</p><p>To address these shortcomings, typical State software patterns have been developed for an auxiliary controller within a circuit of controlling mechanisms or sensors based on the <em>Cortex-M architecture</em> microcontroller in real time, in a procedural paradigm. A feature of these patterns is the higher speed of the software solution compared to the solutions based on RTOS.</p><p>The developed patterns make it possible to unify the source code for the <em>Cortex-M architecture</em> microcontrollers from different manufacturers, improve maintenance, and adapt it to the mathematical model of the finite state machine.</p><p>The study results were tested using the STM32F103 microcontroller employing the Cortex microcontroller software interface system (CMSIS) library. This allows the result obtained to be extended to MCs made by other manufacturers, which ensures the practical value of the developed patterns.</p>}, number={9 (105)}, journal={Eastern-European Journal of Enterprise Technologies}, author={Katin, Pavlo and Chmelov, Viacheslav and Shemaev, Vladimir}, year={2020}, month={Jun.}, pages={29–38} }