| 78 | } |
| 79 | } |
| 80 | static void ringbuffer_sample(int argc, char** argv) |
| 81 | { |
| 82 | rt_thread_t tid; |
| 83 | rt_uint16_t i = 0; |
| 84 | rb = rt_ringbuffer_create(RING_BUFFER_LEN); |
| 85 | if (rb == RT_NULL) |
| 86 | { |
| 87 | rt_kprintf("Can't create ringbffer"); |
| 88 | return; |
| 89 | } |
| 90 | tid = rt_thread_create("consumer", consumer_thread_entry, RT_NULL, |
| 91 | 1024, RT_THREAD_PRIORITY_MAX/3, 20); |
| 92 | if (tid == RT_NULL) |
| 93 | { |
| 94 | rt_ringbuffer_destroy(rb); |
| 95 | } |
| 96 | rt_thread_startup(tid); |
| 97 | while (str[i] != '\0') |
| 98 | { |
| 99 | rt_kprintf("[Producer] -> %c\n", str[i]); |
| 100 | rt_ringbuffer_putchar(rb, str[i++]); |
| 101 | rt_thread_mdelay(500); |
| 102 | } |
| 103 | rt_thread_delete(tid); |
| 104 | rt_ringbuffer_destroy(rb); |
| 105 | } |
| 106 | MSH_CMD_EXPORT(ringbuffer_sample, Start a producer and a consumer with a ringbuffer); |
nothing calls this directly
no test coverage detected