前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【嵌入式】Keil 工程文件详细讲解

【嵌入式】Keil 工程文件详细讲解

作者头像
LuckiBit
发布2024-12-11 11:22:11
发布2024-12-11 11:22:11
33600
代码可运行
举报
文章被收录于专栏:C语言C语言
运行总次数:0
代码可运行

Keil 工程文件详细讲解

Keil 是一种广泛应用于嵌入式系统开发的集成开发环境 (IDE),特别适用于 ARM 架构的微控制器。理解 Keil 工程文件结构及其组成部分对于高效地管理和开发项目至关重要。本文将详细讲解 Keil 工程文件的组成及其功能,包括必须和可选的文件,帮助开发者更好地理解和组织 Keil 项目文件结构。

1. Keil 工程文件概述

一个典型的 Keil 工程文件结构如下:

代码语言:javascript
代码运行次数:0
复制
ProjectName/
├── ProjectName.uvprojx         # 项目配置文件 (必须)
├── ProjectName.uvoptx          # 用户选项配置文件 (必须)
├── ProjectName.uvguix          # 用户界面配置文件 (可选)
├── Startup/                    # 启动文件夹 (必须)
│   ├── startup.s               # 启动汇编代码 (必须)
│   ├── system_stm32f4xx.c      # 系统初始化代码 (必须)
├── Source/                     # 源文件夹 (必须)
│   ├── main.c                  # 主程序入口 (必须)
│   ├── peripheral.c            # 外设驱动实现代码 (可选)
│   ├── peripheral.h            # 外设驱动声明文件 (可选)
├── Include/                    # 头文件夹 (必须)
│   ├── stm32f4xx.h             # STM32F4 系列微控制器头文件 (必须)
│   ├── system_stm32f4xx.h      # 系统初始化头文件 (必须)
├── Libraries/                  # 库文件夹 (部分必须)
│   ├── CMSIS/                  # Cortex-M 硬件抽象层 (必须)
│   │   ├── Core/               # CMSIS 核心文件 (必须)
│   │   ├── DSP/                # CMSIS-DSP 库 (可选)
│   │   ├── RTOS/               # CMSIS-RTOS 库 (可选)
│   │   ├── Driver/             # CMSIS-Driver 库 (可选)
│   ├── STM32F4xx_StdPeriph_Driver/ # STM32 标准外设库 (可选)
├── Output/                     # 输出文件夹 (必须)
│   ├── ProjectName.hex         # 十六进制输出文件 (必须)
│   ├── ProjectName.elf         # ELF 输出文件 (可选)
└── RTE/                        # 运行时环境文件夹 (可选)
    ├── RTE_Components.h        # 运行时环境组件配置文件 (可选)
    ├── RTE_Device.h            # 设备配置文件 (可选)

2. Keil 工程文件结构详细讲解

2.1 配置文件

文件/文件夹名称

功能描述

必需性

ProjectName.uvprojx

项目配置文件,包含项目结构、目标设备、编译设置等

必须

ProjectName.uvoptx

用户选项配置文件,保存用户个性化设置和显示配置

必须

ProjectName.uvguix

用户界面配置文件,管理用户界面的显示设置

可选

配置文件包含项目的基本配置信息和用户选项设置,是项目管理和编译的重要组成部分。

  • ProjectName.uvprojx:这是 Keil 项目文件的核心,包含项目结构、目标设备、编译和链接设置等。这个文件是每个 Keil 项目必需的,因为它定义了项目的基本框架。
  • ProjectName.uvoptx:这个文件保存用户的个性化设置和显示配置,是项目在不同开发者之间共享时保持一致性的重要文件。
  • ProjectName.uvguix:这是一个可选文件,用于管理用户界面的显示设置,方便开发者个性化 IDE 的界面。
2.2 启动文件

文件/文件夹名称

功能描述

必需性

Startup/

启动文件夹,包含初始化微控制器的代码

必须

├── startup.s

启动汇编代码,设置初始堆栈指针和复位处理程序

必须

├── system_stm32f4xx.c

系统初始化代码,配置系统时钟和系统初始化

必须

启动文件包括初始化微控制器所需的所有代码,确保系统在上电或复位时能够正确启动。

  • Startup 文件夹:这个文件夹包含初始化微控制器的必要代码,是每个 Keil 项目必须包含的部分。
  • startup.s:这是启动汇编代码,负责设置初始堆栈指针和复位处理程序,确保系统能够正确启动。
  • system_stm32f4xx.c:这个文件负责系统初始化代码,包括配置系统时钟和初始化系统外设。
