瑞萨RA6M4开发板在RT-Thread中使用segger_rtt软件包

简介: 瑞萨RA6M4开发板在RT-Thread中使用segger_rtt软件包

瑞萨RA6M4开发板使用示例<RT-Thread的版本为v4.1.0及以上>

一、创建工程,选择SEGGER_RTT软件包

2、添加jlinkRtt初始化函数[ 路径:/rt-thread/src/kservice.c ]

rt_console_set_device前调用rt_hw_jlink_rtt_init初始化函数

3、控制台对接上jlinkRtt

rtconfg.h
// 修改RT_CONSOLE_DEVICE_NAME为空

shell.c [ 路径:D:\rt-thread\components\finsh\shell.c]
/* 1、首先添加以下头文件 */
#include "SEGGER_RTT.h"
#include "SEGGER_RTT_Conf.h"
/* 2、修改finsh_getchar */
int finsh_getchar(void)
{
#ifdef RT_USING_DEVICE
    char ch = 0;
#ifdef RT_USING_POSIX_STDIO
    if(read(STDIN_FILENO, &ch, 1) > 0)
    {
        return ch;
    }
    else
    {
        return -1; /* EOF */
    }
#else
    rt_device_t device;
    RT_ASSERT(shell != RT_NULL);
    device = shell->device;
    if (device == RT_NULL)
    {
        extern char rt_hw_console_getchar(void);
        return rt_hw_console_getchar();
    }
    while (rt_device_read(device, -1, &ch, 1) != 1)
    {
        rt_sem_take(&shell->rx_sem, RT_WAITING_FOREVER);
        if (shell->device != device)
        {
            device = shell->device;
            if (device == RT_NULL)
            {
                return -1;
            }
        }
    }
    return ch;
#endif /* RT_USING_POSIX_STDIO */
#else
    extern char rt_hw_console_getchar(void);
    return rt_hw_console_getchar();
#endif /* RT_USING_DEVICE */
}
kservice.c [ 路径:\rt-thread\src\kservice.c ]
// 另外我们还需要完成对控制台字符读取的对接,修改rt_hw_console_output 
RT_WEAK void rt_hw_console_output(const char *str)
{
    /* empty console output */
    rt_size_t i = 0, size = 0;
    size = rt_strlen(str);
    for (i = 0; i < size; i++)
    {
        if (*(str + i) == '\n')
        {
           break;
        }
    }
    SEGGER_RTT_printf(0,"%s",str);
}
RTM_EXPORT(rt_hw_console_output);

4、实验效果

首先确保已经下载好J-Link RTT Viewer,直接去官网下载最新版本即可

然后编译和下载工程,注意下载方式为J-Link

双击打开rtthread.map[ 路径: /Debug/rtthread.map ]文件,查看_SEGGER_RTT变量地址(全局搜索即可,找到.bss._SEGGER_RTT)

打开J-Link RTT Viewer

此时就可以正常使用segger_rtt了

目录
相关文章
|
消息中间件 缓存 Shell
RT-Thread记录(十七、AT组件 — ESP8266使用 at_device 软件包联网)
AT 组件:RT-Thread 一个比较典型的组件, 解决了不同网络模块AT命令之间的差异导致的重复开发的问题,大幅度简化了MCU+无线模块方案开发。
1043 0
RT-Thread记录(十七、AT组件 — ESP8266使用 at_device 软件包联网)
|
存储 Linux C语言
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
698 1
|
IDE 开发工具 数据安全/隐私保护
esp32CAM环境安装教程---串口驱动安装
esp32CAM环境安装教程---串口驱动安装
1241 0
|
IDE 编译器 开发工具
【NXP】LPC55S69-RT-Thread Micropython移植日志
【NXP】LPC55S69-RT-Thread Micropython移植日志
204 0
|
IDE 开发工具 C语言
【基于 RT-Thread Studio的CPK-RA6M4 开发板环境搭建】
【基于 RT-Thread Studio的CPK-RA6M4 开发板环境搭建】
117 0
|
传感器 数据可视化 数据格式
【Renesas RA6M4开发板之UART与Serial studio串口交互】
【Renesas RA6M4开发板之UART与Serial studio串口交互】
168 0
|
传感器 数据采集 消息中间件
RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (二、无线温湿度传感器 之 CubeMX配置)
应用篇-在STM32L051上使用RT-Thread 第二篇,使用STM32CubeMX 进行对应外设配置,同时做一些简单测试。
512 0
RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (二、无线温湿度传感器 之 CubeMX配置)
|
传感器 消息中间件 Shell
RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (一、无线温湿度传感器 之 新建项目)
学完了 RT-Thread 内核基础,来使用 RT-Thread 实现一个小应用。 硬件平台:STM32L051C8 TCM310(Enocean无线芯片) 软件平台:RT-Thread Studio STM32CubeMX 产品名称:无线温度传感器 实现功能:STM32L051 通过 I2C 协议读取 SHT21D 温湿度传感器数据,然后通过串口和 Enocean 通讯,按照标准Enocean协议,将温湿度数据发送出去
567 1
RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread (一、无线温湿度传感器 之 新建项目)