Automatic Code Generation for Microcontroller-Based System Using Multi-objective Linear Genetic Programming
Wildor Ferrel Serruto, Luis Alfaro · 2017
Microcontroller-based systems often include peripheral devices such as matrix keyboard and character LCD module among others. We propose the application of the multi-objective linear genetic programming, for automatic generation of the assembly driver routines for these devices, to perform the operations: matrix keyboard scan, LCD module initialization and character display on LCD. For fitness evaluation, we assign a function to be maximized to each bit of the binary result or to the timing diagram of each used microcontroller Port pins. This decomposition of the problem used in a multi-objective evolutionary algorithm allows generating programs, in some cases, with smaller code size or shorter execution time than programs written by a human programmer.