2.3 源代码文件

文件/文件夹名称

功能描述

必需性

Source/

源文件夹,包含项目的主要源代码文件

必须

├── main.c

主程序入口,包含应用程序的主要逻辑

必须

├── peripheral.c

外设驱动实现代码,提供外设控制和操作接口

可选

├── peripheral.h

外设驱动声明文件,声明外设驱动接口

可选

源代码文件是项目的核心部分,包含所有实现项目功能的代码文件。

  • Source 文件夹:这个文件夹包含项目的主要源代码文件,是每个 Keil 项目必不可少的部分。
  • main.c:这是主程序入口文件,包含应用程序的主要逻辑,是项目中最重要的文件之一。
  • peripheral.c:这个文件包含外设驱动实现代码,提供外设控制和操作接口,根据项目需求可选。
  • peripheral.h:这个文件声明外设驱动接口,与 peripheral.c 配合使用,是外设驱动实现的重要部分。
2.4 头文件

文件/文件夹名称

功能描述

必需性

Include/

头文件夹,包含项目所需的头文件

必须

├── stm32f4xx.h

STM32F4 系列微控制器头文件,定义外设寄存器和相关常量

必须

├── system_stm32f4xx.h

系统初始化头文件,声明系统初始化函数

必须

头文件定义了项目所需的各种数据结构、宏和函数原型,是项目中不可或缺的一部分。

  • Include 文件夹:这个文件夹包含项目所需的所有头文件,是项目开发的基础部分。
  • stm32f4xx.h:这是 STM32F4 系列微控制器的头文件,定义了所有外设寄存器和相关常量,是项目中必不可少的部分。
  • system_stm32f4xx.h:这个文件声明了系统初始化函数,与 system_stm32f4xx.c 配合使用,确保系统能够正确初始化。
2.5 库文件

文件/文件夹名称

功能描述

必需性

Libraries/

库文件夹,包含项目所需的外部库文件

部分必须

├── CMSIS/

Cortex-M 硬件抽象层

必须

│ ├── Core/

CMSIS 核心文件

必须

│ ├── DSP/

CMSIS-DSP 库

可选

│ ├── RTOS/

CMSIS-RTOS 库

可选

│ ├── Driver/

CMSIS-Driver 库

可选

├── STM32F4xx_StdPeriph_Driver/

STM32 标准外设库,简化外设操作和配置

可选

库文件提供了丰富的外部功能和接口,简化了项目开发过程。

  • Libraries 文件夹:这个文件夹包含项目所需的所有外部库文件,是项目功能扩展的重要部分。
  • CMSIS 文件夹:这是 Cortex-M 硬件抽象层,提供了微控制器的核心接口,是项目中必不可少的部分。
    • Core 文件夹:包含 CMSIS 核心文件,是项目开发的基础部分。
    • DSP 文件夹:包含 CMSIS-DSP 库,提供数字信号处理功能

,适用于需要进行数字信号处理的项目,可选。

  • RTOS 文件夹:包含 CMSIS-RTOS 库,提供实时操作系统支持,适用于需要多任务处理的项目,可选。
  • Driver 文件夹:包含 CMSIS-Driver 库,提供标准的外设驱动接口,简化外设驱动开发,可选。
  • STM32F4xx_StdPeriph_Driver 文件夹:包含 STM32 标准外设库,这些库简化了外设的操作和配置,使开发者能够更轻松地控制 STM32 微控制器的外设。根据项目需求选择是否使用。
2.6 输出文件

文件/文件夹名称

功能描述

必需性

Output/

输出文件夹,存储生成的输出文件

必须

├── ProjectName.hex

十六进制输出文件,用于将程序烧录到微控制器

必须

├── ProjectName.elf

ELF 输出文件,包含可执行程序和调试信息

可选

输出文件是编译和链接过程的最终产物,用于将程序烧录到微控制器中或进行调试。

  • Output 文件夹:这个文件夹存储生成的所有输出文件,是项目开发和调试的最终结果。
  • ProjectName.hex:十六进制输出文件,是将程序烧录到微控制器中的必需文件。
  • ProjectName.elf:ELF 输出文件,包含可执行程序和调试信息,在调试过程中非常有用,但不是每个项目都必需。
