{"id":8049,"date":"2025-11-29T09:19:34","date_gmt":"2025-11-29T08:19:34","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8049"},"modified":"2026-02-11T06:27:32","modified_gmt":"2026-02-11T05:27:32","slug":"easier-and-safer-configuration-of-source-code-libraries","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/easier-and-safer-configuration-of-source-code-libraries\/","title":{"rendered":"Easier and Safer Configuration of Source Code Libraries"},"content":{"rendered":"<h2>GUI for easier configuration of software libraries<\/h2>\n<p>Author: Oreste Bernardi, Infineon Technologies AG<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2015<\/h3>\n<p><strong>Increasingly complex libraries are being developed for microcontrollers to accommodate the rising performance levels of microcontroller peripherals and applications. The usual configuration methods using #defines and\/or data structures can be time-consuming and result in configuration errors. A graphical user interface coupled with a configuration generator offers a number of advantages here. Besides the obvious readability and parameter description benefits, a GUI could check and validate user input in real time. Unfortunately, GUI programming know-how is beyond the usual sphere of competence of microcontroller developers and acquiring this knowledge could be time-consuming. This article explores a novel approach to creating a user interface and a code generator to support the configuration of source code libraries. This approach is suitable for developers who do not have GUI programming expertise as it implements a new UI execution model that simplifies development and debugging.<\/strong><\/p>\n<p>New silicon technology is enabling more and more complex SOCs. This is evident also in microcontroller developments: we are seeing more flexible peripherals, more peripheral instances and more pins. A good example is Infineon\u2019s XMC4500 microcontroller. This microcontroller can be used for motor control and power conversion and is not particularly complex. Its reference manual describes more than 7050 register bit fields (the number doesn\u2019t include duplicate register bit fields due to multiple instances of the same peripheral).<\/p>\n<p>As a result, software libraries that support microcontrollers such as these are becoming more complex and difficult to configure given the number of parameters. The majority of microcontroller libraries are developed in C. Typically the user configures the library in two stages: during compilation using the\u00a0<em>#define<\/em>\u00a0pre-processor macro and during runtime by activating configuration functions with appropriate arguments. However, these methods are not suitable for large and complex software development projects.<\/p>\n<p>Code generators with a graphical user interface are already used to generate configuration macros and initialization functions. Examples include DAVE\u2122, the Vector AUTOSAR ECU configuration tool, STM32Cube and Processor Expert. Usually, the GUI of these tools also checks the consistency of user settings, providing pictures and tool tips to clarify the meaning of configuration parameters and guide the user in how to set them.<\/p>\n<p>Hence a C library should ideally be provided with a GUI-based configuration tool. Developers of deep-embedded C libraries do not typically have a good knowledge of GUI programming.<\/p>\n<h2>DAVE\u2122v3<\/h2>\n<p>We experienced this issue directly when developing Apps for DAVE\u2122 v3. DAVE\u2122 is a free IDE and code generator developed by Infineon to support its XMC industrial microcontroller family. The code generator is based on the concept of Apps. A DAVE\u2122 App essentially combines:<\/p>\n<ul>\n<li>A C library<\/li>\n<li>An XML GUI description<\/li>\n<li>A manifest file that implements the GUI logic<\/li>\n<li>Template scripts that generate the library configuration based on GUI parameters.<\/li>\n<\/ul>\n<p>DAVE\u2122 also comes with a DAVE\u2122 SDK to develop Apps.<\/p>\n<p>The App concept was introduced in DAVE\u2122 v3 but our developers had difficulty developing complex GUIs because they are specialized in deeply embedded code and not in GUI programming. The GUI design process was very easy thanks to our WYSIWYG tool but GUI logic implementation was slow and error-prone. In DAVE\u2122 v3, we used typical UI programming methods based on call-backs. The developer can register a call-back for each event of a widget UI; if an event fires (i.e. user enters a value in a widget), the registered call-back is executed.<\/p>\n<p>The most important limitations that we experienced were:<\/p>\n<ul>\n<li>Scattered code<\/li>\n<li>Hidden states<\/li>\n<\/ul>\n<h2>Scattered Code<\/h2>\n<p>The same variable can be accessed by multiple call-backs and this makes it more difficult to debug and understand the code. By way of example, assume that a variable has a wrong value and the developer would like to review the code that affects the target variable. In this case, the developer has to inspect all code that could access this variable.<\/p>\n<h2>Hidden States<\/h2>\n<p>It is quite easy for App developers to create hidden states that are sensitive to the order of user inputs. A simple example of this scenario is shown in figure 1 (see\u00a0<a title=\"Easier and safer configuration of source code libraries (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_implementierung_easier_and_safer_configuration_of_source_code_libraries_infineon_bernardi.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>).<\/p>\n<p>There are two checkboxes with two different call-backs that assign two different values to the same variable. Obviously, the user can create the same configuration for the checkbox with two different mouse click streams \u2013 but the result is completely different. This issue is very relevant for one important feature of DAVE\u2122: project upgrades to the latest App versions. Project upgrades are performed by creating a new project, adding the latest Apps and then copying the configuration parameters from the old project to the new one. In cases such as that described, DAVE\u2122 v3 was not able to correctly upgrade the project because it had no understanding of the JavaScript code used to define the call-backs and it was not recording the order of user operations.<\/p>\n<h2>Reactive Programming &#8211; Think Spreadsheet!<\/h2>\n<p>These are just some of the issues typically encountered with traditional GUI programming.[1][2] For this reason, GUI programming requires discipline and experience. However, our developers spend 90% of their time developing efficient C libraries and can only dedicate a small window to user interface programming.<\/p>\n<p>In our search for a solution, we came across the Reactive Programming (RP) paradigm. This paradigm focuses on the propagation of changes and data flow.[3] Every day, millions of people use a tool based on this paradigm: the common spreadsheet.<\/p>\n<p>In a spreadsheet, a cell contains a value or a formula that defines its value. As soon as this value is changed by the user, all cells that contain a formula directly or indirectly affected by the modified cell are updated.<\/p>\n<p>The spreadsheet concept (Reactive Programming) thus had the potential to solve our problems. Let\u2019s call the cells\/variables that contain constant values only\u00a0<em>free variables\u00a0<\/em>(cells A1, B1 and C1 in fig. 2) and the cells\/variables that have been assigned a function\u00a0<em>not free variables<\/em>\u00a0(cells A2 and B3 in fig.2, see\u00a0<a title=\"Easier and safer configuration of source code libraries(PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_implementierung_easier_and_safer_configuration_of_source_code_libraries_infineon_bernardi.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>). The\u00a0<em>free variables<\/em>\u00a0can be considered as the GUI inputs and the\u00a0<em>not free variables<\/em>\u00a0together with their formulae as the GUI logic. Debugging a GUI developed according to this concept is very easy. One\u00a0<em>not free variable<\/em>\u00a0is associated only with one formula or code, the execution of which only affects the assigned variable. So if its value is wrong, the developer has just to inspect the code linked to this variable. If it is correct, the developer checks the code linked to the input variable and so on \u2013 right down to the user inputs.<\/p>\n<p>This also solves the problem of hidden states. In fact, the state of UIs based on this concept is defined by the value of the\u00a0<em>free variables.<\/em>\u00a0For the programmer, it is impossible to create a GUI\/spreadsheet where the results depend on the order of the inputs.<\/p>\n<p>There are other advantages of the reactive paradigm\/spreadsheet concept. In fact, a dependency graph [5] can be built in such a way that it is possible to:<\/p>\n<ul>\n<li>execute only the code that is affected by user changes<\/li>\n<li>parallelize the execution of code.<\/li>\n<\/ul>\n<h2>DAVE\u2122 Implementation<\/h2>\n<p>In DAVE\u2122 v4, we used this simple concept to accelerate development and improve the quality of our Apps. DAVE\u2122 v4 App developers essentially write a simple Groovy [4] class. We chose Groovy over other Domain Specific Languages (DSL) for the following reasons:<\/p>\n<ul>\n<li>Fully featured language ready to be used (not another DSL)<\/li>\n<li>Syntax very similar to Java\/C++<\/li>\n<li>Ease of integration in Java applications (DAVE\u2122 is written in Java)<\/li>\n<li>Easy extension of compiler by modifying the intermediate representation of source code (abstract syntax tree).<\/li>\n<\/ul>\n<p>Every time a user adds an instance of an App, the constructor of the class is executed and it configures the UI by assigning functions to variables that represent the different properties of the GUI widgets.<\/p>\n<h2>Example<\/h2>\n<p>Figure 2 (see\u00a0<a title=\"Easier and safer configuration of source code libraries (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_implementierung_easier_and_safer_configuration_of_source_code_libraries_infineon_bernardi.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) shows a very simple user interface with a DAVE\u2122 App. The developer wants to show the message \u201c<em>Speed too high<\/em>\u201d if the motor speed settings exceed 100.<\/p>\n<p>Essentially the developer assigns one function to the\u00a0<em>visible<\/em>\u00a0property of the\u00a0<em>high_speed_msg<\/em>\u00a0widget. As soon as the value of\u00a0<em>motor_speed<\/em>\u00a0changes, the function is evaluated and the returned value assigned to the\u00a0<em>visible<\/em>\u00a0property.<\/p>\n<p>The Groovy compiler parses the MF (Manifest Function) definitions; it extracts the input variables and it modifies the code so DAVE\u2122 is able to build the dependency tree at runtime. Moreover, the compiler checks that the MF code doesn\u2019t contain any assignments to variables that are not locally declared. This ensures that there are no side effects (or hidden states) during the execution of MF code.<\/p>\n<h2>Developer Experience<\/h2>\n<p>After the development of around 100 Apps with the DAVE\u2122 v4 SDK, our programmers confirmed that they had reduced development time and encountered fewer bugs during testing. Moreover, they were able to program more complex GUI implementations relative to DAVE\u2122 v3. An empirical study confirmed these quality improvements and greater programming abilities.[6]<\/p>\n<h2 class=\"Chapter\">Beyond DAVE\u2122<\/h2>\n<p>If C programmers want to design a GUI-based configurator for any library, the advanced methodologies implemented in DAVE\u2122 and the DAVE\u2122 SDK are ideal. These tools can be downloaded from\u00a0<a href=\"https:\/\/www.infineon.com\/dave\" target=\"_blank\" rel=\"noopener\">www.infineon.com\/dave<\/a>. Using the video tutorials provided, programmers can rapidly develop their own graphical library configurator.<\/p>\n<p>However Reactive Programming is an emerging trend in desktop and mobile UI programming [7] [8] and also relevant to certain safety-critical embedded software development projects[9]. In the opinion of the author, this paradigm will expand its reach to embedded software development \u2013 especially to UI programming.<\/p>\n<h2>Conclusion<\/h2>\n<p>Complex microcontroller libraries should be provided with a configuration tool that simplifies correct configuration. However, developers of deeply embedded code have little experience in complex UI programming. For this reason, the DAVE\u2122 v4 SDK has implemented a Reactive Programming concept. The aim is to improve the quality and speed of GUI development. After developing around 100 DAVE\u2122 Apps, our programmers confirmed the advantages of functional Reactive Programming over traditional GUI programming. DAVE\u2122 v4 and the DAVE\u2122 SDK can be downloaded free of charge and used by developers interested in exploring easy, safe GUI programming.<\/p>\n<h2>References<\/h2>\n<p>[1] Jonathan Edwards. 2009. Coherent reaction. In\u00a0<em>Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications<\/em>\u00a0(OOPSLA &#8217;09). ACM, New York, NY, USA, 925-932. DOI=10.1145\/1639950.1640058\u00a0<strong><a href=\"https:\/\/doi.acm.org\/10.1145\/1639950.1640058\" target=\"_blank\" rel=\"noopener\">https:\/\/doi.acm.org\/10.1145\/1639950.1640058<\/a><\/strong><\/p>\n<p>[2] Martin S\u00fastrik\u00a0<a href=\"https:\/\/250bpm.com\/blog:24\" target=\"_blank\" rel=\"noopener\">https:\/\/250bpm.com\/blog:24<\/a><\/p>\n<p>[3] Wikipedia\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Reactive_programming\" target=\"_blank\" rel=\"noopener\">https:\/\/en.wikipedia.org\/wiki\/Reactive_programming<\/a><\/p>\n<p>[4]\u00a0<a href=\"https:\/\/www.groovy-lang.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.groovy-lang.org\/<\/a><\/p>\n<p>[5]\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Dependency_graph\" target=\"_blank\" rel=\"noopener\">https:\/\/en.wikipedia.org\/wiki\/Dependency_graph<\/a><\/p>\n<p>[6] Guido Salvaneschi, Sven Amann, Sebastian Proksch, and Mira Mezini. 2014.<em>\u00a0An empirical study on program comprehension with reactive programming<\/em>. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 564-575. DOI=https:\/\/dx.doi.org\/10.1145\/2635868.2635895<\/p>\n<p>[7]\u00a0<a href=\"https:\/\/www.infoq.com\/news\/2013\/08\/reactive-programming-emerging\" target=\"_blank\" rel=\"noopener\">https:\/\/www.infoq.com\/news\/2013\/08\/reactive-programming-emerging<\/a><\/p>\n<p>[8]\u00a0<a href=\"https:\/\/www.gartner.com\/doc\/2560015\" target=\"_blank\" rel=\"noopener\">https:\/\/www.gartner.com\/doc\/2560015<\/a><\/p>\n<p>[9]\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Lustre_(programming_language)\" target=\"_blank\" rel=\"noopener\">https:\/\/en.wikipedia.org\/wiki\/Lustre_(programming_language)<\/a><\/p>\n<p><a title=\"Easier and safer configuration of source code libraries (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_implementierung_easier_and_safer_configuration_of_source_code_libraries_infineon_bernardi.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Implementierung &#8211; unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"MicroConsult Training\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Implementierung \/Embedded- und Echtzeit-Softwareentwicklung.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Implementierung &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Implementierung\/\u00a0Embedded- und Echtzeit-Softwareentwicklung steht\u00a0<a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>hier\u00a0<\/strong><\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie <a title=\"MicroConsult Fachwissen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GUI for easier configuration of software libraries Author: Oreste Bernardi, Infineon Technologies AG Beitrag &#8211; Embedded Software Engineering Kongress 2015 Increasingly complex libraries are being developed for microcontrollers to accommodate the rising performance levels of microcontroller peripherals and applications. The usual configuration methods using #defines and\/or data structures can be time-consuming and result in configuration [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8049","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Easier and Safer Configuration of Source Code Libraries - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/easier-and-safer-configuration-of-source-code-libraries\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Easier and Safer Configuration of Source Code Libraries - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"GUI for easier configuration of software libraries Author: Oreste Bernardi, Infineon Technologies AG Beitrag &#8211; Embedded Software Engineering Kongress 2015 Increasingly complex libraries are being developed for microcontrollers to accommodate the rising performance levels of microcontroller peripherals and applications. The usual configuration methods using #defines and\/or data structures can be time-consuming and result in configuration [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/easier-and-safer-configuration-of-source-code-libraries\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T08:19:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T05:27:32+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Easier and Safer Configuration of Source Code Libraries\",\"datePublished\":\"2025-11-29T08:19:34+00:00\",\"dateModified\":\"2026-02-11T05:27:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/\"},\"wordCount\":1895,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/\",\"name\":\"Easier and Safer Configuration of Source Code Libraries - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T08:19:34+00:00\",\"dateModified\":\"2026-02-11T05:27:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/easier-and-safer-configuration-of-source-code-libraries\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Easier and Safer Configuration of Source Code Libraries\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Easier and Safer Configuration of Source Code Libraries - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/easier-and-safer-configuration-of-source-code-libraries\/","og_locale":"en_GB","og_type":"article","og_title":"Easier and Safer Configuration of Source Code Libraries - MicroConsult Academy GmbH","og_description":"GUI for easier configuration of software libraries Author: Oreste Bernardi, Infineon Technologies AG Beitrag &#8211; Embedded Software Engineering Kongress 2015 Increasingly complex libraries are being developed for microcontrollers to accommodate the rising performance levels of microcontroller peripherals and applications. The usual configuration methods using #defines and\/or data structures can be time-consuming and result in configuration [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/easier-and-safer-configuration-of-source-code-libraries\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T08:19:34+00:00","article_modified_time":"2026-02-11T05:27:32+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Easier and Safer Configuration of Source Code Libraries","datePublished":"2025-11-29T08:19:34+00:00","dateModified":"2026-02-11T05:27:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/"},"wordCount":1895,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/","url":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/","name":"Easier and Safer Configuration of Source Code Libraries - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T08:19:34+00:00","dateModified":"2026-02-11T05:27:32+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/easier-and-safer-configuration-of-source-code-libraries\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Easier and Safer Configuration of Source Code Libraries"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8049"}],"version-history":[{"count":9,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8049\/revisions"}],"predecessor-version":[{"id":11634,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8049\/revisions\/11634"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}