news 2026/4/25 3:09:59

Keil ”品“(Manage Project Items)功能介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Keil ”品“(Manage Project Items)功能介绍

一、Project Items 界面

Manage Project Items是 Keil µVision 中用于系统化管理项目结构、文件、工具路径、文档及项目信息的核心功能窗口。它通过Project Items、Folders/Extensions、Books、Project Info/Layer四个标签页,全方位控制项目组织与编译环境。

区域1:Project Targets

概述:

在嵌入式开发中,我们经常会遇到这样的场景:同一套代码,需要为不同硬件版本、调试 / 发布模式,或者不同配置进行编译。如果每次都新建工程,会造成大量代码冗余和维护困难。Project Targets 正是为了解决这个问题而生的功能

  • 它允许在同一个工程中创建多套独立的编译配置方案,而无需复制多份代码。
  • 所有 Target共用同一份源代码文件,修改一处,所有 Target 都会同步更新,保证了代码的一致性。
  • 每个 Target 都拥有一套独立的编译环境(也就是 Keil 里的 “魔术棒” 配置),可以单独设置:
    • 目标芯片型号
    • 编译优化等级
    • 预编译宏定义
    • 内存布局(Flash/RAM 地址)
    • 调试接口、链接脚本等
  • 还可以为不同 Target 单独控制文件的编译权限,通过Exclude from Build选项,指定哪些文件参与当前目标的构建。

使用方法:

新建项目目标:

按照下图新建项目目标完成后需要电机 OK,才保存下来。

完成创建后就会发现在菜单栏中就可以选择不同的Target。

使用案例:

不同 Project Target 配置不同的魔法棒配置:

区域2:Groups、Files

概述:

随着嵌入式项目规模变大,代码文件会越来越多。如果所有.c/.s文件都堆在同一个列表里,会变得杂乱无章,难以查找和维护。尤其是用户自己新增的.c/.s文件,如果不做分类管理,后期修改、调试时,找文件的成本会越来越高。为了解决这个问题,Keil 提供了 Groups(文件组)和 Files(文件列表)功能。

Groups 相当于工程里的虚拟文件夹,我们可以按照功能、文件类型自由创建分组,用来分类管理代码,让工程结构清晰直观。

Files 则用于给分组添加具体的源文件,即使你在电脑文件夹里分好了 .c 和 .h,也必须通过这里手动添加到分组中,才能参与编译、被工程识别和使用。

使用案例:

案例1:源文件(.c)和头文件(.h)在同一个文件夹,添加进工程项目使用。

打开 Keil 工程后,按照下图步骤进行操作。

注意:在 Groups 下新建的分组名称,要与第一步在电脑文件夹中创建的文件夹名称保持一致,方便结构对应、便于管理。

源文件已添加成功,接下来是添加头文件。

案例2:源文件(.c)和头文件(.h)不在同一个文件夹,添加进工程项目使用。

步骤跟上面的都一样,不同的是代码里的头文件路径,要具体到哪个文件夹下。

注意:上述添加的头文件步骤都找不到头文件的话,就需要到 “ 魔术棒”里的 C/C++ 界面→ Include Paths 里添加这个.h所在的文件夹路径。步骤如下:

二、Folders/Extensions 界面

该界面主要用于配置 Keil 编译工具链的基础根目录、BIN/INC/LIB/Regfile 等子文件夹路径,也能自定义 C 语言、汇编、头文件、库文件的默认后缀格式;支持调用 TOOLS.INI 配置文件沿用默认安装路径,方便工程换电脑也能正常编译,普通开发者保持默认即可,仅在工具路径异常、更换编译工具链时才需手动调整。

1. Use Settings from TOOLS.INI

作用:让Keil去读取TOOLS.INI文件里的全局工具路径配置,而不是当前工程自己存的路径。

  • 勾选:路径由TOOLS.INI这个全局文件说了算,工程不 “硬写死” 路径,换电脑时只要 Keil 装在同一路径,工程就能直接用。
  • 不勾选:路径就直接写在当前工程的配置里,换电脑如果 Keil 路径不一样,就会报错 “找不到编译器”。

2. 工具路径配置

这部分是给Keil “指路” 的,告诉它编译工具、头文件、库文件都放在哪里,官方给出了具体示例(以C51为例),我们逐一拆解。

  • Tool Base Folder(工具基础根目录):指定工具链的根路径,比如C51的默认路径是C:\Keil_v5\C51\,相当于告诉Keil“编译工具的总文件夹在这里”。

  • BIN:工具链的二进制文件夹路径,比如C:\Keil_v5\C51\BIN\,里面是可执行的编译工具(相当于Keil的“核心工具库”)。

  • INC:头文件文件夹路径,比如 C:\Keil_v5\C51\INC\,Keil编译时会在这里找我们写的.h头文件。

  • LIB:库文件文件夹路径,比如 C:\Keil_v5\C51\LIB\,存放编译所需的库文件(相当于“辅助工具包”,不用我们自己写)。

  • Regfile:寄存器定义文件文件夹路径,比如 C:\Keil_v5\C51\REG\,存放单片机的寄存器定义文件,方便我们调用寄存器。

