MDK中使用MDK自带的ST固件函数,assert_param()在哪里定义的??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDK中使用MDK自带的ST固件函数,assert_param()在哪里定义的??相关的知识,希望对你有一定的参考价值。

参考技术A 在stm32f10x_conf.h中定义
源码如下

#ifdef USE_FULL_ASSERT
/**
* @brief The assert_param macro is used for function's parameters check.
* @param expr: If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* @retval None
*/
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0)
#endif /* USE_FULL_ASSERT */追问

这个是知道的,我说具体实现代码? 是ARM公司把具体实现给隐藏了,只给了目标文件?

参考技术B #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
这个就是具体的代码了吧,判断expr是否为真,不为真就输出文件名和行号。

以上是关于MDK中使用MDK自带的ST固件函数,assert_param()在哪里定义的??的主要内容,如果未能解决你的问题,请参考以下文章

初识STM32--MDK5下使用V3.5库新建工程

实验二 20155335 实验报告 固件程序设计

ST-LINK V2 DIY笔记 之 固件更新方法

在MDK中 写基于STM32的程序是有 ErrorStatus HSEStartUpStatus; u8 count=0; 这么两个语句 啥意思

st link在MDK下载失败的解决方法

st link在MDK下载失败的解决方法