我正在寻求构建一个系统,其中DA14580承载一个应用程序,使用BLE API,并通过SPI与外部MCU上的另一个应用程序通信,其中外部MCU是SPI主。
在这条道路上,我的工作基于邻近的\reporter_fe_spi项目。该模块包含用于SPI从站的代码,以及在UM-B-013中概述的相关协议。然而,它是一个fe环境的设置,而我正在寻找一个fh环境。
我创建了一个fh项目,包括spi_hci.c代码。但是,这会导致冲突,因为SPI_Handler符号是多重定义的。在挖掘完代码后,我非常确定我需要这个符号是为了得到SPI中断。因此,我通过修改symdef文件解决了这个冲突。
然而,我担心我走错了路,我想知道:
1.在DA14580上同时使用外部MCU作为SPI主处理器的应用程序(fh)的正确方法是什么?
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 slave。
我刚刚使它成功地作为SPI主服务器传输,但没有运气读取任何东西!=0作为SPI从服务器。
我试图找到演示项目“接近\记者*”,但没有运气。
你能粘贴一个链接到它们上面吗?
谢谢你!
嗨kobyfr_mag
您可以在SDK3.0.10.1中的\DA14580_581_583_SDK_3.0.10\dk_apps\keil_projects\proximity\prox_reporter中找到proximity报告器参考设计。
由于MT_dialog