DEVELOPMENT OF VARIANT OF SOFTWARE ARCHITECTURE IMPLEMENTATION FOR LOW-POWER GENERAL PURPOSE MICROCONTROLLERS BY FINITE STATE MACHINES

Pavlo Katin

Abstract


As a result of the research, two directions for development of software architecture for low-power general purpose microcontrollers (LPGPM) are identified. The first, classical approach is the development using standard State patterns. The second is the development of programs, algorithms and structures based on mathematical analysis.

The first direction is chosen in the work. The variant of the implementation of a typical pattern for development of software architecture (SA) in the form of a finite state machine (FSM) is proposed to discussion. This pattern allows to divide the development of the architectural part of the program for LPGPM and programming the LPGPM hardware. This approach makes it possible to divide the work of the software architect and the work of LPGPM hardware specialists. Advantage of the solution in comparison with the real time operating system (RTOS) is the saving of LPGPM hardware resources. In addition, it improves the readability of code and good testing prospects. The resulting architecture makes it possible to easily accompany the software and switch to other types of microcontroller. The disadvantage is an increase in the required amount of RAM with an increase in the number of states. It is this disadvantage that requires the application not only of experimental and engineering-intuitive methods, but also to continue research in the second direction.

Keywords


finite state machine; low-power general purpose microcontrollers; software architecture; real time operating systems

Full Text:

PDF FSM_SWITCH

References


McCulloch, W. S., Pitts, W. (1990). A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biology, 52 (1-2), 99–115. doi: 10.1007/bf02459570

Huffman D.A. (1954). The Synthesis of Sequential Switching Circuits. Journal of the franklin Institute, 257, 3, 161–190.

Mealy, G. H. (1955). A method for synthesizing sequential circuits. The Bell System Technical Journal, 34 (5), 1045–1079. doi: 10.1002/j.1538-7305.1955.tb03788.x

Albrecht, A. J. (1979). Measuring Application Development Productivity. P Proceedings of the joint SHARE/GUIDE/IBM application development symposium, 10, 83–92.

Shannon, C. E., McCarthy, J. (Eds.). (1956). Automata Studies. (AM-34), Princeton University Press, 285. doi: 10.1515/9781400882618

Rubin M., Scott D. (1959). Finite automata and their decision problem. IBM journal of research and development, 3 (2), 114–125.

Thompson K. (1968). Programming techniques: Regular expression search algorithm. Communications of the ACM, 11 (6), 419–422. doi: 10.1145/363347.363387

Shalyto A. A. (1998). SWITCH-tehnologija. Algoritmizacija i programmirovanie zadach logicheskogo upravlenija. Saint Petersburg: Nauka, 628.

Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1995). Design Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 416.

Spinke, V. (2013). An object-oriented implementation of concurrent and hierarchical state machines. Information and Software Technology, 55 (10), 1726–1740. doi: 10.1016/j.infsof.2013.03.005

Nyman, S. (2012). IAR Application Note # 6811-003. Implementing a State Machine. Available at: http://supp.iar.com/FilesPublic/SUPPORT/000370/AppNote_6811-003_State_Machine.pdf

Thomas, D. (2003). UML – Unified or Universal Modelling Language. Journal of Object Technology, 2 (1), 7–12.

Shamgunov, N. N., Korneev, G. A., Shalyto, A. A. (2004). State Machine — novyj pattern obektno-orientirovannogo proektirovanija. «Informacionno-upravljajushhie sistemy», 5. 13–25.

Sane, A., Campbell, R. (1995). Object-oriented state machines. Proceedings of the Tenth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications – OOPSLA’95. doi: 10.1145/217838.217841

Shalyto, A. A., Tukkel', N. I. (2001). SWITCH-tehnologija - avtomatnyj podhod k sozdaniju programmnogo obespechenija « reaktivnyh» sistem. Programmirovanie. 8, 45–62.

Adamczyk P. (2003). The Anthology of the Finite State Machine Design Patterns. The 10th Conference on Pattern Languages of Programs. Available at: http://hillside.net/plop/plop2003/Papers/Adamczyk-State-Machine.pdf

Solodovnikov, A. (2016). Developing method for assessing functional complexity of software information system. EUREKA: Physics and Engineering, 5, 3–9. doi: 10.21303/2461-4262.2016.00157

Chainikov, S., Solodovnikov, A. (2016). Information technology of software architecture structural synthesis of information system. EUREKA: Physics and Engineering, 4, 25–32. doi: 10.21303/2461-4262.2016.000125

Frimen, Je., Frimen, Je., S'erra, K., Bejts, B. (2012). Patterny proektirovanija. Saint Petersburg: Piter, 656.




DOI: http://dx.doi.org/10.21303/2461-4262.2017.00361

Refbacks

  • There are currently no refbacks.




Copyright (c) 2017 Pavlo Katin

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

ISSN 2461-4262 (Online), ISSN 2461-4254 (Print)