Register header file automatic generation method and device and electronic equipment
By establishing register form files and automatically reading and legality checking register information using script tools, the problem of high workload and easy introduction of errors by manually writing register header files is solved, and the rapid generation of high-quality register header files is achieved, which improves design and development efficiency.
Patent Information
- Application Number
- CN202411785464.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-06
- Publication Date
- 2025-03-28
AI Technical Summary
In the prior art, manual writing of register header files has problems such as high workload, easy introduction of errors, and low degree of automation, which is difficult to meet the design needs of complex MCU chips.
By creating a register form file, using script tools to automatically read and legitimacy check register information, and generate register header files to reduce manual intervention and error occurrence.
It realizes the rapid automatic generation of register header files, which reduces the workload of engineers, reduces the impact of human errors, and improves the quality and efficiency of design and development.
Smart Images

Figure CN119720911A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of MCU chip design and software development, and in particular to a method, device and electronic device for automatically generating a register header file. Background Art
[0002] The register header file of MCU is a code file containing the definition of specific MCU hardware registers, usually a C language definition file with the suffix .h. The header file provides a convenient way for chip design engineers and software engineers to access and control various hardware resources inside the MCU, such as GPIO, ADC, FLASH, TIM, USART, etc.
[0003] In the register header file, the following are usually defined:
[0004] 1) Register address. Each hardware module's register has a unique memory address, which is defined in the header file as a macro.
[0005] 2) Bit field structure. In order to operate each bit in the register more intuitively, a bit field structure is usually used to map the register. In this way, engineers can directly configure or read specific bits through structure members.
[0006] 3) Peripheral base address. MCUs usually have multiple peripherals of different types, such as multiple timers or USART interfaces. In this case, the header file defines the base address of each peripheral.
[0007] Register header files are very important for MCU software development for the following reasons:
[0008] 1) Hardware abstraction. The register header file provides engineers with a layer of hardware abstraction. By using defined structures and macros, they can operate the hardware more intuitively without having to remember complex register addresses and bit definitions, which enhances the readability and maintainability of the code.
[0009] 2) Improve development efficiency. With the register header file, engineers can directly use predefined identifiers to locate specific registers or their domains, rather than manually calculating offsets or directly writing specific values, which can greatly reduce errors and speed up development.
[0010] 3) Portability. When changing to a different MCU model or even a product from a different manufacturer, as long as the new MCU has similar peripherals and provides the corresponding register header file, many codes can be reused with only a few modifications or even without modification. This is because the register header file encapsulates the hardware-related details.
[0011] 4) Standardization and consistency. Register header files follow a certain standard format, which helps ensure code consistency and standardization. It also facilitates team collaboration.
[0012] 5) Error prevention. By defining clear data types and ranges, register header files can help prevent some common programming errors, such as writing illegal values to registers or mistakenly operating fields that should not be modified.
[0013] As MCU chips become more complex and perform better, more and more peripheral modules are integrated inside them. There are many disadvantages in using traditional methods to manually write register header files:
[0014] 1) Usually, the number of lines of code in the register header file of a peripheral module is about several hundred to thousands. A large number of peripheral modules need to write register header files, which means a huge workload for engineers;
[0015] 2) A large amount of code is manually written, which makes it difficult to standardize the format and make it less readable and maintainable;
[0016] 3) During the chip design phase, it is very common to modify register definitions. After each modification, the register header file needs to be manually updated synchronously, which consumes a lot of human resources;
[0017] 4) A large amount of code is manually written and it is easy to introduce various errors. Checking these errors is not only time-consuming and laborious, but also difficult to ensure that there are no omissions. Once an error is not checked, it may cause chip function errors, making debugging and error correction extremely difficult.
[0018] Although there are some existing technologies such as patent CN201710534135 "A register code file generation method, device and electronic device" which proposes a method of generating a register code file using a text conversion tool, no legality check is performed, and class instances are not used to encapsulate register information and domain information. There are still problems such as the inability to timely discover and quickly troubleshoot errors, low degree of automation, and unsatisfactory implementation results. Summary of the invention
[0019] Based on the above problems, the purpose of the present invention is to provide a method, device and electronic device for automatically generating a register header file, which can quickly and automatically generate a register header file based on a register form, reduce the workload of engineers, reduce the impact of human errors, and improve the quality and efficiency of design and development.
[0020] The technical solution adopted by the present invention to achieve its invention object is a method for automatically generating a register header file, comprising the following steps:
[0021] S1. Create a register form file and fill in all register information in the form file according to the standard format; the register form file can be in Excel format or XML format;
[0022] S2. Use a script tool to automatically read all register information from the register form file; the script tool can be written in Python or other script languages;
[0023] S3. Use the script tool to check the legitimacy of all the information read from the register;
[0024] S4. Write all the register information that has passed the legality check into a temporary database;
[0025] S5. Use the script tool to read all the register information from the temporary database;
[0026] S6. Use the script tool to generate a register header file according to the format of the register header file.
[0027] Furthermore, the register form file includes two tables, the information in the first table includes the module name and the module base address, and the second table includes all registers contained in the module and information of each domain of the register, wherein the register information includes the register name, register offset address, register reset value, and register description information, and the information of each domain of the register includes the domain name, domain start bit, domain end bit, domain bit width, domain attributes, domain reset value, and domain description information.
[0028] Furthermore, the steps of using the script tool to automatically read all the register information from the register form are specifically as follows:
[0029] Use the script tool to read the first table of the register form file, obtain the module name and module base address from it, and encapsulate them into an instance of a class named block;
[0030] Then use the script tool to read the second table of the register form file, and traverse each row in the second table to obtain the information of the register and its domain;
[0031] When reading the second table, for each row read, first determine whether the row is filled with register information or domain information. If the row is register information, extract the register name, register offset address, register reset value, and register description information, and encapsulate them into an instance of a class named register.
[0032] If the line is field information, extract the domain name, field start bit, field end bit, field width, field attributes, field reset value, and field description information, and encapsulate them into an instance of a class named field;
[0033] After the script tool finishes reading the second table of the register form file, each register is encapsulated into an instance of the register class. The script tool puts all instances of the register class into a list called reg_list in ascending order of register offset addresses.
[0034] Furthermore, the legality check includes:
[0035] Check whether the module base address is legal. Illegal situations include: the module base address exceeds 32 bits, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the module base address;
[0036] Check whether the register offset address is legal. Illegal situations include: the register offset address is not 32-bit aligned;
[0037] Check whether the register reset value is legal. Illegal situations include: the register reset value exceeds 32 bits, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the register reset value;
[0038] Check whether the domain name is legal. Illegal situations include: there are two or more identical domain names in the same register;
[0039] Check whether the domain start bit, domain end bit, and domain width are legal. Illegal situations include: the domain start bit and domain end bit are numbers other than 0 to 31, the domain start bit is smaller than the domain end bit, and the domain width automatically calculated based on the domain start bit and domain end bit is inconsistent with the domain width filled in the register form file;
[0040] Check whether the domain bit definition is legal. Illegal situations include: undefined bits in the 32-bit register; repeated bit definitions of two or more domains;
[0041] For example, a register should be 32 bits. Assume that a register contains 4 fields: [31:9]field3, [5:2]field2, [5:2]field1, [1:0]field0;
[0042] There are two illegal situations: there is an undefined bit between field3 and field2: 8:6, in which case the field bit definition is incomplete; there are two fields, field2 and field1, whose bit definitions are both 5:2, which means the bit definition is repeated;
[0043] Check whether the domain reset value is legal. Illegal situations include: the domain reset value bit width exceeds the domain bit width, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the domain reset value;
[0044] When the illegal situation occurs, the script tool prints a warning message, including the type of error and the line number of the error location in the register form file, so that engineers can quickly troubleshoot the errors in the register form.
[0045] Furthermore, the steps of generating the register header file are specifically as follows:
[0046] Generate a register structure code, wherein the structure includes all registers of the module;
[0047] Generate register base address macro definition code to define the base address of the module;
[0048] Generate macro definition codes for all registers and all their fields, specifically: obtain the information of the first register and all its fields of this module from the reg_list list, generate macro definition codes for the register and all its fields, and generate the codes in sequence from LSB to MSB of the register bits; repeat the above operation, continue to obtain the information of the next register and all its fields of this module from the reg_list list, generate macro definition codes for each register and all its fields, until the generation of macro definition codes for all registers and all their fields of this module is completed.
[0049] The present invention also provides a device for automatically generating a register header file, comprising a register form reading module, a legality checking module, a temporary database writing module, a temporary database, a temporary database reading module, and a register header file generating module, wherein:
[0050] The register table reading module is used to read all register information from the register table;
[0051] The legality check module is used to perform legality check on all register information read from the register form;
[0052] The temporary database writing module is used to write all the register information that has passed the legality check into the temporary database;
[0053] The temporary database reading module is used to read all register information from the temporary database;
[0054] The register header file generation module is used to generate a register header file according to the format of the register header file by reading all the register information from the temporary database.
[0055] Furthermore, the register table reading module reads all the register information from the register table, including:
[0056] Module name and module base address, all registers contained in the module and information of each register domain, where register information includes register name, register offset address, register reset value, register description information, and information of each register domain includes domain name, domain start bit, domain end bit, domain bit width, domain attributes, domain reset value, and domain description information.
[0057] The above modules are all computer program modules.
[0058] Furthermore, the generated register header file includes register structure code, register base address macro definition code, and macro definition codes of all registers and all fields thereof.
[0059] The present invention also provides an electronic device for automatically generating a register header file, comprising a processor and a memory connected to the processor for communication, wherein the memory stores instructions, and when the instructions are executed by the processor, the above-mentioned method for automatically generating a register header file is implemented.
[0060] The beneficial effects of the present invention are:
[0061] The script tool applies object-oriented programming ideas and uses block class, register class and field class to encapsulate register information and domain information respectively, which improves the readability, maintainability and scalability of the script code.
[0062] The legality check allows engineers to quickly troubleshoot errors in register forms.
[0063] The present invention can quickly and automatically generate a register header file based on a register form, thereby reducing the workload of engineers, reducing the impact of human errors, and improving the quality and efficiency of design and development. BRIEF DESCRIPTION OF THE DRAWINGS
[0064] Figure 1 This is a flow chart of a method for automatically generating a register header file according to Embodiment 1 of the present invention;
[0065] Figure 2 This is a schematic diagram of register form file Sheet2 in Example 1 of the present invention;
[0066] Figure 3 This is a structural block diagram of a device for automatically generating a register header file according to Embodiment 2 of the present invention;
[0067] Figure 4 The register header file of embodiment 3 of the present invention automatically generates a structural block diagram of an electronic device. DETAILED DESCRIPTION
[0068] In order to more clearly understand the above-mentioned objects, features and advantages of the present invention, the present invention is further described in detail below with reference to the accompanying drawings and specific embodiments.
[0069] Example 1
[0070] Figure 1 A specific implementation of the method for automatically generating a register header file of the present invention is shown, comprising the following steps:
[0071] S1. Create a register form file and fill in all register information in the form file according to the standard format;
[0072] The register form file is in Excel format and includes two tables: Sheet1 and Sheet2.
[0073] Sheet1 defines the module name and module base address, as shown in the following table:
[0074] A B 1 Module Name Module base address 2 FLASH 0x0800_0000
[0075] Sheet2 defines in detail all registers contained in the module and the information of each field of the register, such as Figure 2 As shown, column A is the register name, column B is the register offset address (expressed in hexadecimal), column H is the register reset value (expressed in hexadecimal), and column I is the register description information.
[0076] Each register contains information about all its domains at the same time. Column E defines the domain name, columns C and D define the domain start bit and domain end bit of the domain in the register respectively, column F is the domain width, column G is the domain attribute, column H is the domain reset value (expressed in hexadecimal), and column I is the domain description information.
[0077] S2. Use the script tool to automatically read all register information from the register form file, specifically:
[0078] Use the script tool to read the register form file Sheet1, obtain the module name and module base address from it, and encapsulate them into an instance of a class named block for subsequent processing;
[0079] Then use the script tool to read the register form file Sheet2, traverse each row in Sheet2 to obtain the information of the register and its domain;
[0080] When reading Sheet2, for each line read, first determine whether the line is filled with register information or domain information. If the line is register information, extract the register name, register offset address, register reset value, register description information, and encapsulate them into an instance of a class named register.
[0081] If the line is field information, extract the domain name, field start bit, field end bit, field width, field attributes, field reset value, and field description information, and encapsulate them into an instance of a class named field;
[0082] After the script tool finishes reading the register form file Sheet2, each register is encapsulated into an instance of the register class. The script tool puts all instances of the register class into a list called reg_list in ascending order of register offset addresses.
[0083] The block class is a class built into the script tool provided by the present invention, which is used to store the information of the module, including: module name and module base address. The block class includes the following functions: initialization function and module base address check function. The function of the initialization function is to pass variables such as module name and module base address when creating an instance of the block class. The function of the module base address check function is to check the legitimacy of the module base address.
[0084] The register class is a class built into the script tool provided by the present invention, which is used to store register information, including: register name, register offset address, register reset value, register description and information of all domains inside the register. The register class contains the following functions: initialization function, register offset address check function and register reset value check function. The function of the initialization function is to pass variables such as register name, register offset address, register reset value, register description and domain list when creating an instance of the register class. The function of the register offset address check function is to check the legitimacy of the register offset address. The function of the register reset value check function is to check the legitimacy of the register reset value.
[0085] The field class is a class built into the script tool provided by the present invention, which is used to store domain information, including: domain name, domain start bit, domain end bit, domain width, domain attribute, domain reset value and domain description. The field class includes the following functions: initialization function, domain name check function, domain start bit / domain end bit / domain width check function, domain bit definition check function and domain reset value check function. The function of the initialization function is to pass variables such as domain name, domain start bit, domain end bit, domain width, domain attribute, domain reset value and domain description when creating an instance of the field class. The function of the domain name check function is to check the legitimacy of the domain name. The function of the domain start bit / domain end bit / domain width check function is to check the legitimacy of the domain start bit / domain end bit / domain width. The function of the domain bit definition check function is to check the legitimacy of the domain bit definition. The function of the domain reset value check function is to check the legitimacy of the domain reset value.
[0086] S3. Use the script tool to check the legitimacy of all the information read from the register, including:
[0087] Check whether the module base address is legal. Illegal situations include: the module base address exceeds 32 bits, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the module base address;
[0088] Check whether the register offset address is legal. Illegal situations include: the register offset address is not 32-bit aligned;
[0089] Check whether the register reset value is legal. Illegal situations include: the register reset value exceeds 32 bits, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the register reset value;
[0090] Check whether the domain name is legal. Illegal situations include: there are two or more identical domain names in the same register;
[0091] Check whether the domain start bit, domain end bit, and domain width are legal. Illegal situations include: the domain start bit and domain end bit are numbers other than 0 to 31, the domain start bit is smaller than the domain end bit, and the domain width automatically calculated based on the domain start bit and domain end bit is inconsistent with the domain width filled in the register form file;
[0092] Check whether the domain bit definition is legal. Illegal situations include: undefined bits in the 32-bit register; repeated bit definitions of two or more domains;
[0093] Check whether the domain reset value is legal. Illegal situations include: the domain reset value bit width exceeds the domain bit width, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the domain reset value;
[0094] When the illegal situation occurs, the script tool prints a warning message, including the type of error and the line number of the error location in the register form file.
[0095] S4. Write all the register information that has passed the legality check into a temporary database;
[0096] S5. Use the script tool to read all the register information from the temporary database;
[0097] S6. Use the script tool to generate a register header file according to the format of the register header file, specifically:
[0098] First, generate the register structure code, which includes all the registers of the module; the name of the structure is "module name_TypeDef" (the module name here is the module name obtained by the script tool from the register form file name Sheet1), and the structure contains all the registers of the module. The following is an example of the generated code:
[0099]
[0100] Then generate the register base address macro definition code to define the base address of the module. The following is an example of the generated code:
[0101] #define FLASH_BASE 0x08000000UL / *! <Base address of:FLASH* /
[0102] Finally, the macro definition code for all registers and all their fields is generated, specifically:
[0103] Get the information of the first register of this module and all its fields from the reg_list list, generate the macro definition code of the register and all its fields, and generate the code in the order of register bits from LSB to MSB. The following is an example of the generated code:
[0104] / * Bits definition for FLASH_ACR register * /
[0105] #define FLASH_ACR_reg_latency_Pos(0U)
[0106] #define FLASH_ACR_reg_latency_Msk(0x1UL< <FLASH_ACR_reg_latency_Pos) / *!<0x00000001* /
[0107] #define FLASH_ACR_reg_latency FLASH_ACR_reg_latency_Msk
[0108] #define FLASH_ACR_reg_prften_Pos(1U)
[0109] #define FLASH_ACR_reg_prften_Msk(0x1UL< <FLASH_ACR_reg_prften_Pos) / *!<0x00000002* /
[0110] #define FLASH_ACR_reg_prften FLASH_ACR_reg_prften_Msk
[0111] #define FLASH_ACR_rsv0_Pos(2U)
[0112] #define FLASH_ACR_rsv0_Msk(0x1UL< <FLASH_ACR_rsv0_Pos)
[0113] / *!<0x00000004* /
[0114] #define FLASH_ACR_rsv0 FLASH_ACR_rsv0_Msk
[0115] #define FLASH_ACR_reg_sleep_pd_Pos(3U)
[0116] #define FLASH_ACR_reg_sleep_pd_Msk(0x1UL< <FLASH_ACR_reg_sleep_pd_Pos)
[0117] / *!<0x00000008* /
[0118] #define FLASH_ACR_reg_sleep_pd FLASH_ACR_reg_sleep_pd_Msk
[0119] #define FLASH_ACR_reg_run_pd_Pos(4U)
[0120] #define FLASH_ACR_reg_run_pd_Msk(0x1UL< <FLASH_ACR_reg_run_pd_Pos)
[0121] / *!<0x00000010* /
[0122] #define FLASH_ACR_reg_run_pd FLASH_ACR_reg_run_pd_Msk
[0123] Repeat the above operation, continue to obtain the information of the next register and all its fields of this module from the reg_list list, generate macro definition code for each register and all its fields, until the generation of macro definition code for all registers and all their fields of this module is completed.
[0124] Example 2
[0125] Figure 3A specific implementation of the device for automatically generating a register header file of the present invention is shown: it includes a register table reading module, a legality checking module, a temporary database writing module, a temporary database, a temporary database reading module, and a register header file generating module, wherein:
[0126] The register table reading module is used to read all register information from the register table, and the register information includes: module name and module base address, all registers contained in the module and information of each register domain, wherein the register information includes register name, register offset address, register reset value, register description information, and the information of each register domain includes domain name, domain start bit, domain end bit, domain bit width, domain attribute, domain reset value, and domain description information;
[0127] The legality check module is used to perform legality check on all register information read from the register form;
[0128] The temporary database writing module is used to write all the register information that has passed the legality check into the temporary database;
[0129] The temporary database reading module is used to read all register information from the temporary database;
[0130] The register header file generation module is used to generate a register header file according to the format of the register header file from all the register information read from the temporary database. The generated register header file includes register structure code, register base address macro definition code, and macro definition codes of all registers and all their fields.
[0131] Example 3
[0132] Figure 4 A specific implementation of the electronic device for automatically generating a register header file of the present invention is shown, which includes a processor and a memory connected to the processor in communication, wherein the memory stores instructions, and when the instructions are executed by the processor, the method for automatically generating a register header file as described in the above embodiment 1 is implemented. In this embodiment, the electronic device also includes an input device such as a mouse and a keyboard, and an output device such as a display.
Claims
1. A method for automatically generating a register header file, characterized in that: The steps include: S1. Create a register form file and fill in all register information in the form file according to the standard format; S2. Use the script tool to automatically read all register information from the register form file; S3. Use the script tool to check the legitimacy of all the information read from the register; S4. Write all the register information that has passed the legality check into a temporary database; S5. Use the script tool to read all the register information from the temporary database; S6. Use the script tool to generate a register header file according to the format of the register header file.
2. The method for automatically generating a register header file according to claim 1, characterized in that: The register form file includes two tables. The information in the first table includes the module name and the module base address. The second table includes all the registers contained in the module and the information of each domain of the register, wherein the register information includes the register name, the register offset address, the register reset value, and the register description information. The information of each domain of the register includes the domain name, the domain start bit, the domain end bit, the domain bit width, the domain attributes, the domain reset value, and the domain description information.
3. The method for automatically generating a register header file according to claim 2, characterized in that: The steps of using the script tool to automatically read all register information from the register form are specifically as follows: Use the script tool to read the first table of the register form file, obtain the module name and module base address from it, and encapsulate them into an instance of a class named block; Then use the script tool to read the second table of the register form file, and traverse each row in the second table to obtain the information of the register and its domain; When reading the second table, for each row read, first determine whether the row is filled with register information or domain information. If the row is register information, extract the register name, register offset address, register reset value, and register description information, and encapsulate them into an instance of a class named register. If the line is field information, extract the domain name, field start bit, field end bit, field width, field attributes, field reset value, and field description information, and encapsulate them into an instance of a class named field; The script tool puts all instances of the register class into a list called reg_list in ascending order of register offset addresses.
4. The method for automatically generating a register header file according to claim 3, characterized in that: The legality check includes: Check whether the module base address is legal. Illegal situations include: the module base address exceeds 32 bits, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the module base address; Check whether the register offset address is legal. Illegal situations include: the register offset address is not 32-bit aligned; Check whether the register reset value is legal. Illegal situations include: the register reset value exceeds 32 bits, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the register reset value; Check whether the domain name is legal. Illegal situations include: there are two or more identical domain names in the same register; Check whether the domain start bit, domain end bit, and domain width are legal. Illegal situations include: the domain start bit and domain end bit are numbers other than 0 to 31, the domain start bit is smaller than the domain end bit, and the domain width automatically calculated based on the domain start bit and domain end bit is inconsistent with the domain width filled in the register form file; Check whether the domain bit definition is legal. Illegal situations include: undefined bits in the 32-bit register; repeated bit definitions of two or more domains; Check whether the domain reset value is legal. Illegal situations include: the domain reset value bit width exceeds the domain bit width, and non-hexadecimal numbers other than 0 to 9 and A to F appear in the domain reset value; When the illegal situation occurs, the script tool prints a warning message including the type of error and the line number of the error location in the register form file.
5. A method for automatically generating a register header file according to claim 4, characterized in that: The steps of generating a register header file are specifically as follows: Generate a register structure code, wherein the structure includes all registers of the module; Generate register base address macro definition code; Generate macro definition codes for all registers and all their fields, specifically: obtain the information of the first register and all its fields of this module from the reg_list list, generate macro definition codes for the register and all its fields, and generate the codes in sequence from LSB to MSB of the register bits; repeat the above operation, continue to obtain the information of the next register and all its fields of this module from the reg_list list, generate macro definition codes for each register and all its fields, until the generation of macro definition codes for all registers and all their fields of this module is completed.
6. A device for automatically generating a register header file, characterized in that: It includes register form reading module, legality checking module, temporary database writing module, temporary database, temporary database reading module, register header file generating module, among which: The register table reading module is used to read all register information from the register table; The legality check module is used to perform legality check on all register information read from the register form; The temporary database writing module is used to write all the register information that has passed the legality check into the temporary database; The temporary database reading module is used to read all register information from the temporary database; The register header file generation module is used to generate a register header file according to the format of the register header file by reading all the register information from the temporary database.
7. The device for automatically generating a register header file according to claim 6, characterized in that: The register table reading module reads all the register information from the register table, including: Module name and module base address, all registers contained in the module and information of each register domain, where register information includes register name, register offset address, register reset value, register description information, and information of each register domain includes domain name, domain start bit, domain end bit, domain bit width, domain attributes, domain reset value, and domain description information.
8. The device for automatically generating a register header file according to claim 7, characterized in that: The generated register header file includes register structure code, register base address macro definition code, and macro definition codes of all registers and all their fields.
9. An electronic device for automatically generating a register header file, characterized in that: The invention comprises a processor and a memory connected to the processor in communication, wherein the memory stores instructions, and when the instructions are executed by the processor, the method according to any one of claims 1 to 5 is implemented.
Citation Information
Patent Citations
Register-code-file generating method and device and electronic device
CN107436762A
Cited By
Register header file generation method and device, electronic equipment and storage medium
CN121145755A
Register header file generation method and device, electronic equipment and storage medium
CN121145755B