Universal Makefile Template for Multi-Chip Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Most existing embedded Integrated Development Environments (IDEs) only support compilation for a specific chip manufacturer, leading to insufficient compilation compatibility and adaptability for different microcontrollers.

Innovation Solution

A multi-chip compatible compiling method and device that extracts common feature information from Makefiles, generates a universal Makefile template, and uses an incremental compiling mechanism to produce executable files, enhancing flexibility and expandability for various chip compilations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If embedded IDE supports compilation for a specific chip manufacturer, then compilation reliability is improved, but compilation compatibility and adaptability deteriorate

Engineering Contradiction:
Improvecompilation reliabilityVSAvoidcompilation compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal Makefile template that can accommodate multiple chip manufacturers and microcontroller types. The template uses variable substitution mechanisms to dynamically adapt to different chip specifications, allowing a single IDE to support compilation for various chips from different manufacturers without requiring manufacturer-specific customized templates for each chip type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent employs parameter substitution techniques where Makefile variables are dynamically replaced based on the target chip's specifications. By changing parameters such as compiler paths, library locations, and memory configuration according to the specific chip being compiled, the system maintains reliability for each chip while achieving cross-manufacturer compatibility through a unified template framework.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If embedded IDE uses a universal Makefile template for multiple chips, then compilation compatibility is improved, but device complexity increases

Engineering Contradiction:
Improvecompilation compatibilityVSAvoidIDE complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the Makefile configuration into distinct variable sections and parameter groups. By organizing the universal template with modular variable definitions and using conditional substitution mechanisms, the system reduces complexity through structured organization. Users can selectively configure only the necessary parameters for their specific chip without navigating through the entire template, making the IDE more manageable despite its universal nature.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary configuration layer between the universal Makefile template and the specific chip requirements. This intermediary uses variable substitution and parameter mapping mechanisms that automatically translate chip-specific parameters into the appropriate Makefile commands, reducing the burden on users to manually configure complex settings while maintaining compatibility across different chip platforms.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If embedded IDE extracts common feature information from Makefile, then compilation adaptability is improved, but processing time increases

Engineering Contradiction:
Improvecompilation adaptabilityVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary extraction of common feature information from Makefiles during the project initialization phase. By pre-analyzing and storing common parameters such as compiler versions, library paths, and memory configurations in a database or cache structure, the system can quickly retrieve and apply these parameters when compiling different chips without re-processing the entire Makefile, thus reducing compilation time while maintaining high adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by extracting only the essential common feature information from Makefiles rather than processing every detail. By identifying and storing only the critical parameters needed for cross-chip compatibility (such as compiler paths, include directories, and memory maps) while ignoring chip-specific details that can be dynamically configured, the system achieves fast processing with minimal time loss during the adaptation phase.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11579856B2Multi-chip compatible compiling method and device
Publication Date: 2023.02.14 SUZHOU UNIV
  • US11579856B2 patent drawing
  • US11579856B2 patent drawing

AI summary

A multi-chip compatible compiling method includes: extracting common characteristic information of Makefiles; configuring variable attribute information of the Makefiles; obtaining a universal Makefile template for multiple chips according to the common characteristic information and the variable attribute information of the Makefiles; traversing a project to be compiled in the universal Makefile template by a compilation module, recording path information of a dependency file of the project to be compiled, replacing a variable value in the universal Makefile template, and determining automation configuration information of the universal Makefile template; invoking an incremental compilation mechanism of a Make tool according to the automation configuration information of the universal Makefile template to obtain a target Makefile of the project to be compiled; and processing the target Makefile by rule information and pseudo-target tag information in the Makefiles to obtain an executable file generated by compilation.