没有cfg_development_debug重新启动

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
15个帖子/ 0新
最后一篇
螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
没有cfg_development_debug重新启动

我有一个自定义板,我适用于我的应用程序的示例ble_app_all_in_one。我使用ARCH_EXT_SLEEP_OTP_COPY_ON。到目前为止,一切都适用,但是当我禁用cfg_development_debug时,设备一直在几秒钟后一直重新启动。

任何暗示可能正在发生的内容?

设备:
PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

此宏支持开发/调试模式。对于生产模式,必须禁用它。请在调试模式下定义此宏并运行代码。您的固件是否会崩溃?

谢谢,PM_DIALOG.

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
是的,当我定义这个宏时

是的,当我定义此宏时,所有操作都有效(无崩溃)。

我想为生产模式禁用它,但后来它在大约两秒钟后崩溃并重新启动 - 但只有当我将其刻录到闪存时,就不会在调试器中运行它时。

我在OTP中刻录了引导加载程序。

PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

那么,你打算燃烧OTP并从那里启动吗?启用CFG_Development_debug时,它允许将OTP镜像仿真到系统RAM。你能澄清你在OTP中刻录哪个引导加载程序吗?如果将睡眠配置更改为Arch_ext_sleep_on,您还在面临同一问题吗?

谢谢,PM_DIALOG.

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22

我们的HW制造商在OTP中刻录了一个引导加载程序,我们从那里启动,闪存中没有引导加载程序。不幸的是,我不知道它是哪个引导加载程序,但我怀疑它是漂亮的标准(但也许是一个较旧的SDK?)......

当我使用ble_app_all_in_one时,问题也会发生。我只添加了一个LED输出,看看FW何时运行,它何时重新启动...使用CFG_Development_debug启用所有工作效果很好。但是,当我禁用CFG_DEVELIMENT_DEBUG时,它每隔5秒重新启动一次。如果我通过BLE Quicky连接,在5秒之前,只要我保持连接,它就不会重启。一旦我断开连接,几秒钟后会重新启动。

这与ARCH_EXT_SLEEP_OTP_COPY_ON以及ARCH_EXT_SLEEP_ON ...

PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

你能分享你所做的修改吗?请尝试使用SDK的BLE_APP_BAREBONE示例而无需休眠模式,并将CFG_DEVELVELMMENT_DEBUG未定义。从Flash启动时,您是否有同样的问题?请尝试从System-RAM启动。

谢谢,PM_DIALOG.

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
我有唯一的修改

我对BLE_APP_ALL_IN_ONE项目的唯一修改以及BLE_APP_BAREBONE正在将这些行添加到user_periph_setup.c gpio_reservations()和set_pad_functions()以关闭电路板LED。Bootloader打开所有三个LED,因此我可以看到重新启动时LED的状态发生。

的#define GPIO_RED_LED_PORT GPIO_PORT_0的#define GPIO_RED_LED_PIN GPIO_PIN_2的#define GPIO_GREEN_LED_PORT GPIO_PORT_2的#define GPIO_GREEN_LED_PIN GPIO_PIN_5的#define GPIO_BLUE_LED_PORT GPIO_PORT_2的#define GPIO_BLUE_LED_PIN GPIO_PIN_9 RESERVE_GPIO(LED,GPIO_RED_LED_PORT,GPIO_RED_LED_PIN,PID_GPIO);保留_GPIO(LED,GPIO_GREEN_LED_PORT,GPIO_GREEN_LED_PIN,PID_GPIO);保留_GPIO(LED,GPIO_BLUE_LED_PORT,GPIO_BLUE_LED_PIN,PID_GPIO);gpio_configurepin(gpio_red_led_port,gpio_red_led_pin,输出,pid_gpio,true);GPIO_CONFIGUREPIN(GPIO_GREEN_LED_PORT,GPIO_GREEN_LED_PIN,输出,PID_GPIO,TRUE);gpio_configurepin(gpio_blue_led_port,gpio_blue_led_pin,输出,pid_gpio,true);
  • BLE_APP_BAREBONE在没有睡眠模式和CFG_DEVELOPMENT_DEBUG未定义的工作
  • BLE_APP_ALL_IN_ONE在没有睡眠模式和CFG_DEVELOPMENT_DEBUG未定义的工作
  • ble_app_all_in_one with Arch_ext_sleep_on和cfg_development_debug每5秒重定义重新启动
  • BLE_APP_ALL_IN_ONE使用ARCH_EXT_SLEEP_ON和CFG_DEVELVEMMENT_DEBUG定义的WORK
  • ble_app_all_in_one with ahrac_ext_sleep_on和cfg_development_debug未定义和exted bootloader每5秒重新启动

问题:

  • 如何强制系统从闪存启动系统?
  • 如何在不使用调试器的情况下从System-RAM引导?

PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

您有定制董事会,或者您正在使用我们的任何开发套件?由于两个项目都在活动模式下工作并具有CFG_Development_Debug未定义,因此问题可能与睡眠模式有关。您使用哪个时钟作为低功耗时钟?

  • 如果我有问题,我不确定,但在这种情况下,您应该使用SmartSnippets Toolbox的Flash程序员刻录SPI Flash。
  • 您可以通过Keil下载固件。

谢谢,PM_DIALOG.

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
是的,显然问题是

是的,显然问题与睡眠模式有关。

如上所述,在定制板上发生了问题。定制板有OTP刻录。

我还有一个基本的开发套件,有问题不会发生,但OTP也没有在那里烧毁。

我的OTP标题表示睡眠时钟源=外部水晶。HW文档还确认32K辅助器用作扩展睡眠模式的时钟。也许我在应用程序中没有正确配置?检查什么?

当然,我可以刻录SPI闪光灯,但是如果我将引导加载程序刻录到闪存,而OTP也刻录,它会在Flash中使用Bootloader吗?似乎没有,我今天也测试过。当我将引导加载程序刻录到闪存时,问题也会发生。

当我通过调试器下载通过keil的固件。使用调试器时不会发生问题。是否有任何方法可以通过keil下载固件,然后分离调试器?

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
好的,我已经追溯到了

好的,我已经将其追溯到Arch_Main.c中的以下两行:

setbits16(sys_ctrl_reg,dev_phase,1);保留_ram_blocks = ret_mode;

如果存在这些,就像定义了Developing_debug时,没有崩溃/重启。

PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

根据DA14585数据表,sys_ctrl_reg的dev_phase位字段设置开发阶段模式。如果该位与OTP_Copy位组合设置,则OTP DMA将使OTP镜像映射到系统RAM。没有实际写入RAM,但花费完全相同的时间就像镜像会发生一样。这是模拟行为,好像系统代码已经在OTP中,镜像醒来后发生,但(开发)代码仍然位于外部源中。如果该位设置为“0”和OTP_Copy ='1',则OTP DMA实际上将在唤醒时进行OTP镜像。

因此,在具有开发阶段模式时,代码在所有情况下都正确运行?

谢谢,PM_DIALOG.

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
是的,这就是我所说的

是的,这就是我上面所说的。是的,我已经阅读了数据表。

PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

谢谢你的迹象。

问候,pm_dialog

螺旋
离线
最后一次露面:9个月3周前
加入:2019-04-25 10:22
有关此问题的任何消息?你

有关此问题的任何消息?你认为我应该只在生产建设中启用这个标志吗?对我来说,这个问题尚未解决。这可能是一个最佳替代方法。

PM_DIALOG.
离线
最后一次露面:18小时13分钟前
职员
加入:2018-02-08 11:03
嗨螺旋,

嗨螺旋,

您是否在BLE_APP_ALL_IN_ONE项目中完成了任何其他修改?默认SDK在广告期间使用OTP副本使用扩展睡眠模式。请检查user_app_adv_start()。如果您有cfg_development_debug,我假设您应该刻录OTP。但是,请注意,OTP代表一个时间可编程,因此您无法多次擦除并重新编写OTP,但您只能将仍设置为0的位并将其转换为1。

谢谢,PM_DIALOG.