你好,
在我自己的硬件上,我正在使用UART2为串行引导程序和CLI。我的串行接口仅使用Tx和Rx定义,没有CTS行。要使它为CLI工作,我将CTS信号配置为带有HW_GPIO_MODE_INPUT_PULLDOWN的未连接I / O引脚。我的应用程序基于CSCP_Collector和HRP_Collector。我正在使用BTLE SDK 1.0.10-1072。
如果ble重置后,一切正常运行。但是在BLE断开或重置后BLE保持空闲后,TX线在一段时间后会下降。然后我无法使用UART2进行通信。
将睡眠模式从PM_Mode_extending_sleep切换到pm_mode_idle或pm_mode_active没有效果。
在评估板上,如果我将CLI配置为UART1,一切正常运行。
我想这个问题是由引导加载程序引起的。
我该如何解决这个问题?
非常感谢您提前帮助。
设备:
嗨Uniben,
我不太明白你想要做的事情,CLI(我想你的意思是CLI_Programmer)只是为了编程68倍,在重置设备时用FW刻录FW闪烁闪光灯后重新加载闪存中的FW。如果CLI和BLE项目完全无关紧要,您可以让我们知道您究竟要做什么。
仅通过UART1且不通过UART2靴子靴子。UART1是681在顺序引导中使用的端口,它通过ROM Booter定义,它是固定的。因此,您必须从UART1启动并下载UartBoot.bin文件(它用作辅助引导程序)。uartboot.bin文件从UART2上的CLI_Programmer接收命令(因为现在设备正在运行UartBoot.bin而不是ROM Booter,因此UartBoot.bin使用与不同的UART的相同引脚),因此uartboot.bin,重新配置设备从UART侦听UART到UART2的端口。在重置时在闪光灯中下载FW后,设备将加载位于闪存中的FW(以及在所有后续重置中)。如果您刚刚用自定义FW启动设备,例如,只需在Sysram中占用FW,重置后设备将只是执行ROM Booter,设备将在UART1上看通信而不是UART2,您将不得不再次下载uartboot.bin以切换端口。
谢谢mt_dialog.
你好,
抱歉不清楚的描述。我正在使用来自SDK的CLI和控制台,并且它们与Bootloader共享相同的UART。我的系统旨在仅使用一个UART来闪烁和有线通信。
非常感谢您的帮助。
嗨Uniben,
仍然无法得到你想做的事。您正在使用BLE项目中的UART交互以及设备断开UART挂起后的SOMEPOINT。我不确定我正在得到这个。请尽量更具体地对您想做的事。当您提及CLI时,我理解与BLE项目无关的CLI程序员及其仅用于编程设备。您还提到您使用的是控制台,那是什么控制台?在外围设备演示中使用的控制台?
谢谢mt_dialog.
你好,
使用CLI,我的意思是SDK附带的命令行界面。CLI被激活:
#define dg_configuse_cli 1
#define dg_configuse_console 1.
我使用CSCP_Collector示例项目启动了我的项目,由命令行界面(CLI)控制。
我的问题是,Bootloader(CLI程序员分开)和命令行界面(控制我的应用程序,类似于来自CSCP_Collector的示例)都使用相同的UART。任何程序,在SDK深度的某个位置,正在杀死UART,以便我无法访问我的命令行界面。
非常感谢您的帮助。
嗨Uniben.
我不认为你遇到的是一个引导加载程序问题,引导加载程序将被下载到68x中,并且在将FW下载到设备中后,CLI_Programmer获取命令将FW刻录到闪存中,重置后,引导加载程序Sysram被刚刚刻录到闪光灯中的应用程序删除。在子搜索中重置主引导程序将从Flash引导。引导程序和在设备中运行的应用程序之间没有碰撞,如果是这种情况,那么CSPC_Collector或HRP_Collector不会运行,它们都使用UART2。
谢谢mt_dialog.
谢谢。