我正在寻求构建一个系统,其中DA14580主机一个应用程序,使用BLE API,并通过SPI与外部MCU上的另一个应用程序通信,其中外部MCU是SPI主。
在这条道路上,我的工作基于proximity\reporter_fe_spi项目。该模块包含SPI从服务器的代码,以及UM-B-013中概述的相关协议。然而,它是一个fe环境的设置,而我正在寻找一个fh环境。
我创建了一个fh项目,并包含了spi_hci.c代码。但是,这将导致冲突,因为SPI_Handler符号是乘法定义的。在挖掘了代码之后,我非常确定我需要这个符号是为了得到SPI中断。因此,我通过修改symdef文件解决了冲突。
然而,我担心我在这里走错了路,我想知道:
1.在DA14580上使用一个应用程序(fh),同时使用一个外部MCU作为SPI主处理器,正确的方法是什么?
2.是否有一些其他步骤,我将需要采取,以便从ROM代码控制SPI接口?

嗨BarryReinhold,
根据您的描述,您需要一个完整的托管应用程序(应用程序级代码也在DA14580中,在BLE堆栈之外)。所以我建议你从reporter_fh项目开始。如果你需要SPI从驱动,你最好端口SPI从代码从reporter_fe_spi到reporter_fh。
的问候!
PY
好的-这可能有点太高了,不太有用,让我挖深一点。
当使用fh方法作为一个基础,rom代码仍然有中断控制器,我需要采取的控制,因为他们把它交给代码(spi hci),我不想使用。例如,为了获得对CS行的控制,我在boot_vector.s中定义了符号GPIO1_Handler的处理程序。但是,这个处理程序会导致一个多重定义的符号,我通过修改sysdefs文件来解决这个问题。这允许我编译,但处理程序没有被调用——它似乎去了一个不同的符号$$Sub$$GPIO1_handler。
另外,让Keil调试器打印堆栈变量(显然在作用域内)有诀窍吗?我已经将优化级别设置为-O0,但是局部变量仍然超出了作用域,不能使用。
我不熟悉这个符号,符号本身在项目的其余部分中也不存在。什么是$$Sub$$符号?我能接手这个联络人吗?
你好巴里。
我非常想知道如果你最终设法得到DA14580作为一个SPI奴隶。
我刚刚成功地将它作为SPI主节点进行传输,但没有幸运地读取任何内容!=0作为SPI从节点。
我试图找到演示项目“接近记者*”,但没有运气。
你能粘贴一个链接到他们吗?
谢谢你!
嗨kobyfr_mag
你可以在SDK3.0.10.1的\ da14580_581_583_sdk_name .0.10\dk_apps\keil_projects\proximity\prox_reporter中找到接近报告引用设计。
由于MT_dialog