1.项目创建及导出
1.1 导入项目
1.创建工作空间
2.导入项目到工作空间
3.选择要导入的工程路径代码
- 4.编译测试
-
- 多项目导入
- 6.异常情况处理
1.没有导入工程路径代码到工作空间会导致无法正常编译
2.删除无效工作空间(如果直接从同事共享的工程路径启动IDE时会产生无效工作空间)
1.2 新建項目
1、文件 — 新建 ---- KungFu32项目;參考https://blog.csdn.net/Fanshijun1/article/details/128084361
2、将文件复制粘贴到工作空间下或者新建源码目录、.c,.h文件:
3.设置头文件依赖
4.编译优化配置
5.警告类型配置
6.C语言标准设置
7.生成hex文件
- 8.编译前后可执行的指令
- 9.调试参数设置
- 10.固件编程设置
1.3 导出项目
- 1.导出为归档文件
2.項目构建
2.1 编译工程
选择构建操作时,会自动生成makefile文件,gmake -k all按makefile规则触发整个编译链接过程:
1.IDE编译相关工具在"…\KungFu32\ChipONCC32\ccr1_issue_v0\bin"目录下,包括
C编译器、汇编器、链接器、kf32-objdump、kf32-objcopy工具;
2.gmake在"…\KungFu32\ChipONCC32\common"目录下;
3.makefile文件在Release或Debug目录下;
2.2 编译生成的文件
1.编译过程中会生成多种中间文件:
.o 文件:由编译器将每个.c或.cpp源文件编译生成的二进制中间文件;
.i 文件:由预处理器(cpp)生成,是源文件经过宏展开、#include替换、条件编译处理后的纯文本文件;
.s 文件:由编译器将C/C++代码转换成的汇编语言文件;
.d 文件:记录源文件(如.c)所依赖的头文件路径(如.h);
2.编译生成的目标文件
.elf文件:由链接器生成,包含完整的可执行程序,包括代码(.text)、数据(.data、.bss)、调试信息(如DWARF格式)、符号表等,可用于调试;
.list文件:由编译器生成,包含C源代码 + 对应的汇编代码,便于分析编译器优化和代码执行流程。可用于性能优化或排查编译器优化问题; list 包含了最多的信息,包括每个程序地址下的机器码,汇编指令,源码对应关系。这里也是查看编译结果是否正确的观察出发点
.map文件:由链接器生成,记录:所有函数和变量的地址(.text、.data、.bss 等段)。
内存布局(Flash、RAM的占用情况)。库文件依赖关系.用于分析内存溢出、优化存储布局或排查链接错误; Map文件的作用主要查看项目中定义的变量或编译过程使用的中间变量所分配的地址情况。根据变量所在地址,在调试时可以通过打开内存视图查看变量的实际结果,从而不局限于变量或表达式窗口。
.s19文件:Motorola S-record(S19/SREC格式)一种ASCII编码的烧录文件格式,包含地址和数据记录;
清理.o和.d文件,比較奇怪的是不會清除.i, .s文件;