ringblk 如何使用 初始化 存储与取出数据(注意:不要讲原理,要样例)?

问题遇到的现象和发生背景 \

自己之前学习 使用了ringbuffer
但是对于ringblk比较疑惑,最好如下方式展示

问题相关代码,请勿粘贴截图

以下为ringbuffer 展示


//>>>第一步 初始化结构体
#define UART4_TX_Buffer_Len  1024  //定义大小
rt_uint8_t uart4_tx_buffer[UART4_TX_Buffer_Len] = {0};
struct rt_ringbuffer uart4_txrb;
//>>>第二步 初始化
rt_ringbuffer_init(&uart4_txrb,uart4_tx_buffer,UART4_TX_Buffer_Len);
 //>>>第三步 向ringbuffer里写入数据
 rt_ringbuffer_put(&uart4_txrb,"uart4_ringbuffer_out", sizeof("uart4—ringbuffer_out"));
  rt_thread_delay(1000);
 //>>>第四步 构建一个函数从ringbuffer里面读出来
    fnUart4_ringbuffer_422_send_msg_handle();
    
    
    void fnUart4_ringbuffer_422_send_msg_handle(void)
{

    static rt_uint8_t Uart4read_len = 0;
    static rt_uint8_t uartx_msg_temp[UART4_TX_Buffer_Len];
     //>>>第五步读下,看看有没有数据
    Uart4read_len = rt_ringbuffer_data_len(&uart4_txrb);
     //有数据则进入
    if(Uart4read_len > 0)
    {
        //>>>读出来,放在零食数组内
        rt_ringbuffer_get(&uart4_txrb,uartx_msg_temp,Uart4read_len);
        //>>>>发走 这么做在多线程比较适用
        rt_device_write(u4_dev, 0, uartx_msg_temp, rt_strlen(uartx_msg_temp));
    }
}

我的解答思路和尝试过的方法

在网上找到的全部是介绍原理的,没有实例代码,很苦恼。

我想要达到的结果

有相应代码实例

RT-Thread 隐藏的宝藏之ringblk
https://blog.csdn.net/whj123999/article/details/114794025
没时间写代码