你好,
试图在SmartSnippets Studio (v2.0.7.1335)中编译一个项目,克隆的项目是dk_apps/features/ble_peripheral。
所有的工作都很好,但在我的一个文件中,我有一个声明[dev = ad_spi_open(MYNAME)]
编译器报错一个未定义的错误引用'MYNAME'
该项目包含一个包含文件my_platform_devices.h,其中有这样的语句:
SPI_BUS (SPI1)
Spi_slave_device (spi1, myname, hw_gpio_port_3, hw_gpio_pin_2, hw_spi_word_8bit,
Hw_spi_pol_low, hw_spi_pha_mode_0, hw_spi_freq_div_8,0);
SPI_BUS_END
如果我将鼠标悬停在c文件中的语句上,我甚至可以在include文件中看到定义。
你有什么建议吗?
SDK = DA1468x_DA15xxx_SDK_1.0.14.1081
谢谢。
设备:
嗨Myken,
您是否像下面这样创建了一个spi_device对象?
sp_device = ad_sp_open (MYNAME);
请试试这个,让我知道。
同时,我强烈建议你去看一看SPI适配器的概念教程来自我们的支持门户。
谢谢,PM_Dialog
是的,我做了:
第一部分忘记抄了。
基本上软件是工作和运行,那是我编译和链接它使用普通的makefiles和测试它(工作正常)。
现在我尝试着让同样的项目在SmartSnippets Studio中运行。除了这部分,其他都很好。
所以smarnippets Studio的项目设置可能有问题。
如果我这样做(在my_platform_devices.h中):
我得到一个错误编译文件(my_spi_file.c)与spi_device dev = ad_spi_open(MYNAME);
错误:'MYNAME'未声明(第一次在这个函数中使用)
如果我把它改成:
我得到的不是编译错误,而是链接错误
my_spi_file。o:在函数'my_function':
my_spi_file.c:xxx:未定义的MYNAME引用
我可以看到sdk/adapters/scr/ad_spi.c文件被编译(有.o和.d文件)
我包含了ad_spi.h文件。
如果我打开my_platform_devices.h文件,我在"outline"标签中看到MYNAME: const void* const,我不知道这是否意味着什么。
我的代码看起来和"5.代码概述从你参考的教程(MYNAME iso ECHO_LOOP)。
编译/链接顺序有问题??忘记打勾了?
谢谢。
嗨Myken,
谢谢你的建议。让我检查一下,试着复制你的问题,我会尽快给你答复。
谢谢,PM_Dialog
没关系,只是(3分钟前)找到了解决方案。
结果,我的platform_devices.h文件不在我(克隆的)项目的config子目录中。对于makefile来说,这并不重要,但在SmartSnippets中显然很重要。
嗨Myken,
很高兴你把问题解决了,谢谢你的暗示。
问候,PM_Dialog