文章目录
- EmbeddedBuilder_v1.4.1.23782 - 在工程中添加自己的C实现文件
- 概述
- 笔记
- 添加自己的文件夹
- 在文件夹中建立新文件
- 在文件夹中载入已经存在的文件
- 修改工程编译时的包含路径和库路径
- 添加包含路径
- 添加实现路径
- 在main.c或其他实现中添加自己的头文件引用和自己的函数调用
- 保存 && 编译工程
- 备注
- END
EmbeddedBuilder_v1.4.1.23782 - 在工程中添加自己的C实现文件
概述
用EmbeddedBuilder产生工程代码后,可以在 user code [x] begin 和 user code [x] end 标记之间填写自己的实现。
不过如果想代码重用,这样搞不太好。
想添加自己的库实现(.h, .c),换了新工程后,只需要将库实现包含进来,在EmbeddedBuilder产生的代码中包含自己库的头文件,然后在需要的地方调用自己的库函数,这样维护性和重用性好很多。
试了试,可以的。
笔记
打开 EmbeddedBuilder,建立GD工程, 选定MCU种类,进入IDE
用图形化操作pinout, 时钟树, 配置3个页。
产生代码。
添加自己的文件夹
在文件夹中建立新文件
如果是新实现,就需要建立新文件
新建后的文件时空的,自己填写实现。如下
// @file my_lib.h
#ifndef __MY_LIB_H__
#define __MY_LIB_H__
// 空的测试函数
void my_lib_fn_empty(void);
#endif // #ifndef __MY_LIB_H__
// @file my_lib.c
#include "my_lib.h"
void my_lib_fn_empty(void)
{
}
在文件夹中载入已经存在的文件
如果是要重用自己写好的实现,就载入已经存在的文件
要拷贝的已存在的实现文件不能在目标文件夹中(否则会载入失败),然后用鼠标拖拽到工程的myLib节点上,松手。
出现提示时,选择拷贝文件,点击OK.
此时,已经存在的库实现文件,就被拖拽添加到了工程的myLib目录中。
修改工程编译时的包含路径和库路径
EmbeddedBuilder产生的工程中的.c, .h 都不能带路径,否则编译报错, 如下
如果我们添加的文件不在工程已经设置的路径中,那么就会编译报错。
所以在添加了自己的实现后,要确认和修改工程的路径设置。
直接修改main.c所在文件夹src的路径设置就可以。
添加包含路径
添加实现路径
在main.c或其他实现中添加自己的头文件引用和自己的函数调用
#include "gd32f3x0_hal.h"
#include "gd32f3x0_hal_init.h"
/* user code [global 0] begin */
#include "my_lib.h" // add my .h
/* user code [global 0] end */
int main(void)
{
/* user code [local 0] begin */
my_lib_fn_empty();
/* user code [local 0] end */
msd_system_init();
msd_clock_init();
保存 && 编译工程
Finished building: test_seg_lcd.siz
14:33:40 Build Finished. 0 errors, 0 warnings. (took 1s.762ms)
工程编译0错误,0警告
备注
在重新用.gdc产生代码后,工程中自己添加的实现和在main.c中添加的实现不受影响。
只是个demo, 基本能看出来,可以在GD project中添加自己的实现,使重用性成为可能。
具体细节再试试,按理说是可以的。等demo写完,如果有问题,再补充。