问题描述:
MDK-ARM Keil的工程移植到STM32CubeIDE后,经过调整,能编译通过,但是有四个编译警告,分别是:
_close,_lseek,_read,_write is not implemented and will always fail.
警告如上图👆
解决方案
用STM32CubeIDE中集成的STM32CubeMX配置好工程,生成代码时,有一个文件syscalls.c,该文件中弱定义了_close, _lseek, _read, _write等函数,把该文件添加到现有工程中,编译,警告消失。
syscalls.c源文件如上图。
注:STM32CubeIDE使用的是GCC编译器,MDK-ARM使用的是ARMCC编译器,原工程中与ARMCC编译器关联的文件,如一些汇编代码文件,要替换为GCC编译器对应的文件!!!