我是用原子的F7开发板,试了下使用链队列从串口接收数据,串口接收数据波特率为115200,一边收一边在main函数while(1)中检测队列是否为空,不空则将数据发送出来,但是当发送大量数据时时不时就会少几个字节,如果使用数组实现队列就不会出现这种问题,链队列中malloc使用C库函数和原子的内存管理都试过,都会出现漏字节的问题,想问下这种情况怎么回事呢?是malloc执行太耗时间了吗?如果在while(1)中再加一些其他的代码,漏字节的现象更严重了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
“malloc的执行时间是不稳定的”这句话怎么说?我刚刚用systick测试了一下C库函数的malloc,分配一个链表节点的时间大约是100个tick,F7跑216M,每个tick是1/216us,100个tick就大约是0.5us,而原子的内存管理malloc分配一个节点大约是500个tick,也就大约是2.5us,115200bps每次中断的时间是69us,怎么会处理不完呢?
一周热门 更多>