2.7 配置文件

文件/文件夹名称

功能描述

必需性

RTE/

运行时环境文件夹,包含运行时环境配置文件

可选

├── RTE_Components.h

运行时环境组件配置文件,描述使用的组件和库

可选

├── RTE_Device.h

设备配置文件,配置和管理设备的运行时设置

可选

配置文件包含运行时环境的配置文件,提供项目运行时的组件和设备配置。

  • RTE 文件夹:这个文件夹包含运行时环境的配置文件,是项目在运行时环境中的基础配置部分。
  • RTE_Components.h:运行时环境组件配置文件,描述项目使用的组件和库,有助于管理和配置运行时环境中的组件,可选。
  • RTE_Device.h:设备配置文件,配置和管理设备的运行时设置,确保设备在运行时能够正确工作,可选。

3. Keil 工程结构的设计原理

Keil 工程文件结构的设计原则在于模块化和标准化,使开发者能够清晰地组织和管理项目中的各种文件。以下是 Keil 工程结构设计的几个关键原则:

  1. 模块化:通过将不同功能的文件分组存放(如配置文件、启动文件、源代码文件、头文件、库文件、输出文件和配置文件),使项目结构清晰,便于管理和维护。
  2. 标准化:遵循统一的命名规则和文件夹结构,使不同开发者能够快速理解和接手项目,减少沟通成本。
  3. 可扩展性:通过引入可选的库文件和配置文件(如 CMSIS 和外设库),使项目能够根据需求进行扩展,满足不同项目的需求。
  4. 可维护性:通过清晰的文件夹结构和分组,使项目中的文件易于查找和修改,提升项目的可维护性和可读性。

4. Keil 工程文件结构的必须和可选部分

为了帮助开发者更好地理解 Keil 工程文件结构中的各部分,以下是文件和文件夹的必须性分类:

4.1 必须的文件和文件夹
  • 配置文件
    • ProjectName.uvprojx
    • ProjectName.uvoptx
  • 启动文件
    • Startup 文件夹
    • startup.s
    • system_stm32f4xx.c
  • 源代码文件
    • Source 文件夹
    • main.c
  • 头文件
    • Include 文件夹
    • stm32f4xx.h
    • system_stm32f4xx.h
  • 库文件
    • CMSIS 文件夹
      • Core 文件夹
  • 输出文件
    • Output 文件夹
    • ProjectName.hex
4.2 可选的文件和文件夹
  • 配置文件
    • ProjectName.uvguix
  • 源代码文件
    • peripheral.c
    • peripheral.h
  • 库文件
    • CMSIS 文件夹
      • DSP 文件夹
      • RTOS 文件夹
      • Driver 文件夹
    • STM32F4xx_StdPeriph_Driver 文件夹
  • 输出文件
    • ProjectName.elf
  • 配置文件
    • RTE 文件夹
    • RTE_Components.h
    • RTE_Device.h

5. 工程结构示例表格描述

为了更好地展示 Keil 工程文件结构中的各文件和文件夹及其功能,以下是重新设计的表格描述,分组明确,显示每组文件夹和文件的功能及必需性。

5.1 Keil 工程结构表格描述

分组

文件/文件夹名称

功能描述

必需性

配置文件

ProjectName.uvprojx

项目配置文件,包含项目结构、目标设备、编译设置等

必须

配置文件

ProjectName.uvoptx

用户选项配置文件,保存用户个性化设置和显示配置

必须

配置文件

ProjectName.uvguix

用户界面配置文件,管理用户界面的显示设置

可选

启动文件

Startup/

启动文件夹,包含初始化微控制器的代码

必须

启动文件

├── startup.s

启动汇编代码,设置初始堆栈指针和复位处理程序

必须

启动文件

├── system_stm32f4xx.c

系统初始化代码,配置系统时钟和系统初始化

必须

源代码文件

Source/

源文件夹,包含项目的主要源代码文件

必须

源代码文件

├── main.c

主程序入口,包含应用程序的主要逻辑

必须

源代码文件

├── peripheral.c

外设驱动实现代码,提供外设控制和操作接口

可选

源代码文件

├── peripheral.h

外设驱动声明文件,声明外设驱动接口

可选

头文件

Include/

头文件夹,包含项目所需的头文件

必须

头文件

├── stm32f4xx.h

STM32F4 系列微控制器头文件,定义外设寄存器和相关常量

必须

