CPU的效率

[复制链接]
 楼主| zhaoxqi 发表于 2017-2-26 18:10 | 显示全部楼层 |阅读模式
比如说FIFO默认的1/2满,接收中断触发,此时触发的中断是不是说接收的数据还没有全部接收完毕,只是收了4位,这样程序还要一直等待数据接收完毕。如果是这样的话,接收中断就占用了大量的程序时间,CPU的效率实在是太低了啊。
jiaxw 发表于 2017-2-26 18:12 | 显示全部楼层
什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| zhaoxqi 发表于 2017-2-26 18:15 | 显示全部楼层
要是我理解错了,应该是怎么样子的?
jiajs 发表于 2017-2-26 18:16 | 显示全部楼层
FIFO是为了节省CPU时间的,设置为1/2满,此时,在收到4个以上字节(不是位)时会产生中断,此时需要您把数据及时取走,因为FIFO只有8个字节,超过8个字节不取走,就会丢失数据。
jiajs 发表于 2017-2-26 18:17 | 显示全部楼层
另外,还有超时中断,比如只收到1个字节,在一定时间内未有新字节过来,也会产生中断,这样可以及时提取数据。
wyjie 发表于 2017-2-26 18:20 | 显示全部楼层
另外也可以设置DMA自动存储数据,就完全可以解放CPU了。
 楼主| zhaoxqi 发表于 2017-2-26 18:21 | 显示全部楼层
哦了,我再瞅瞅固件手册怎么写的。
yszong 发表于 2017-2-26 18:22 | 显示全部楼层
楼主理解有误,UART发送数据以Byte为单位的。
yszong 发表于 2017-2-26 18:24 | 显示全部楼层

FIFO是为了节约CPU资源设计的,所谓1/2设置的是收到一定数据后,提醒内核的时机。
 楼主| zhaoxqi 发表于 2017-2-26 18:25 | 显示全部楼层
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部