How to locate hardware interrupt errors, specifically caused by what?

Learn MoreFAQsTutorials

7 posts / 0 new
Last post
abc1724
Offline
Last seen:3 months 5 days ago
Joined:2019-09-20 12:16
How to locate hardware interrupt errors, specifically caused by what?

How to locate hardware interrupt errors, specifically caused by what?

The program stays here:

if ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP)
__asm("BKPT #0\n");

Attachment:
Device:
PM_Dialog
Offline
Last seen:1 hour 36 min ago
Staff
Joined:2018-02-08 11:03
Hi abc1724,

Hi abc1724,

Please read教程8:调试methodstutorial form our support website in order to debug your code. You should follow the same procedure as “Hardfault” analysis. Do you have the WDOG enable or disabled? Please check CFG_WDOG macro in da1458x_stack_config.h. If the WDOG expires, an NMI will be fired up.

Thanks, PM_Dialog

abc1724
Offline
Last seen:3 months 5 days ago
Joined:2019-09-20 12:16
你好,谢谢你的回答

你好,谢谢你的回答

Located in SDK5.0.4\DA1458x_SDK\5.0.4\projects\target_apps\ble_examples\ble_app_profile Avoiding Long Value Characteristic Declaration has not been changed elsewhere. When debugging, it always enters the interrupt. As shown below PDF

Attachment:
abc1724
Offline
Last seen:3 months 5 days ago
Joined:2019-09-20 12:16
Thank you, according to your

Thank you, according to your suggestion, the problem has been solved

PM_Dialog
Offline
Last seen:1 hour 36 min ago
Staff
Joined:2018-02-08 11:03
Hi abc1724,

Hi abc1724,

In order to remove the “Long Value Characteristic” you should do the following modifications in the ble_app_profile example of the SDK.

1. In user_custs1_def.c file remove the follow code lines:

a. static uint8_t CUST1_LONG_VALUE_UUID_128[ATT_UUID_128_LEN] = DEF_CUST1_LONG_VALUE_UUID_128;
b. static struct att_char128_desc custs1_long_value_char = {ATT_CHAR_PROP_RD | ATT_CHAR_PROP_WR | ATT_CHAR_PROP_NTF, {0, 0}, DEF_CUST1_LONG_VALUE_UUID_128};
c. // Long Value Characteristic Declaration [CUST1_IDX_LONG_VALUE_CHAR] = {(uint8_t*)&att_decl_char, ATT_UUID_16_LEN, PERM(RD, ENABLE), sizeof(custs1_long_value_char), sizeof(custs1_long_value_char), (uint8_t*)&custs1_long_value_char}, // Long Value Characteristic Value [CUST1_IDX_LONG_VALUE_VAL] = {CUST1_LONG_VALUE_UUID_128, ATT_UUID_128_LEN, PERM(RD, ENABLE) | PERM(WR, ENABLE) | PERM(NTF, ENABLE), DEF_CUST1_LONG_VALUE_CHAR_LEN, 0, NULL}, // Long Value Client Characteristic Configuration Descriptor [CUST1_IDX_LONG_VALUE_NTF_CFG] = {(uint8_t*)&att_decl_cfg, ATT_UUID_16_LEN, PERM(RD, ENABLE) | PERM(WR, ENABLE), sizeof(uint16_t), 0, NULL}, // Long Value Characteristic User Description [CUST1_IDX_LONG_VALUE_USER_DESC] = {(uint8_t*)&att_decl_user_desc, ATT_UUID_16_LEN, PERM(RD, ENABLE), sizeof(CUST1_LONG_VALUE_CHAR_USER_DESC) - 1, sizeof(CUST1_LONG_VALUE_CHAR_USER_DESC) - 1, CUST1_LONG_VALUE_CHAR_USER_DESC},

In user_custs1_def.h heder file remove the follow code lines:

CUST1_IDX_LONG_VALUE_CHAR, CUST1_IDX_LONG_VALUE_VAL, CUST1_IDX_LONG_VALUE_NTF_CFG, CUST1_IDX_LONG_VALUE_USER_DESC,

If you check in this header file, the custs1 database array has lenght CUST1_IDX_NB which is equal to above enumeration. To do so, you should remove the "Long Value Characteristic” from this enumeration as well. Please test my suggetion and let me know.

Thanks, PM_Dialog

abc1724
Offline
Last seen:3 months 5 days ago
Joined:2019-09-20 12:16
Thank you, according to your

Thank you, according to your suggestion, the problem has been solved

PM_Dialog
Offline
Last seen:1 hour 36 min ago
Staff
Joined:2018-02-08 11:03
Hi abc1724,

Hi abc1724,

Glad that you are able to remove the "Long Value Characteristic" and thanks for accepting my answer.

If you have any other issue, please create a new forum thread.

Please take a look into our new device:

//www.wsdof.com/products/connectivity/bluetooth-low-energy/products/da14531

Thanks, PM_Dialog