头文件

├── system_stm32f4xx.h

系统初始化头文件,声明系统初始化函数

必须

库文件

Libraries/

库文件夹,包含项目所需的外部库文件

部分必须

库文件

├── CMSIS/

Cortex-M 硬件抽象层

必须

库文件

│ ├── Core/

CMSIS 核心文件

必须

库文件

│ ├── DSP/

CMSIS-DSP 库

可选

库文件

│ ├── RTOS/

CMSIS-RTOS 库

可选

库文件

│ ├── Driver/

CMSIS-Driver 库

可选

库文件

├── STM32F4xx_StdPeriph_Driver/

STM32 标准外设库,简化外设操作和配置

可选

输出文件

Output/

输出文件夹,存储生成的输出文件

必须

输出文件

├── ProjectName.hex

十六进制输出文件,用于将程序烧录到微控制器

必须

输出文件

├── ProjectName.elf

ELF 输出文件,包含可执行程序和调试信息

可选

配置文件

RTE/

运行时环境文件夹,包含运行时环境配置文件

可选

配置文件

├── RTE_Components.h

运行时环境组件配置文件,描述使用的组件和库

可选

配置文件

├── RTE_Device.h

设备配置文件,配置和管理设备的运行时设置

可选

5.2 说明
  • 配置文件: 包含项目配置、用户选项配置、用户界面配置等文件。这些文件是项目配置和管理的核心,项目配置文件和用户选项配置文件是必需的。
  • 启动文件: 包含启动汇编代码和系统初始化代码,是项目启动和初始化微控制器所必需的文件。
  • 源代码文件: 包含主程序入口文件和外设驱动实现及声明文件。主程序入口文件是必需的,而外设驱动实现和声明文件是根据项目需求可选的。
  • 头文件: 包含微控制器头文件和系统初始化头文件,这些头文件是定义外设寄存器和系统初始化函数所必需的。
  • 库文件: 包含 Cortex-M 硬件抽象层(CMSIS)和标准外设库(如 STM32 标准外设库)。CMSIS 核心文件是必需的,而 DSP、RTOS 和 Driver 库根据项目需求可选。
  • 输出文件: 存储生成的输出文件,如十六进制输出文件和 ELF 输出文件。十六进制输出文件是必需的,而 ELF 输出文件是调试时可选的。
  • 运行时环境文件: 包含运行时环境组件配置文件和设备配置文件,根据项目需求可选。

通过这种分组表格描述,可以更清晰地展示 Keil 工程结构中各文件和文件夹的功能及必需性,有助于开发者更好地理解和组织 Keil 项目文件结构。

6. 工程文件管理和维护

管理和维护 Keil 工程文件需要注意以下几个方面:

6.1 文件组织
  • 保持结构清晰:确保项目文件夹的结构清晰,文件按功能分类存放,避免混乱。
  • 使用标准命名:遵循统一的文件和文件夹命名规则,便于团队成员理解和使用。
  • 定期备份:定期备份项目文件,防止数据丢失或文件损坏。
6.2 文件修改
  • 版本控制:使用版本控制系统(如 Git)跟踪文件的变更历史,便于管理和恢复项目的不同版本。
  • 注释和文档:对源代码和配置文件添加注释和文档说明,帮助团队成员理解代码和设置。
  • 验证变更:在进行任何修改后,验证项目是否能够成功编译和运行,确保修改没有引入新问题。
6.3 工程配置
  • 编译选项:根据项目需求调整编译和链接选项,优化代码的性能和大小。
  • 调试配置:配置调试选项和符号,帮助开发者在调试过程中更好地分析和解决问题。
  • 库和驱动:根据项目的需求选择合适的库和驱动,避免不必要的库和文件影响项目的编译和运行。

7. 实践中的工程示例

以下是一个实际 Keil 工程的示例结构,展示了如何组织文件和文件夹:

