出现你问题中的原因是:你在中断里面使用 socket 函数会调用 rt_malloc 申请空间,但是 rt_malloc 不应该出现在中断上下文中,因为这两个函数会操作锁,而 rtt 的中断上下文中不可以获取锁。所以提示了你问题中的话
[rt_mutex_take] shall not be used in ISR
另外 socket 创建一次就行了,每次定时器到时后直接释放信号量,然后另一个线程获取到信号量之后直接发送就行不用再次创建 socket
出现你问题中的原因是:你在中断里面使用 socket 函数会调用 rt_malloc 申请空间,但是 rt_malloc 不应该出现在中断上下文中,因为这两个函数会操作锁,而 rtt 的中断上下文中不可以获取锁。所以提示了你问题中的话
[rt_mutex_take] shall not be used in ISR
另外 socket 创建一次就行了,每次定时器到时后直接释放信号量,然后另一个线程获取到信号量之后直接发送就行不用再次创建 socket
举报