首先,我有睡眠模式禁用user_config.h中
const static sleep_state_t app_default_sleep_mode = arch_sleep_off;
并设置user_periph_setup.h
//使用SW流量控制而不是此处HW流量控制
#define cfg_uart_sw_flow_ctrl.
#undef cfg_uart_hw_flow_ctrl.
1.通过单击IDE工具栏顶部的红色D按钮在DA14580板上的SRAM中单击“顶部的红色D”按钮启动KEIL中的调试会话
2.代码运行到SystemInit。单击顶部或F5的运行图标
3.在手机上启动DSPS应用,扫描DA14580
4.应该找到设备。现在选择它以开始使用控制台选项卡或TX / RX选项卡向其发送文本
我想知道申请的流程。所以我在file user_sps_scheduler.c中绑定了一个休息点uart_tx_callback()。当文本进入终端之前,它会在这一行中断
6.发送文本。休息是击中的。
我的问题在这里。当我试图一次踩到代码时,它不起作用。程序计数器跳过难以预测,我无法真正遵循的地方。请帮忙!!!但是如果我要辞职的代码并只需单击Run(F5),我将获得Tera终端上显示的文本字符串。但是,此时,我的手机连接到达DA丢失了。
谢谢,
- khai
设备:
嗨kqtrinh,
当您在FW运行时发出断点且连接时,此断点将插入小延迟,因此小延迟将导致连接的设备断开连接,因为BLE协议需要同步,以便建立连接(随着小延迟,设备将在预定义的时间稍后发送连接事件,因此它不会得到主机的TX事件,因此将考虑连接丢失)。现在,如果只能通过插入断点可能发生这种情况,想象如果断点命中和ARM需要您需要进行干预以继续处理事件,则会发生什么。关于代码的跳转通常,BLE堆栈位于ROM代码中,意味着ROM代码中的调度程序会发送事件和应用程序(在案例DSP中),SDK处理它,因此您必须熟悉使用系统的处理程序和事件,如果这是你的意思。如果通过运行代码,您可以看到指定的函数不会通过代码顺序地通过代码顺序地,因为keil的优化。在Keil中,在“目标选项”中,然后在“C / C ++”选项卡中更改优化级别为-o0或-o1,这将改善事物,您将能够遵循代码。
谢谢mt_dialog.
谢谢你的提示回复。将Keil优化设置为0级修复了它。