John-J-smith
Results
1
comments of
John-J-smith
您好,我是在实际项目中遇到的这个问题。场景如下: 在`at_parser`任务中释放了`at_echo->__expect_notify`信号量,并且在`at_echo_buffer_copy`之前发生了任务调度,任务切换到了`tos_at_cmd_exec_until`中,成功获取了`echo->__expect_notify`信号量,随后执行了`AT_AGENT->echo = K_NULL;`,等任务再切换回`at_parser`时,`at_echo`已经为空,此时再拷贝就会出现hardfault。 将拷贝放到释放信号之前则不会出现该问题。 ``` __STATIC__ void at_parser(void *arg) { ... if (at_parse_status == AT_PARSE_STATUS_EXPECT) { at_echo->status = AT_ECHO_STATUS_EXPECT; if (at_echo->__is_expecting) { tos_sem_post(&at_echo->__expect_notify); } } else if (at_parse_status ==...