【问题】:因项目需要使用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文件:
.文件: