Suota上传后不起作用

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
4个帖子 / 0新
最后一篇文章
阿拉纳
离线
最后一次露面:4个月2周前
加入:2017-05-27 02:11
Suota上传后不起作用

你好对话,
我正在使用对话框SUOTA应用程序尝试将我们软件的新版本上传到空中。我能够将新软件下载到芯片上,并且该应用程序允许我重新启动设备,但是在重新启动我的代码未运行后。我通过将代码直接通过UART上传到芯片来测试该代码,并且在无需BLE_SUOTA_LOADER.IMG的地址0上正常工作,但是在将DG_Configimage_flash_offset更改为0x20000并尝试使用Suota应用程序上传后,它就无法正常工作。这是我正在采取的步骤:

1. cli_programmer.exe -i 57600 -s 115200 com3 chip_erase_qspi
2. cli_programmer.exe -i 57600 -s 115200 com3 write_qspi 0x0 e:/ble_suota_loader_2mb.img
3.我构建自定义软件,然后输出到软件_0.1.0_debug_qspi.bin
4.我运行mkimage.bat Software_0.1.0_debug_qspi.bin Software.img
5.我将Software.img上传到手机,然后将其放入Suota文件夹中。
6.我使用对话框SUOTA应用程序连接到蓝牙与芯片
7.我选择软件.img文件并将其上传到芯片。它似乎工作起来,我按下按钮重新启动芯片。
8.芯片不再宣传任何内容。没有任何形式的输出。

我会做什么会导致这种行为?我可以采取任何措施来诊断问题吗?这是我正在使用的配置设置:


/**
\ addtogroup bsp
\ {
\ addTogroup配置
\ {
\ addTogroup自定义
\ {
*/

/**
*******************************************************************************************************
*
* @file custom_config_qspi_suota.h
*
* @Brief董事会支持包。缓存QSPI模式的用户配置文件。
*
*版权(C)2015-2017对话框半导体。yabo国际娱乐
*该计算机程序包括机密,专有信息
*对话框半yabo国际娱乐导体。版权所有。
*
*******************************************************************************************************
*/

#ifndef custy_config_qspi_suota_h_
#define custic_config_qspi_suota_h_

#include“ bsp_definitions.h”

#ifdef调试
#define config_retarget
#define config_retarget_uart hw_uart1

#define dg_configtrack_os_heap(1)
#万一

#define config_lsm6ds3(1)
#define config_mpl3115a2(1)
#define config_pcf85263a(1)
#Define DG_ConfigPower_1V8P(1)
#define dg_configtestmode_measure_sleep_current(0)
#Define DG_Configi2C_Adapter(1)
#define dg_configbattery_adapter(1)
#define dg_configuse_hw_tempsens(1)
#define dg_configuse_hw_gpio(1)
#define dg_configuse_hw_timer2(1)
#Define DG_Configuse_HW_I2C(1)
#define dg_configuse_hw_gpadc(1)
#define dg_configuse_hw_uart(1)
#define dg_configuart_adapter(1)
#define dg_configuse_usb_enumeration(1)
#Define DG_Configcharing_cc_timeout(360 * 60 * 100)
#define DG_Configcharing_cv_timeout(720 * 60 * 100)
#define DG_Configusb_charger_polling_interval(60 * 100)// 1分钟(单位:0.01S)
#define DG_Configbattery_replenish_gap(8)// 0.01V

/////////////////////

#define config_use_ble
#undef config_use_ftdf

#Define DG_Configuse_LP_CLK LP_CLK_RCX
#Define DG_Configexec_mode mode_is_cached
#Define DG_Configcode_location non_volatile_is_flash
#define DG_Configext_crystal_freq ext_crystal_is_16m

#define dg_configimage_setup development_mode
#define dg_configemulate_otp_copy(0)

#define DG_Configimage_flash_offset(0x20000)
#define dg_configsuota_support(1)

#define DG_Configuser_can_use_timer1(0)

#define dg_configoptimal_retram(1)

#if(dg_configoptimal_retram == 1)
#if(dg_configblack_orca_ic_rev == black_orca_ic_rev_a)
#Define DG_Configmem_retention_mode(0x1b)
#Define DG_Configshuffling_mode(0x0)
#别的
#Define DG_Configmem_retention_mode(0x07)
#Define DG_Configshuffling_mode(0x0)
#万一
#万一

#define dg_configuse_wdog(1)

#define DG_Configflash_connected_to(flash_connected_to_1v8)
#Define DG_Configflash_power_down(0)

#Define DG_ConfigPower_1V8_Active(1)
#Define DG_ConfigPower_1v8_sleep(1)

#Define DG_Configbattery_type(battery_type_custom)
#define DG_Configbattery_charge_voltage 0xa // 4.2V
#define DG_Configbattery_type_custom_adc_voltage(3440)
#Define DG_Configbattery_low_level(2496)// 3V
#Define DG_ConfigPrecharging_threshold(2462)// 3.006V
#Define DG_Configcharging_threshold(2498)// 3.05V
#define DG_Configbattery_charge_current 8 // 180mA(请参阅lib/sdk/bsp/syse_man/sys_man/sys_charger.c:115)
#define DG_Configbattery_precharge_current 3 // 45ma
#define DG_Configbattery_charge_ntc 1 //禁用
#Define DG_ConfigPrecharging_Timeout(60 * 60 * 100)// n x 10msec

#define dg_configuse_soc 0
/ *取消点击以下行以启用收费调试或绩效测试 */
//#定义debug_soc
#如果定义(debug_soc)
#define config_retarget
#万一

// #define dg_configuse_usb 1
#define dg_configuse_usb_charger 1
#Define DG_Configallow_charging_not_enum 1
#Define DG_Configuse_NOT_ENUM_CHARGING_TIMEOUT 0

// #define DG_Configuse_prodk(1)

#define dg_configuse_sw_cursor(1)

#define DG_Configcachable_qspi_area_len(nvms_param_part_start -memory_qspif_base)

/**************************************************************************************************************************************************************** \
*内存特定的配置
*/
#define DG_ConfigqSpi_cached_optimal_retram_0_size_ae(64 * 1024)
#define DG_ConfigqSpi_cached_ram_size_ae(32 * 1024)
#define DG_ConfigqSpi_cached_retram_0_size_ae(96 * 1024)

/**************************************************************************************************************************************************************** \
*外围特定配置
*/
#Define DG_Configflash_adapter 1
#Define DG_Confignvms_adapter 1
#define dg_confignvms_ves 1
#Define DG_ConfignvParam_adapter 1
#Define DG_ConfiggPadc_Adapter 1

#define defaultble_att_db_configuration(0x10)//带有“外围优先连接参数”
#define defaultble_ppcp_interval_min(ble_conn_interval_from_ms(500))// 500 ms
#define defaultble_ppcp_interval_max(ble_conn_interval_from_ms(750))// 750 ms
#define defaultble_ppcp_slave_latency(0)// 0事件
#define defaultble_ppcp_sup_timeout(ble_supervision_tmo_from_ms(6000))// 6000 ms

#define ble_max_misses_lowered(3)
#define ble_max_delays_lowered(3)

/ *使用BLE事件的动态列表,而不是Freertos队列 */
#define ble_mgr_use_evt_list(1)

/*
* SUOTA加载器配置:
* - 仅通过Gatt启用Suota,将suota_version设置为任何版本> = suota_version_1_1
*并留下suota_psm未定义。
* - 要通过Gatt和L2CAP COC启用Suota,将Suota_version设置为任何版本> = suota_version_1_2
*并定义SUOTA_PSM以匹配所需的PSM。在这种情况下,中央设备
*可以根据两者的喜好使用两者。
*/
#define suota_version suota_version_1_3
#define suota_psm 0x81

#define use_partition_table_2mb_with_suota

/**************************************************************************************************************************************************************** \
*弗雷托斯特定配置
*/
#Define OS_FREERTOS / *定义以使用freertos * /

#if suota_psm
#define suota_heap_overhead(3200)
#别的
#define suota_heap_overhead(0)
#万一

#if(dg_configuse_soc)
#如果定义(debug_soc)
#ifndef Release_build
/ *调试SOC不应在发行版中使用 */
#define configTotal_heap_size(12900 + suota_heap_overhead) / *这是弗雷托斯总堆大小 * /
#别的
#Error“在L2CAP上进行的Debug SoC和Suota不能一起使用。
#万一
#别的
#define configTotal_heap_size(11100 + suota_heap_overhead) / *这是弗雷托斯总堆大小 * /
#万一
#别的
#define configTotal_heap_size(11000 + suota_heap_overhead) / *这是弗雷托斯总堆大小 * /
#万一

/**************************************************************************************************************************************************************** \
* BLE设备配置
*/
#define dg_configble_central(0)
#define dg_configble_gatt_client(0)
#define dg_configble_observer(0)
#define dg_configble_broadcaster(0)
#ifndef suota_psm
#define dg_configble_l2cap_coc(0)
#万一

/ *包括BSP默认值 */
#include“ bsp_defaults.h”
/ *包括内存布局 */
#include“ bsp_memory_layout.h”
#endif / * custom_config_qspi_suota_h_ * /

/**
\}
\}
\}
*/

设备:
qinjiny_dialog
离线
最后一次露面:1个月6小时前
职员
加入:2016-11-01 05:47
嗨,阿拉纳,

嗨,阿拉纳,

为了诊断问题,我建议您首先尝试使用预配置的Suota构建基于未接触的示例(例如PXP记者)执行SUOTA更新,请查看它是否有效,只是确保您是否正确地完成了所有操作。如果没有,请参阅《软件开发人员指南》(UM-B-056)的第9章,以逐步验证您的操作。

然后,要在您的自定义项目上实现它,请参阅同一文档的第10.2章,该章节显示了一个很好的示例,可以在现有项目上启用Suota。希望这对您的问题有帮助。

br

Qinjin Yang

阿拉纳
离线
最后一次露面:4个月2周前
加入:2017-05-27 02:11
对于其他遇到的人

对于任何遇到此问题的人来说

我们认为,由于某种原因,当它将启动转移到我们的固件上时,它可以使1V8P产生一条潮流,从而导致铁轨浸入并进入棕色模式。为了解决此问题,我们将#Define DG_ConfigPower_1V8P(1)的配置从我们的固件移到了引导加载程序,现在一切似乎都可以正常工作。

pm_dialog
离线
最后一次露面:4个月2周前
职员
加入:2018-02-08 11:03
嗨,阿拉纳,

嗨,阿拉纳,

很高兴您弄清楚了自己的问题,并感谢您的指示。

谢谢,pm_dialog