小白重点:默认路径不用改!只有两种情况需要调整:重新安装Keil后路径变了;更换了编译工具链(比如从C51换成ARM),否则改了会导致编译报错。

3. Default File Extension(默认文件扩展名:自动识别文件类型)

就是给Keil设定 “识别规则”,比如告诉它:后缀是.c的是C语言文件,后缀是.h的是头文件,后缀是.s.asm的是汇编文件。

常见默认设置(小白不用改):

C Source(C语言文件):.c

ASM Source(汇编文件):.s;*.asm

Header(头文件):.h

Library(库文件):.lib

小白重点:这个设置的好处是,我们往工程里添加文件时,Keil会自动识别文件类型,不用手动选择,省时间还不容易出错

4.UseARM Compiler

  • 作用:启用 Keil 自带的ARM 编译器(ARMCC/ARMCLANG),这是 Keil MDK 默认给 ARM 单片机用的编译器。
  • 勾选后,下面的路径会自动关联到你 Keil 安装目录里的 ARM 编译器(比如图里的D:\Keil\Keil_v5\ARM\)。
  • 小白不用管它,只要勾选了,就能正常编译 ARM 工程, Setup Default ARM Compiler Version 按钮可以用来切换编译器版本(v5/v6),一般默认就好。

5. Use GCC Compiler (GNU) for ARM projects

  • 作用:给 ARM 工程启用开源的 GCC 编译器,替代 Keil 自带的 ARM 编译器。
  • Prefix:GCC 工具链的前缀(默认 arm-none-eabi-),用来识别 gcc、ld 等工具。
  • Folder:GCC 工具链的安装路径,Keil 需要在这里找到编译工具。

三、Books 界面

Books 界面是 Keil 专门用来统一管理各类开发手册、数据手册、教程文档的面板,可按通用、工具链、芯片设备三类分类管理,支持自定义文档标题、存放路径、默认根目录,还能新增、删除、排序文档,配置后可在 Keil 自带的 Books 窗口直接快速查阅,不用手动找文件夹打开资料。

1. General Books 通用文档

归类到 Keil Books 窗口µVision分区,所有工程都能看到,放通用教程、Keil 使用手册这类和芯片、编译器无关的资料。

2. Tool Specific 工具链专属文档

归类到 Books 窗口Tools User's Guide分区,只对当前所用编译器工具链生效,同工具链下所有工程共用,放编译器、汇编器、链接器官方手册。

3. Device Specific 芯片设备专属文档

归类到 Books 窗口Device Data Books分区,只在使用这款单片机的工程里显示,自动关联芯片库配置;专门放芯片数据手册、外设参考手册,是开发最常用的一类。

Default Root 默认根目录

设置所有文档的默认存放根文件夹;如果设备专属目录为空,会自动继承工具链的默认根目录。找不到本地文档时,Keil 会自动联网搜索对应手册。

操作控件功能

  • 新增 / 删除 / 上下排序:调整文档列表顺序。
  • New/Change Book:新建文档条目,或修改已有文档的名称、路径。
  • 双击列表项:快速修改文档配置。
  • 双击空白处:快速添加新文档。

Book Title / Book Path 作用

  • Book Title:自定义文档显示名称,只在 Keil Books 窗口展示,方便自己识别。
  • Book Path:填写文档绝对路径或相对路径;相对路径会自动拼接上面设置的 Default Root 根目录。

四、Project Info/Layer 界面

Project Info/Layer 是工程信息填写 + 工程分层架构配置页面,一边用来给工程填标题、描述、适配开发板、协议许可证等备注信息;另一边用来创建软件分层,把代码、组件按层级归类,主要服务 CMSIS 架构、大型模块化工程、CI/CD 自动编译流程,普通个人小白小工程基本用不上。

4.1 Project Info 工程信息板块(官方逐条白话翻译)

  1. 工程标题 Title:给整个工程起一个正式名称。
  2. 简要描述 Brief Description:写项目用途、功能简介,限制最多 100 个字符。
  3. 文档链接 Documentation:可以填项目手册、说明文档的网址或本地路径。
  4. 分类标签 Categories:给工程打分类标签,方便归类管理。
  5. 开源许可证 License:采用 SPDX 规范填写项目开源协议。
  6. 适配开发板 Board:指定这个工程是为哪款开发板、硬件平台开发的。

