1. 程式人生 > >nRF52832——由SDK12.3改為SDK15.2,底層驅動相容性問題

nRF52832——由SDK12.3改為SDK15.2,底層驅動相容性問題

【問題】:因專案需要使用FreeRTOS作業系統,原SDK12.3 中的FreeRTO還是8.0版本的,太老了,擔心有BUG,所以切換到了SDK15.2版本開發,對應的FreeRTOS是10.0版本的,但是移植底層驅動時發現不相容,比如加了個串列埠,提示如下錯誤:

.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol app_uart_init (referred from main.o).

 

【根因】:SDK12.3和15.2對部分驅動檔案進行了修改,原\components\drivers_nrf 路徑下的檔案重新定義,新的驅動放在了\modules\nrfx\drivers路徑下面,變成了nrfx_uart.c,舊的驅動放在\integration\nrfx\legacy目錄下,即nrf_drv_uart.c,所以為了相容,兩個驅動檔案都要加入工程中;

 

例如加入串列埠,在SDK15.2需要加入如下.c檔案:

.檔案:

在sdk_config.h中開啟相應外設;