一、描述你遇到的问题
我通过移植星闪1V8的例程,服务端在初始化时会导致系统崩溃(osMain),根据报错地址信息在锁定在sle绑定read和write回调函数地方
二、你具体做的所有步骤结果截图
static void ssaps_server_read_request_cbk(uint8_t server_id, uint16_t conn_id, ssaps_req_read_cb_t *read_cb_para,
errcode_t status)
{
osal_printk("%s ssaps read request cbk callback server_id:%x, conn_id:%x, handle:%x, status:%x\r\n", SLE_SERVER_LOG, server_id, conn_id, read_cb_para->handle, status);
}
static void ssaps_server_write_request_cbk(uint8_t server_id, uint16_t conn_id, ssaps_req_write_cb_t *write_cb_para,
errcode_t status)
{
osal_printk("%s ssaps write request callback cbk server_id:%x, conn_id:%x, handle:%x, status:%x\r\n", SLE_SERVER_LOG, server_id, conn_id, write_cb_para->handle, status);
if ((write_cb_para->length > 0))
{
osMessageQueuePut(mid_ServerRecvMsgQueue, write_cb_para->value, 0U, 0U);
}
}
在output\ws63\acore\ws63-liteos-app\ws63-liteos-app.asm中定位导函数:
ret = sle_server_init(ssaps_server_read_request_cbk, ssaps_server_write_request_cbk);
if(ret != 0)
{
osal_printk("[%s] SLE server start failed.\r\n", __func__);
}
函数如下:
errcode_t sle_server_init(ssaps_read_request_callback ssaps_read_callback, ssaps_write_request_callback ssaps_write_callback)
{
errcode_t ret;
/* 使能SLE */
if (enable_sle() != ERRCODE_SUCC) {
osal_printk("[SLE Server] sle enbale fail !\r\n");
return -1;
}
ret = sle_announce_register_cbks();
if (ret != ERRCODE_SLE_SUCCESS) {
osal_printk("%s sle_server_init,sle_announce_register_cbks fail :%x\r\n", SLE_SERVER_LOG, ret);
return ret;
}
ret = sle_conn_register_cbks();
if (ret != ERRCODE_SLE_SUCCESS) {
osal_printk("%s sle_server_init,sle_conn_register_cbks fail :%x\r\n", SLE_SERVER_LOG, ret);
return ret;
}
ret = sle_ssaps_register_cbks(ssaps_read_callback, ssaps_write_callback);
if (ret != ERRCODE_SLE_SUCCESS) {
osal_printk("%s sle_server_init,sle_ssaps_register_cbks fail :%x\r\n", SLE_SERVER_LOG, ret);
return ret;
}
ret = sle_server_add();
if (ret != ERRCODE_SLE_SUCCESS) {
osal_printk("%s sle_server_init,sle_server_add fail :%x\r\n", SLE_SERVER_LOG, ret);
return ret;
}
ret = sle_server_adv_init();
if (ret != ERRCODE_SLE_SUCCESS) {
osal_printk("%s sle_server_init,sle_server_adv_init fail :%x\r\n", SLE_SERVER_LOG, ret);
return ret;
}
osal_printk("%s init ok\r\n", SLE_SERVER_LOG);
return ERRCODE_SLE_SUCCESS;
}
三、开发板串口所有日志
`
/**** Sle test init ****/
[sle_device_init] Succeed to create ServerSendMsgQueue!
[sle_device_init] Succeed to create ServerRecvMsgQueue!
Load access fault
Memory map region access fault
Name TaskEntryAddr TID Priority Status StackSize WaterLine StackPoint TopOfStack SemID EventMask CPUP CPUP 10.0s CPUP 1.0s
---- ------------- --- -------- -------- --------- ---------- ---------- ---------- ---------- --------- ---- ---------- ----------
CpupGuardCreator 0x00262ce4 0x0 0 Running 0x400 0x114 0x00a2dd20 0x00a2da30 0xffffffff 0x0 0.0 0.0 0.0
Swt_Task 0x00a0cb00 0x1 0 Ready 0x800 0x114 0x00a2e530 0x00a2de40 0xffffffff 0x0 0.0 0.0 0.0
IdleCore000 0x00a0c212 0x2 31 Ready 0x400 0x114 0x00a2e950 0x00a2e660 0xffffffff 0x0 0.0 0.0 0.0
dfx_msg 0x00250682 0x3 5 Ready 0x800 0x114 0x00a31470 0x00a30d80 0xffffffff 0x0 0.0 0.0 0.0
app 0x00253dfc 0x4 27 Ready 0x800 0x114 0x00a31e90 0x00a317a0 0xffffffff 0x0 0.0 0.0 0.0
log 0x003611c0 0x5 25 Ready 0x800 0x114 0x00a326b0 0x00a31fc0 0xffffffff 0x0 0.0 0.0 0.0
bt 0x0014d368 0x6 1 Ready 0xe00 0x114 0x00a334d0 0x00a327e0 0xffffffff 0x0 0.0 0.0 0.0
bt_sdk 0x00315b4a 0x7 12 Ready 0x800 0x114 0x00a33cf0 0x00a33600 0xffffffff 0x0 0.0 0.0 0.0
bth_sdk 0x0032a1ee 0x8 13 Ready 0x800 0x114 0x00a34500 0x00a33e10 0xffffffff 0x0 0.0 0.0 0.0
recvBthDataTask 0x0032dd90 0x9 10 Ready 0x800 0x114 0x00a34d20 0x00a34630 0xffffffff 0x0 0.0 0.0 0.0
bt_service 0x00314734 0xa 12 Ready 0x1000 0x114 0x00a35d40 0x00a34e50 0xffffffff 0x0 0.0 0.0 0.0
at 0x00247746 0xb 1 Ready 0x2000 0x114 0x00a37d60 0x00a35e70 0xffffffff 0x0 0.0 0.0 0.0
wifi 0x0029d7dc 0xc 25 Ready 0x2000 0x114 0x00a39d70 0x00a37e80 0xffffffff 0x0 0.0 0.0 0.0
radar_driver 0x0034fd44 0xd 23 Ready 0x800 0x114 0x00a3a590 0x00a39ea0 0xffffffff 0x0 0.0 0.0 0.0
radar_feature 0x00350768 0xe 24 Ready 0x2600 0x114 0x00a3cbb0 0x00a3a6c0 0xffffffff 0x0 0.0 0.0 0.0
APP|exception:5
task:osMain
thrdPid:0xffffffff
type:0x5
nestCnt:1
phase:Init
ccause:0x1
mcause:0x5
mtval:0x0
gp:0xa11b04
mstatus:0x80007800
mepc:0xa0c176
ra:0xa0d39c
sp:0xa0bd10
tp:0x0
t0:0xa0be1c
t1:0x8028ed1f
t2:0x51f842a
s0:0xa0be30
s1:0xa13bb4
a0:0xa13914
a1:0xa13bb4
a2:0x0
a3:0xa2da14
a4:0x0
a5:0x0
a6:0x0
a7:0xea5fe0ef
s2:0xa13914
s3:0xa11000
s4:0xffffffff
s5:0x80006000
s6:0x3
s7:0x0
s8:0x0
s9:0x0
s10:0x0
s11:0x0
t3:0x80208522
t4:0xebbff06f
t5:0x842a8028
t6:0x2a0c051f
APP|cxcptsc = 0x1
APP|backtrace begin
traceback 0 -- ra = 0xa0d39c fp = 0xa0be50
traceback 1 -- ra = 0x252732 fp = 0xa0be70
traceback 2 -- ra = 0x3158c0 fp = 0xa2ce08
APP|backtrace end
APP|stack txt info begin
APP|traceback 1 -- sp addr= 0xa0bd14 sp content= 0xa0c176
APP|traceback 31 -- sp addr= 0xa0bd8c sp content= 0xa0d39c
APP|traceback 71 -- sp addr= 0xa0be2c sp content= 0xa0d39c
APP|traceback 79 -- sp addr= 0xa0be4c sp content= 0x252732
APP|traceback 84 -- sp addr= 0xa0be60 sp content= 0x34bbaa
APP|traceback 87 -- sp addr= 0xa0be6c sp content= 0x3158c0
APP|traceback 88 -- sp addr= 0xa0be70 sp content= 0x34bbaa
APP|traceback 91 -- sp addr= 0xa0be7c sp content= 0x3335f6
APP|traceback 92 -- sp addr= 0xa0be80 sp content= 0x34bbaa
APP|traceback 93 -- sp addr= 0xa0be84 sp content= 0x34bb0c
APP|traceback 94 -- sp addr= 0xa0be88 sp content= 0x34bd64
APP|traceback 95 -- sp addr= 0xa0be8c sp content= 0x3419ba
APP|traceback 96 -- sp addr= 0xa0be90 sp content= 0x34bbaa
APP|traceback 97 -- sp addr= 0xa0be94 sp content= 0x34bb0c
APP|traceback 98 -- sp addr= 0xa0be98 sp content= 0x34bd64
APP|traceback 99 -- sp addr= 0xa0be9c sp content= 0x33eb0c
APP|traceback 101 -- sp addr= 0xa0bea4 sp content= 0x34bb0c
APP|traceback 102 -- sp addr= 0xa0bea8 sp content= 0x34bd64
APP|traceback 103 -- sp addr= 0xa0beac sp content= 0x34c266
APP|traceback 117 -- sp addr= 0xa0bee4 sp content= 0x254322
APP|traceback 118 -- sp addr= 0xa0bee8 sp content= 0x34bd64
APP|traceback 119 -- sp addr= 0xa0beec sp content= 0x25cdc2
APP|traceback 127 -- sp addr= 0xa0bf0c sp content= 0x34bc46
APP|stack txt info end
`