背景:项目升级,硬件上:将nrf52832片子升级至nrf52840(调高天线发射接收增益,增加usb接口);软件上:由之前sdk13版本升级至sdk16。
遇到问题:编译sdk16的时候会遇到编译不过的问题报错如下
Error #540: 'ARM::CMSIS:CORE:5.0.0' component is not available for target 'nrf52840_xxaa', pack 'ARM.CMSIS.5.0.0' is not selected
注:sdk16示例编译过程中,每一个示例都需要如下步骤设置,比较麻烦,建议直接绕过sdk16,直接升级至sdk17,sdk17已经解决了这个bug,可以直接编译。
(1) 官网下载sdk16
官网连接:https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK/Download#infotabs
百度云连接:链接:https://pan.baidu.com/s/11x43soXaLYQ3SkjVINp-iQ 提取码:60w7
(2)DeviceFamilyPack 下载
打开示例工程,提示缺少DeviceFamilyPack包,版本8.27.0,果断打开mdk官网寻找DeviceFamilyPack8.27.0 连接如下:
官网:https://www.keil.com/dd2/Pack/ 找到DeviceFamilyPack8.27.0 如下图:
一眼锁定,直接Download ,不料胜利在望但功归一篑,见下图:
你所请求的链接数据包在服务器没有发现。别费劲了,这仅仅是这次编译的入坑之一,果断下载最新pack包 Version: 8.32.1 。高版本可以向下兼容。
百度网盘地址:链接: https://pan.baidu.com/s/1NaGU_Zb8zIG3JYRPZcLIYQ 提取码:wx0g。成功后进行安装。
(3) 选择DeviceFamilyPack8.32.1 操作如下图配置:
(4) 选择取消DeviceFamilyPack验证:
执行完成(3)后提示报错信息:Error #544: Required Software Pack'NordicSemiconductor.nRF_DeviceFamilyPack_NordicLicense.8.27.0' is not installed
执行如下图所示:
(5)设置device
(6)解决mdk和sdk16文件交叉冲突
完成上述步骤,配置就没有问题了,但是sdk16还有一个bug(文件冲突),需要解决删除如下图路径下compiler_abstraction.h文件,因为这里mdk包里面已经有这个文件了,会交叉冲突。删除之后编译可通过
最后,如有错误或者问题,可以联系qq2013462220,革命尚未成功,同志还需努力。