我正在寻求建立一个系统,其中DA14580主机应用程序使用bleapi,并通过SPI与外部MCU上的另一个应用程序通信,其中外部MCU是SPI主机。
在走这条路的过程中,我的工作是建立在proximity\reporter\u fe\u spi项目的基础上的。此模块包含SPI从机的代码,以及UM-B-013中概述的相关协议。然而,它是一个fe环境设置,而我正在寻找一个fh环境。
我创建了一个fh项目并包含了spi\u hci.c代码。但是,这会导致冲突,因为SPI\u处理程序符号是多重定义的。在通过代码挖掘我很肯定我需要这个符号是为了得到SPI中断。因此,我通过修改symdef文件解决了冲突。
然而,我担心我在这里走错了路,我想知道:
1在DA14580上同时拥有一个应用程序(fh)和一个外部MCU作为SPI主机的正确方法是什么?
2为了从ROM代码中获得对SPI接口的控制,我还需要采取其他一些步骤吗?
你好,巴里莱因霍德,
根据您的描述,您需要一个完整的托管应用程序(应用程序级代码也在DA14580中,位于可扩展堆栈旁边)。所以我建议你从记者的项目开始。如果您需要SPI从驱动程序,最好将SPI从代码从reporter\u fe\u SPI移植到reporter\u fh。
当做!
PY公司
好吧-那可能有点太高了,没什么帮助,让我再深入一点。
当使用fh方法作为基础时,rom代码仍然有中断控制器,我需要控制它们,因为它们将其交给我不想使用的代码(spihci)。例如,为了获得对CS行的控制,我在boot\u vector.s中定义了一个符号GPIO1\u处理程序。但是,这个处理程序会导致一个多定义符号,我可以通过修改sysdefs文件来解决这个问题。这允许我编译,但处理程序没有被调用——它似乎转到另一个符号$$Sub$$GPIO1\u处理程序。
还有,让Keil调试器打印堆栈变量(显然在范围内)的技巧。我已将优化级别设置为-O0,但局部变量仍然超出范围,无法使用。
我不熟悉这个符号,符号本身并不存在于项目的其余部分。什么是$$Sub$$符号?我能接手这个人吗?
你好,巴里。
我很想知道你是否最终让DA14580扮演了SPI的奴隶。
我刚刚成功地把它作为一个SPI主机传输,但没有运气阅读任何东西!=0作为SPI从机。
我试图找到演示项目“接近\记者*”,但没有运气。
你能给他们贴个链接吗?
谢谢你
嗨kobyfrèu mag
您可以在SDK3.0.10.1的\DA14580\u 581\u 583\u SDK\u 3.0.10\dk\u apps\keil\u projects\approx\u reporter中找到邻近报告器参考设计。
谢谢你的对话