esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
偶尔会出现这个错误,是什么原因导致的呢?
- Attachments
-
- 捕获.PNG (35.13 KiB) Viewed 10587 times
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
您好,请问您那里是如何复现的呢? 有没有什么规律?
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
wifi和蓝牙都已经开启,有一个语音芯片是一线模式工作模式,通信之前,调用taskENTER_CRITICAL(mux)禁用中断的时候,偶尔会出现这个问题呢。
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
/*** voice.c **/
static portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
void ja_enter_critical(void)
{
taskENTER_CRITICAL(&mux);
}
void ja_exit_critical(void)
{
taskEXIT_CRITICAL(&mux);
}
void line_1A_WT88F(uint8_t data)
{
int i = 0x00;
voice_data_set(0x00);
voice_delay(5000);
sched_info("_j<1>\n");
ja_enter_critical();
for (i = 0x00; i < 0x08; i++) {
if (data&0x01) {
voice_data_set(0x01);
voice_delay(600);
voice_data_set(0x00);
voice_delay(200);
} else {
voice_data_set(0x01);
voice_delay(200);
voice_data_set(0x00);
voice_delay(600);
}
data = data >> 0x01;
}
voice_data_set(0x01);
ja_exit_critical();
sched_info("_j<2>\n");
}
是基于blecent的基础例子构建的代码,蓝牙任务的优先级与播放语音的任务优先级时一样。
static portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
void ja_enter_critical(void)
{
taskENTER_CRITICAL(&mux);
}
void ja_exit_critical(void)
{
taskEXIT_CRITICAL(&mux);
}
void line_1A_WT88F(uint8_t data)
{
int i = 0x00;
voice_data_set(0x00);
voice_delay(5000);
sched_info("_j<1>\n");
ja_enter_critical();
for (i = 0x00; i < 0x08; i++) {
if (data&0x01) {
voice_data_set(0x01);
voice_delay(600);
voice_data_set(0x00);
voice_delay(200);
} else {
voice_data_set(0x01);
voice_delay(200);
voice_data_set(0x00);
voice_delay(600);
}
data = data >> 0x01;
}
voice_data_set(0x01);
ja_exit_critical();
sched_info("_j<2>\n");
}
是基于blecent的基础例子构建的代码,蓝牙任务的优先级与播放语音的任务优先级时一样。
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
可能是锁中断的时间太久了
造成蓝牙底层业务没得到及时的执行
造成蓝牙底层业务没得到及时的执行
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
嗯,感觉也是,去掉锁代码就很久没有浮现那个问题了,不过又出现了另外一个问题 ,此时wifi作为station已经正常工作,蓝牙一直在扫描, 过段时间出现 : assert rwble.c 261, param 00020000 00000000
- Attachments
-
- 捕获.PNG (50.22 KiB) Viewed 10522 times
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
蓝牙扫描时设置为被动扫描就没问题哦,设置为主动扫描就会出现这个问题。
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
1. 扫描结果上报之后,有没有在 callback 里面做太多的耗时操作?
2. 有没有对flash的操作?
2. 有没有对flash的操作?
Re: esp32c3 出现 assert sch_arb.c 890, param 00000000 00000000
嗯,之前也发现flash操作会对蓝牙有影响, flash操作时,关掉蓝牙扫描就没事了。蓝牙事件回调函数没有很耗时的操作,这边发现跟扫描参数有关系 将扫描之间间隔itvl设置为BLE_GAP_SCAN_SLOW_INTERVAL1(1.28 秒),扫描windows设置为BLE_GAP_SCAN_SLOW_WINDOW1(11.25 ms)时就不会出现这个问题。
Who is online
Users browsing this forum: Baidu [Spider] and 39 guests