代码语言:javascript
代码运行次数:0
复制
ProjectX/
├── ProjectX.uvprojx             # 项目配置文件
├── ProjectX.uvoptx              # 用户选项配置文件
├── Startup/
│   ├── startup_stm32f4xx.s      # 启动汇编代码
│   ├── system_stm32f4xx.c       # 系统初始化代码
├── Source/
│   ├── main.c                  # 主程序入口
│   ├── uart.c                  # UART 驱动代码
│   ├── uart.h                  # UART 驱动声明文件
├── Include/
│   ├── stm32f4xx.h             # STM32F4 头文件
│   ├── system_stm32f4xx.h      # 系统初始化头文件
├── Libraries/
│   ├── CMSIS/
│   │   ├── Core/               # CMSIS 核心文件
│   │   ├── DSP/                # CMSIS-DSP 库
│   ├── STM32F4xx_StdPeriph_Driver/ # STM32 标准外设库
├── Output/
│   ├── ProjectX.hex            # 十六进制输出文件
│   ├── ProjectX.elf            # ELF 输出文件
└── RTE/
    ├── RTE_Components.h        # 运行时环境组件配置文件
    ├── RTE_Device.h            # 设备配置文件

8. 常见问题和解决方案

8.1 工程文件无法打开或损坏
  • 检查文件路径:确保项目文件和文件夹的路径正确,没有被移动或重命名。
  • 恢复备份:如果文件损坏,尝试从备份中恢复项目文件。
  • 重新创建项目:如果无法修复损坏的文件,可以尝试重新创建项目并将源代码和设置重新导入。
8.2 编译错误
  • 检查配置:确保项目的编译和链接配置正确,所有必需的文件和库都已经添加。
  • 更新库文件:如果使用了外部库,确保库文件是最新版本,兼容当前的项目设置。
  • 查看日志:仔细检查编译器和链接器的输出日志,查找错误信息并进行相应的修复。
8.3 调试问题
  • 配置调试器:确保调试器配置正确,包括调试选项和符号。
  • 检查硬件连接:确认调试硬件和目标设备的连接正常,没有松动或损坏。
  • 使用调试工具:利用 Keil 提供的调试工具和功能,如断点、变量监视等,帮助定位和解决问题。

9. 常见的Keil 工程结构示例

确实还有其他典型的 Keil 工程结构,根据项目的复杂程度和需求不同,结构可能会有所变化。以下是一些常见的 Keil 工程结构示例:

9.1 简单项目结构

适用于简单的嵌入式项目,包含最少的文件和目录。

代码语言:javascript
代码运行次数:0
复制
SimpleProject/
├── SimpleProject.uvprojx
├── SimpleProject.uvoptx
├── SimpleProject.uvguix
├── main.c
├── startup_stm32f4xx.s
└── system_stm32f4xx.c
9.2 中等复杂项目结构

适用于有多个模块和外设的项目,文件和目录更为细化。

代码语言:javascript
代码运行次数:0
复制
MediumProject/
├── MediumProject.uvprojx
├── MediumProject.uvoptx
├── MediumProject.uvguix
├── Startup/
│   ├── startup_stm32f4xx.s
│   ├── system_stm32f4xx.c
├── Source/
│   ├── main.c
│   ├── peripheral.c
│   ├── peripheral.h
├── Include/
│   ├── stm32f4xx.h
│   ├── system_stm32f4xx.h
├── Libraries/
│   ├── CMSIS/
│   ├── STM32F4xx_StdPeriph_Driver/
├── Output/
│   ├── MediumProject.hex
│   ├── MediumProject.elf
└── RTE/
    ├── RTE_Components.h
    ├── RTE_Device.h
9.3 复杂项目结构

适用于大型项目,可能包含多个外部库、文档和测试代码等。

代码语言:javascript
代码运行次数:0
复制
ComplexProject/
├── ComplexProject.uvprojx
├── ComplexProject.uvoptx
├── ComplexProject.uvguix
├── Startup/
│   ├── startup_stm32f4xx.s
│   ├── system_stm32f4xx.c
├── Source/
│   ├── main.c
│   ├── peripheral.c
│   ├── peripheral.h
│   ├── sensor.c
│   ├── sensor.h
│   ├── communication.c
│   ├── communication.h
├── Include/
│   ├── stm32f4xx.h
│   ├── system_stm32f4xx.h
│   ├── sensor.h
│   ├── communication.h
├── Libraries/
│   ├── CMSIS/
│   ├── STM32F4xx_StdPeriph_Driver/
│   ├── ThirdPartyLib/
│   │   ├── lib1/
│   │   ├── lib2/
├── Docs/
│   ├── ProjectDocumentation.pdf
│   ├── API_Reference.md
├── Tests/
│   ├── test_main.c
│   ├── test_peripheral.c
├── Output/
│   ├── ComplexProject.hex
│   ├── ComplexProject.elf
└── RTE/
    ├── RTE_Components.h
    ├── RTE_Device.h
