我想帮助提高循环缓冲区代码的效率.
我看了一下stackoverflow,发现(几乎)循环缓冲区的所有主题都是关于这种缓冲区的使用或循环缓冲区的基本实现.我真的需要有关如何使其超级高效的信息.
计划是将此缓冲器与STM32F4微控制器一起使用,该微控制器具有单个精确FPU.我计划大量使用write()和readn()函数.我们实际上只是在这里谈了几百万个电话,所以在这里刮几个时钟周期,确实会有所作为.
我将把最重要的代码放在这里,完整的缓冲区代码可以通过http://dl.dropbox.com/u/39710897/circular%20buffer.rar获得.
任何人都可以向我提供一些关于如何提高此缓冲区效率的指示吗?
#define BUFF_SIZE 3 // buffer size set at compile time
typedef struct buffer{
float buff[BUFF_SIZE];
int readIndex;
int writeIndex;
}buffer;
/********************************\
* void write(buffer* buffer, float value)
* writes value into the buffer
* @param buffer* buffer
* pointer to buffer to be used
* @param float value
* valueto be written in buffer
\********************************/
void write(buffer* buffer,float value){
buffer->buff[buffer->writeIndex]=value;
buffer->writeIndex++;
if(buffer->writeIndex==BUFF_SIZE)
buffer->writeIndex=0;
}
/********************************\
* float readn(buffer* buffer, int Xn)
* reads specified …Run Code Online (Sandbox Code Playgroud)