ESP-IDF用了一段时间了,但是对其中一些定义的用法还是了解的不够深入。记录一下在项目中遇到的一些问题。
在编写蓝牙驱动时,我需要在蓝牙的读写事件处写回调函数完成作业,为避免与其他驱动耦合,且作业方便适配业务流程易于更改,决定在本驱动内使用弱函数。
根据以往经验,__weak写在函数前面,如在RT-thread中这样使用(stm32芯片):
但在ESP-IDF中,无论大小写均会报错:
我尝试搜索官方文件中是怎样使用的,只找到寥寥几个函数:
有点奇怪,尝试了一下,依旧报错
搞不出来放了一段时间,写其他驱动去了。今天再返回来看,想了想能不能不用弱定义的方法,想不到。。。这__weak是不用不行了。。。
在网上查了查,看到了weak的扩展关键字,__attribute__((weak)),试了一下不报错了!
又返回官方文件看了看,发现了别人有一行define。。。还是自己太粗心啦
why?
网上看到了一个博主的文章:
(12条消息) __weak 和 __attribute__((weak)) 关键字的使用___attribute__(weak)_子曰小玖的博客-CSDN博客(别人讲的很详细!)
原来是酱紫的嗷!!!
至此,这个小小小问题算是解决了,浅浅记录!