使用Keil调试SPS目标设备

4个帖子/ 0新
最后一篇
理查德惊喜
离线
最后一次露面:3年10个月前
加入:2016-07-26 16:37
使用Keil调试SPS目标设备

亲爱的支持,
谢谢你到目前为止的帮助。我正在尝试调试SPS代码:DA1458x_DSPS \ v_5.150.2 \ Projects \ target_apps \ dsps \ sps_device与da14583degk。我能够连接电路板,下载代码,如果我然后断开连接,固件运行,我可以使用它。不幸的是,当我运行代码时,它始终在几秒钟0x00000000后停止调试器。
我想添加我的代码并调试这个项目,但我被困。你有什么建议吗?
FYI:我可以调试更简单的项目:SDK 5.0.3没有问题。
干杯,
富有的

设备:
理查德惊喜
离线
最后一次露面:3年10个月前
加入:2016-07-26 16:37
亲爱的支持,

亲爱的支持,
我禁用睡眠模式,现在我可以调试。这是有道理的。我通过设置app_default_sleep_mode = arch_sleep_off来完成此操作。现在到了这个问题的症结。我想要GPIO代表BLE是否连接。我以为打开和关闭LED将是一个好主意。如果睡眠模式关闭,这有效,如果睡眠模式亮起,则不会。

我将此添加到system_init();

/ **************************************************************************************** /
/ * LED GPIO配置* /
/ **************************************************************************************** /
#define led_port gpio_port_1.
#define led_pin gpio_pin_0.

这是gpio_reservations()
保留_GPIO(LED_DISPLAY,LED_PORT,LED_PIN,PID_GPIO);

这是set_pad_functions()

// init LED.
GPIO_CONFIGUREPIN(LED_PORT,LED_PIN,输出,PID_GPIO,FALSE);

这是user_on_connection()

gpio_setactive(LED_PORT,LED_PIN);

这是user_on_disconnect()

gpio_setinactive(LED_PORT,LED_PIN);

再次,就像我说的那样,如果我不去睡眠模式,LED就会很棒。如果我让申请睡眠睡眠,LED不会打开。有什么建议么?

非常感谢!
富有的

mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
嗨理查德,

嗨理查德,

580将在预定的连接或广告间隔内睡眠并唤醒,这意味着它会在这些事件之间睡觉,当580睡觉时,GPIO引脚被锁存,因此它们保持先前的状态,但是在唤醒Periph_init时()函数将重新运行并重新初始化GPIO,因此它们将采用该应用程序在Periph_init()函数中定义的状态。在no_sleep_mode中,只能调用periph_init(),因此您可以看到设备行为正常。作为对此的解决方案,您应该有一个变量,即将记住应用程序的状态(连接或不连接)或者可以直接检查Task_App的状态,并在Periph_init()中相应地将PIN配置为您的应用程序。

谢谢mt_dialog.

理查德惊喜
离线
最后一次露面:3年10个月前
加入:2016-07-26 16:37
谢谢回复。那

谢谢回复。这是一个很好的答案。我解决了我的问题,因为这个富有洞察力的信息。
干杯,
富有的

主题锁定