背景
最近要搞JN5168的开发,下载了官网的历程,搭建了官方提供的bstudio_nxp环境,默认配置下,导入官方demo,编译成功,但是导入到自定义workspace
路径时就不能成功。
原因
简单了解发现,工程中的C文件包涵的头文件都没有。研究build文件夹下的makefile发现有如下语句:
1 | SDK_BASE_DIR ?= $(abspath ../../../../sdk/$(JENNIC_SDK)/) |
可以发现SDK_BASE_DIR
经过路径设定指向了sdk/JN-SW-4163
,而JN-SW-4163
中放的是板级支持包,正是工程中c文件内缺少的头文件存放的位置。
分析默认配置发现,这些路径是在安装路径下可用的,而makefile用的是当前路径。所以呢最简单的办法是修改SDK_BASE_DIR
变量指向JN-SW-4163
所在路径。参考
1 | #SDK_BASE_DIR ?= $(abspath /C/NXP/bstudio_nxp/sdk/$(JENNIC_SDK)/) |
如果只想指向自定义的路径呢??
有点小麻烦…不过还是有办法的!这么修改变量SDK_BASE_DIR
1 | SDK_BASE_DIR ?= $(abspath ../../../$(JENNIC_SDK)/) |
之后把对应的板级支持包拷贝到用户设定的路径workspace
下。但是还没完…
因为板级支持包下有config.mk
文件,内部制定了编译相关的参数,而指向的路径还是在安装环境下,也是通过SDK_BASE_DIR变量访问的,所以还需要把板级支持包同路径的tools
文件复制到用户workspace
下。想想都好麻烦.
结论
所以还是改Makefile比较简单。
1 | #SDK_BASE_DIR ?= $(abspath /C/NXP/bstudio_nxp/sdk/$(JENNIC_SDK)/) |
不过就用官方默认配置还是最方便的选择。