9.3.1 表:复杂项目结构描述

分组

文件/文件夹名称

说明

主要作用

项目配置文件

ComplexProject.uvprojx

项目主配置文件

包含项目结构、目标设备、编译设置等

ComplexProject.uvoptx

IDE 用户选项配置文件

保存用户个性化设置和显示配置

ComplexProject.uvguix

IDE 用户界面配置文件

管理用户界面的显示设置

启动文件

Startup/

启动文件夹

包含启动代码和系统初始化文件

startup_stm32f4xx.s

启动汇编代码

设置初始堆栈指针和复位处理程序

system_stm32f4xx.c

系统初始化代码

配置系统时钟和系统初始化

源文件

Source/

源文件夹

包含项目的源代码文件

main.c

主程序入口

包含应用程序的主要逻辑

peripheral.c

外设驱动实现代码

提供外设控制和操作接口

peripheral.h

外设驱动声明文件

声明外设驱动接口

sensor.c

传感器驱动实现代码

提供传感器的控制和操作接口

sensor.h

传感器驱动声明文件

声明传感器驱动接口

communication.c

通信模块实现代码

提供通信模块的控制和操作接口

communication.h

通信模块声明文件

声明通信模块接口

头文件

Include/

头文件夹

包含项目所需的头文件

stm32f4xx.h

STM32F4 系列微控制器头文件

定义外设寄存器和相关常量

system_stm32f4xx.h

系统初始化头文件

声明系统初始化函数

sensor.h

传感器头文件

声明传感器接口

communication.h

通信模块头文件

声明通信模块接口

库文件

Libraries/

库文件夹

包含项目所需的外部库文件

CMSIS/

Cortex-M 硬件抽象层

提供对 Cortex-M 处理器的支持和接口

STM32F4xx_StdPeriph_Driver/

STM32 标准外设库

简化外设操作和配置

ThirdPartyLib/

第三方库

包含第三方库文件和驱动

lib1/

第三方库 1

提供库函数和接口

lib2/

第三方库 2

提供库函数和接口

文档文件

Docs/

文档文件夹

包含项目相关文档

ProjectDocumentation.pdf

项目文档

项目说明和设计文档

API_Reference.md

API 参考文档

项目 API 使用说明

测试文件

Tests/

测试文件夹

包含项目的测试代码

test_main.c

主测试程序

包含测试用例的主要逻辑

test_peripheral.c

外设测试程序

测试外设功能

输出文件

Output/

输出文件夹

存储生成的输出文件

ComplexProject.hex

十六进制输出文件

用于将程序烧录到微控制器

ComplexProject.elf

ELF 输出文件

包含可执行程序和调试信息

运行时环境文件

RTE/

运行时环境文件夹

包含运行时环境配置文件

RTE_Components.h

运行时环境组件配置文件

描述使用的组件和库

RTE_Device.h

设备配置文件

配置和管理设备的运行时设置

这些示例展示了从简单到复杂的 Keil 工程结构,可以根据项目的具体需求选择适当的结构来组织文件和目录。这样可以确保项目的可维护性和可扩展性。

10. 结束语

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对 Keil 工程结构有了更深入的理解和认识。
  2. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Keil 工程文件详细讲解
    • 1. Keil 工程文件概述
    • 2. Keil 工程文件结构详细讲解
      • 2.1 配置文件
      • 2.2 启动文件
      • 2.3 源代码文件
      • 2.4 头文件
      • 2.5 库文件
      • 2.6 输出文件
      • 2.7 配置文件
    • 3. Keil 工程结构的设计原理
    • 4. Keil 工程文件结构的必须和可选部分
      • 4.1 必须的文件和文件夹
      • 4.2 可选的文件和文件夹
    • 5. 工程结构示例表格描述
      • 5.1 Keil 工程结构表格描述
      • 5.2 说明
    • 6. 工程文件管理和维护
      • 6.1 文件组织
      • 6.2 文件修改
      • 6.3 工程配置
    • 7. 实践中的工程示例
    • 8. 常见问题和解决方案
      • 8.1 工程文件无法打开或损坏
      • 8.2 编译错误
      • 8.3 调试问题
    • 9. 常见的Keil 工程结构示例
      • 9.1 简单项目结构
      • 9.2 中等复杂项目结构
      • 9.3 复杂项目结构
    • 10. 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档