现有两个过程,一边DSP在外部有4M的时钟去获取数据,另一边DSP通过UART去传输获取的数据(9600),为了保证实时性(获取数据一直进行),在sclk=133M下,想要在读取数据时产生中断去传输数据,这样是否可行?
(我想在获取数据时需要1/4M的时间,而传输数据时需要1/9600的时间,这样时间上可能不行吧?)
不行,你最好用Pingpang buffer机制,加上握手信号线来处理,就是当另一端没有处理完数据时, IO信号不允许对方发送数据。 没有这个机制你的系统做不稳定的。
不需要多线程,用Pingpang buffer机制,确保获取数据的速度要大于传输速度,每个buffer有两个标志位,一个代表UART传输完成,另一个代表采集的数据填充为满,UART传输时判断数据是否为满,外部采集数据时判断是否为UART传输完成。两个buffer交替传输和采集数据