|
@@ -13,6 +13,8 @@
|
|
* 2012-05-15 lgnq modified according bernard's implementation.
|
|
* 2012-05-15 lgnq modified according bernard's implementation.
|
|
* 2012-05-28 bernard code cleanup
|
|
* 2012-05-28 bernard code cleanup
|
|
* 2012-11-23 bernard fix compiler warning.
|
|
* 2012-11-23 bernard fix compiler warning.
|
|
|
|
+ * 2013-02-20 bernard use RT_SERIAL_RB_BUFSZ to define
|
|
|
|
+ * the size of ring buffer.
|
|
*/
|
|
*/
|
|
|
|
|
|
#include <rthw.h>
|
|
#include <rthw.h>
|
|
@@ -35,12 +37,12 @@ rt_inline void serial_ringbuffer_putc(struct serial_ringbuffer *rbuffer,
|
|
level = rt_hw_interrupt_disable();
|
|
level = rt_hw_interrupt_disable();
|
|
|
|
|
|
rbuffer->buffer[rbuffer->put_index] = ch;
|
|
rbuffer->buffer[rbuffer->put_index] = ch;
|
|
- rbuffer->put_index = (rbuffer->put_index + 1) & (SERIAL_RBUFFER_SIZE - 1);
|
|
|
|
|
|
+ rbuffer->put_index = (rbuffer->put_index + 1) & (RT_SERIAL_RB_BUFSZ - 1);
|
|
|
|
|
|
/* if the next position is read index, discard this 'read char' */
|
|
/* if the next position is read index, discard this 'read char' */
|
|
if (rbuffer->put_index == rbuffer->get_index)
|
|
if (rbuffer->put_index == rbuffer->get_index)
|
|
{
|
|
{
|
|
- rbuffer->get_index = (rbuffer->get_index + 1) & (SERIAL_RBUFFER_SIZE - 1);
|
|
|
|
|
|
+ rbuffer->get_index = (rbuffer->get_index + 1) & (RT_SERIAL_RB_BUFSZ - 1);
|
|
}
|
|
}
|
|
|
|
|
|
/* enable interrupt */
|
|
/* enable interrupt */
|
|
@@ -56,7 +58,7 @@ rt_inline int serial_ringbuffer_putchar(struct serial_ringbuffer *rbuffer,
|
|
/* disable interrupt */
|
|
/* disable interrupt */
|
|
level = rt_hw_interrupt_disable();
|
|
level = rt_hw_interrupt_disable();
|
|
|
|
|
|
- next_index = (rbuffer->put_index + 1) & (SERIAL_RBUFFER_SIZE - 1);
|
|
|
|
|
|
+ next_index = (rbuffer->put_index + 1) & (RT_SERIAL_RB_BUFSZ - 1);
|
|
if (next_index != rbuffer->get_index)
|
|
if (next_index != rbuffer->get_index)
|
|
{
|
|
{
|
|
rbuffer->buffer[rbuffer->put_index] = ch;
|
|
rbuffer->buffer[rbuffer->put_index] = ch;
|
|
@@ -87,7 +89,7 @@ rt_inline int serial_ringbuffer_getc(struct serial_ringbuffer *rbuffer)
|
|
if (rbuffer->get_index != rbuffer->put_index)
|
|
if (rbuffer->get_index != rbuffer->put_index)
|
|
{
|
|
{
|
|
ch = rbuffer->buffer[rbuffer->get_index];
|
|
ch = rbuffer->buffer[rbuffer->get_index];
|
|
- rbuffer->get_index = (rbuffer->get_index + 1) & (SERIAL_RBUFFER_SIZE - 1);
|
|
|
|
|
|
+ rbuffer->get_index = (rbuffer->get_index + 1) & (RT_SERIAL_RB_BUFSZ - 1);
|
|
}
|
|
}
|
|
/* enable interrupt */
|
|
/* enable interrupt */
|
|
rt_hw_interrupt_enable(level);
|
|
rt_hw_interrupt_enable(level);
|
|
@@ -101,7 +103,7 @@ rt_inline rt_uint32_t serial_ringbuffer_size(struct serial_ringbuffer *rbuffer)
|
|
rt_base_t level;
|
|
rt_base_t level;
|
|
|
|
|
|
level = rt_hw_interrupt_disable();
|
|
level = rt_hw_interrupt_disable();
|
|
- size = (rbuffer->put_index - rbuffer->get_index) & (SERIAL_RBUFFER_SIZE - 1);
|
|
|
|
|
|
+ size = (rbuffer->put_index - rbuffer->get_index) & (RT_SERIAL_RB_BUFSZ - 1);
|
|
rt_hw_interrupt_enable(level);
|
|
rt_hw_interrupt_enable(level);
|
|
|
|
|
|
return size;
|
|
return size;
|