STM32单片机裸机程序怎么处理大量网络数据?
无论是在中断中处理数据,还是在主循环里处理数据,你用于处理数据的时间是不变的。
你可以算一下,处理数据的时间(速率)和单片机的处理能力相差有多大,单片机是否有足够的时间来处理数据?最近很多小伙伴找我,说想要一些嵌入式学习资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「嵌入式入门到高级教程+工具包」,点个关注,全部无偿共享给大家!!!
评论区回复“888”,关注我之后私信回复“666”,即可拿走。
有三种可能:
1、总的处理速度是够的,但是穿插在各个任务中实时性不能保证或者各个模块之间的等待导致你处理器的利用率不够高进而导致了实际处理速度不足;
2、总的处理速度就是不够,即便没有任何其他问题,单单把所有的时间加起来已经超出了单片机的处理速度了;
3、总的处理速度是够的,但对网络数据的处理是突发性的,会存在局部的速率不足,但总速率足的情况;
判断好原因以后,解决方法也就明确了:
对于1、2两种问题,优化算法或者提高CPU的处理能力(主频什么的)是最直接的方法;
对于3这种情况,增加外部缓存用于扩大内存空间,然后慢慢处理。当然,提高主频或优化算法也都是可以行的。