1. 项目背景与核心需求
在嵌入式开发领域,Keil MDK是使用最广泛的集成开发环境之一。随着项目规模扩大,代码风格不统一的问题会严重影响团队协作效率。特别是当多人协作开发时,不同成员提交的代码可能采用不同的缩进、空格、换行等风格,导致代码库杂乱无章。
ASTyle(Artistic Style)是一个开源代码格式化工具,支持C/C++/C#/Java等多种语言。它可以通过预定义的规则自动调整代码格式,但常规使用方式需要手动指定单个文件,这对于包含数百个源文件的大型工程来说效率极低。
这个项目的核心需求是:
- 实现Keil工程目录的递归批量格式化
- 支持自定义格式化规则配置文件
- 与Windows环境无缝集成
- 保持与Keil工程结构的兼容性
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 工具链选型与配置
2.1 基础环境准备
首先需要安装以下工具:
- Keil MDK(建议uVision5及以上版本)
- Astyle最新版(本文使用3.1版本)
- Windows命令行工具(CMD或PowerShell)
注意:安装AStyle时建议选择"Add to PATH"选项,这样可以在任意目录调用astyle命令
2.2 Astyle规则配置文件
创建astyle.cfg配置文件,示例内容如下:
code复制--style=kr
--indent=spaces=4
--indent-switches
--indent-preproc-block
--pad-oper
--pad-header
--unpad-paren
--align-pointer=name
--align-reference=name
--convert-tabs
--suffix=none
--recursive
--verbose
关键参数说明:
--style=kr:采用Kernighan & Ritchie风格(类Linux内核风格)--indent=spaces=4:使用4个空格缩进--recursive:启用目录递归处理
3. 工程目录结构分析
典型的Keil工程目录结构示例:
code复制Project/
├── UV4/
│ ├── Project.uvprojx
│ └── Project.uvop
