MDK调试错误之assert_failed
Undefined symbol assert_failed (referred from dma.o).
链接过程中出现assert_param函数未定义的错误
解决方法:
在Options->C/C++->preprocessor Symboles有Define:项中输入USE_STDPERIPH_DRIVER,重新编译链接,无警告无错误。
或其实,出现这种现象是由于你使用的main文件模板时将以下的函数删掉了!所以直接加上相应的函数就OK!
1 #ifdef USE_FULL_ASSERT
2 /**
3 * @brief Reports the name of the source file and the source line number
4 * where the assert_param error has occurred.
5 * @param file: pointer to the source file name
6 * @param line: assert_param error line source number
7 * @retval : None
8 */
9 #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
10 /* Exported functions ------------------------------------------------------- */
11 void assert_failed(uint8_t* file, uint32_t line);
12 #else
13 #define assert_param(expr) ((void)0)
14 #endif