重点小白提示:<Project Info>这个名称是系统固定的,不能手动改名;这里所有信息都只是备注归档作用不影响编译、不影响代码运行

4.2 Project Layers 工程分层板块(核心作用)

分层是干嘛的:

Layer 就是软件逻辑分层,可以把预配置好的软件组件、工程文件分到不同层里,用途:

  • 把官方评估套件的程序,快速移植到自己定制硬件上
  • 把官方例程快速适配多款单片机、多款目标板
  • 配合 CMSIS-Build 做 CI/CD 自动化批量编译、多硬件适配工程

小白一句话:就是给大型工程做模块化分层、方便移植和批量编译的高级功能

小白关键知识点:

工程分层主要用在CMSIS-Build 流程,普通 Keil 日常单工程开发,几乎用不到、不用配置

4.3 如何创建工程分层(极简流程,博客可简写)

  1. 打开 Manage Project Items 切换到 Project Info/Layer;
  2. 点 New 新建一个分层,比如 Board 板级层、Driver 驱动层、App 应用层;
  3. 给分层填标题、描述、文档链接、分类、开源协议、提供接口、依赖接口、适配目标芯片 / 开发板;
  4. 保存完成分层创建。

4.4 把文件 / 组件分配到对应分层

  1. 在工程窗口右键代码文件或软件组件,打开选项;
  2. 切换到属性页,找到 Layer 下拉框;
  3. 选择建好的对应分层,确定即可绑定归类。

4.5 分层信息导出 CPRJ 工程格式

Keil 默认工程格式不带分层信息,想要保留分层配置、用于 CI/CD 编译:通过Project — Export — Save Project to CPRJ format导出为.cprj格式,用于 CMSIS 自动化构建。

4.6 Use Settings from TOOLS.INI 同样适用

和前面三个界面逻辑一模一样:

  • 不勾选:工程信息、分层结构只保存在当前工程,独立互不影响;
  • 勾选:从 Keil 全局 TOOLS.INI 读取配置,所有工程共用一套信息和分层模板。

小白建议:保持默认不勾选,完全不用碰这一页任何配置

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 3:09:46

04-09-06 技术分歧场景 - 学习笔记

04-09-06 技术分歧场景 - 学习笔记 章节信息 核心主题:技术分歧的本质、避免技术ego、寻找第三选择 学习目标:掌握处理技术分歧的方法,在保持技术追求的同时维护团队关系 关键要点:分歧背后的真实原因、数据驱动决策、第三选择思维、技术方案对话模板核心概念 1. 技术分歧的本质…

作者头像 李华
网站建设 2026/4/25 3:09:44

C++编写MCP网关稳定性攻坚(生产环境零停机调优实录)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;C编写高吞吐量MCP网关报错解决方法 在构建基于 MCP&#xff08;Message Control Protocol&#xff09;协议的高吞吐量网关时&#xff0c;C开发者常遭遇 std::system_error: Resource temporarily unava…

作者头像 李华
网站建设 2026/4/25 3:04:15

keil未指定 PY32F0 具体芯片型号导致编译报错及无法烧录问题

今天使用新的电脑编译了原本在另一台电脑上创建的一个工程&#xff0c;结果报如下错误&#xff1a;这个报错不是代码错误&#xff0c;是必须给工程指定具体的 PY32F0 芯片型号&#xff0c;编译器才知道用哪套寄存器定义。py32f0xx.h 第 133 行强制检查&#xff1a;必须定义一个…

作者头像 李华
网站建设 2026/4/25 3:03:23

材料智能(MBI)架构:突破冯·诺依曼瓶颈的新范式

1. 材料智能(MBI)的架构革命在传统计算架构中&#xff0c;我们早已习惯将硬件与软件明确分离——CPU执行算法、内存存储数据、总线负责传输&#xff0c;这种冯诺依曼架构虽然通用性强&#xff0c;但其物理分离的设计本质导致了著名的"冯诺依曼瓶颈"&#xff1a;数据在…

作者头像 李华
网站建设 2026/4/25 3:00:42

AI-CS客服系统自部署有什么问题?怎么解决?

AI-CS 客服系统自部署常见问题包括环境配置冲突、网络端口映射错误及前后端通信故障。针对您遇到的 Docker 部署前端访问后端 404 错误&#xff0c;首先需检查后端容器是否成功启动并监听 0.0.0.0 而非 127.0.0.1&#xff0c;确保端口映射正确。其次&#xff0c;检查 Nginx 反向…

作者头像 李华