天天看點

NRF52 SDK16 示例編譯錯誤

背景:項目更新,硬體上:将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 如下圖:

NRF52 SDK16 示例編譯錯誤

  一眼鎖定,直接Download ,不料勝利在望但功歸一篑,見下圖:

NRF52 SDK16 示例編譯錯誤

  你所請求的連結資料包在伺服器沒有發現。别費勁了,這僅僅是這次編譯的入坑之一,果斷下載下傳最新pack包                     Version: 8.32.1 。高版本可以向下相容。

百度網盤位址:連結: https://pan.baidu.com/s/1NaGU_Zb8zIG3JYRPZcLIYQ   提取碼:wx0g。成功後進行安裝。

(3) 選擇DeviceFamilyPack8.32.1  操作如下圖配置:

NRF52 SDK16 示例編譯錯誤

(4) 選擇取消DeviceFamilyPack驗證:

執行完成(3)後提示報錯資訊:Error #544: Required Software Pack'NordicSemiconductor.nRF_DeviceFamilyPack_NordicLicense.8.27.0' is not installed

執行如下圖所示:

NRF52 SDK16 示例編譯錯誤

(5)設定device

NRF52 SDK16 示例編譯錯誤

(6)解決mdk和sdk16檔案交叉沖突

完成上述步驟,配置就沒有問題了,但是sdk16還有一個bug(檔案沖突),需要解決删除如下圖路徑下compiler_abstraction.h檔案,因為這裡mdk包裡面已經有這個檔案了,會交叉沖突。删除之後編譯可通過

NRF52 SDK16 示例編譯錯誤

最後,如有錯誤或者問題,可以聯系qq2013462220,革命尚未成功,同志還需努力。