你好,
在我自己的硬件上,我将UART2用于串行引导加载程序和CLI。我的串行接口只定义了TX和RX,没有CTS行。为了使它在CLI中工作,我使用HW_GPIO_MODE_INPUT_PULLDOWN将CTS信号配置为一个未连接的I /o引脚。我的应用程序基于cscp_collector和hrp_collector。我使用BTLE SDK 1.0.10-1072。
如果复位后BLE连接,一切工作正常。但在BLE断开后或如果BLE在复位后保持空闲,TX线将在一段时间后下降。那么我就不能再与UART2通信了。
将睡眠模式从pm_mode_extended_sleep切换为pm_mode_idle或pm_mode_active没有影响。
如果我将CLI配置为UART1,那么在评估板上一切工作正常。
我认为问题是由引导加载程序引起的。
我该如何解决这个问题?
提前感谢你的帮助。
设备:
嗨uniben,
我不太明白你想做什么,cli(我想你的意思是cli_programmer)只是为编程的68x后,你已经烧毁了flash与fw重置设备重新加载的fw,在flash中。你能告诉我们你到底在努力做什么吗,因为cli和BLE项目是非常不相关的。
设备仅通过UART1引导,而不是通过UART2。UART1是681在引导过程中使用的端口,它是通过ROM引导器定义的,并且是固定的。因此,您必须从UART1引导并下载uartboot.bin文件(作为辅助引导加载程序)。uartboot.bin文件通过UART2接收来自cli_programmer的命令(因为现在设备正在运行uartboot.bin而不是ROM booter,所以uartboot.bin为不同的UART使用相同的引脚),所以uartboot.bin,重新配置设备从UART监听到UART2的端口。下载flash中的fw重置后,设备会加载flash中的fw(以及后续所有重置时的fw)。如果你刚刚启动设备与一个定制的弗兰克-威廉姆斯,例如,只是uplaoded sysram弗兰克-威廉姆斯,重置后设备只会执行ROM橄榄球员和设备会在UART1而不是UART2沟通,你需要重新下载uartboot.bin为了开关端口。
由于MT_dialog
你好,
很抱歉描述不清楚。我使用的命令行和控制台从sdk,他们是共享相同的uart作为引导加载程序。我的系统被设计为只使用一个uart用于闪烁和有线通信。
非常感谢您的帮助。
嗨uniben,
仍然无法得到你想做的事。您正在使用BLE项目中的UART交互以及设备断开UART挂起后的SOMEPOINT。我不确定我正在得到这个。请尽量更具体地对您想做的事。当您提及CLI时,我理解与BLE项目无关的CLI程序员及其仅用于编程设备。您还提到您使用的是控制台,那是什么控制台?在外围设备演示中使用的控制台?
由于MT_dialog
你好,
使用CLI,我的意思是SDK附带的命令行界面。CLI被激活:
#定义dg_configUSE_CLI 1
#定义dg_configUSE_CONSOLE 1
我用cscp_collector示例项目启动了我的项目,该项目由命令行接口(cli)控制。
我的问题是,引导加载程序(由cli程序员提供服务)和命令行接口(控制我的应用程序,类似于来自cscp_collector的示例)都使用相同的uart。任何过程,在sdk深处的某个地方,正在杀死uart,因此我再也不能访问我的命令行界面。
非常感谢您的帮助。
嗨uniben
我不认为你正在经历的是一个引导装载程序问题,引导装载程序下载到68 x和弗兰克-威廉姆斯后下载到设备和cli_programmer弗兰克-威廉姆斯得到命令烧到flash,复位后,sysram引导装载程序是被您刚刚烧到flash的应用程序。在随后的重置中,主引导加载程序将从flash启动。引导加载程序和在设备中运行的应用程序之间没有冲突,如果是这种情况,那么cspc_collector或hrp_collector将不会操作,它们都使用UART2。
由于MT_dialog
谢谢。