引言
本文描述了在使用Env工具开发生成或配置Keil工程时,添加一个模块或者组件到我们自己的Keil项目中,并且在 Keil 里面的 IncludePath 中添加。
下面教程开始。
一、添加模块文件
在根目录下添加一个Module文件夹,并在这个文件夹里面添加好你自己的组件或者模块,并且新建一个 SConscript 文件。
文件夹树一览。
二、添加脚本代码到 SConscript 文件
新建一个 SConscript 文件,然后使用记事本或者其它任何工具打开 SConscript 文件,并添加以下代码。代码都会有注释。
如果你想生成的Keil文件夹是其它的名字,请修改 group_name 这个值。
# for module compiling
import os
Import('RTT_ROOT')
from building import *
cwd = GetCurrentDir()
objs = []
list = os.listdir(cwd)
for d in list:
# 获取单个文件夹的路径
path = os.path.join(cwd, d)
# 判断是否是文件夹
if os.path.isdir(path):
# 查找这个文件夹下的所有.c文件夹
src = Glob(path + '\*.c')
# 设置当前的路径到 CPPPATH
CPPPATH = [path, str(Dir('#'))]
# 获取当前目录的文件名(不包括路径)
filename_without_path = os.path.basename(os.path.normpath(path))
# 创建新的组名,例如当前目录是 aes ,则组名为 Module_aes
group_name = 'Module_' + filename_without_path
print("group_name: " + group_name)
# 使用新的组名定义组,并添加进对象列表中
objs = objs + DefineGroup(group_name, src, depend=[], CPPPATH=CPPPATH)
Return('objs')
三、执行命令,看结果
在你们的工程目录中打开Env工具,输入命令:
scons --target=mdk5
输出结果提示生成成功说明没问题!
查看Keil工程代码目录结构:
没有问题接下来就可以写代码编译运行啦!
下次有时间讲讲如何把自己的组件添加到Env配置菜单里面去。