瑞萨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了

目录
相关文章
ln命令:软链接建立与删除
ln命令:软链接建立与删除
384 0
|
数据安全/隐私保护
|
2月前
|
人工智能 运维 机器人
Claude Sonnet4.6编程追平Opus了,价格便宜4成,老金算了笔账
![Image](https://ucc.alicdn.com/pic/developer-ecology/p3shvhj26rigq_7f903ffb487546248d74ac452521566f.jpg) OSWorld 72.5%——昨晚(2月17日)刷到这个数据的时候,老金我反复确认了三遍。 Anthropic发布了Claude Sonnet 4.6,编程能力首次追平Opus,价格却只
Claude Sonnet4.6编程追平Opus了,价格便宜4成,老金算了笔账
fatal error: ft2build.h: 没有那个文件或目录
fatal error: ft2build.h: 没有那个文件或目录
726 0
|
监控 NoSQL 网络协议
OpenOCD(四):OpenOCD服务器配置
OpenOCD(四):OpenOCD服务器配置
1087 1
|
传感器 存储 算法
《探索机器人自主导航与路径规划技术的热点》
机器人自主导航与路径规划技术是当今科技热点,广泛应用于工业生产、物流配送及日常生活服务。传感器(如激光雷达、摄像头)、定位技术(如GPS、IPS)和地图构建为机器人提供环境感知能力。路径规划涉及搜索算法(如DFS、BFS、A*)和优化算法,确保机器人在复杂环境中高效、准确地完成任务。实时规划则使机器人能动态调整路径,适应环境变化。这些技术的不断进步正推动机器人在各领域的广泛应用,提升效率与便利性。
683 9
|
开发工具 Android开发 开发者
Android开发环境搭建
如何搭建Android开发环境,包括下载和安装Android Studio、配置SDK、创建新的Android工程项目等。
596 0
Android开发环境搭建
团队的温度-霍桑实验对绩效管理体系的启示
团队的温度-霍桑实验对绩效管理体系的启示
|
物联网 C# Windows
看看如何使用 C# 代码让 MQTT 进行完美通信
看看如何使用 C# 代码让 MQTT 进行完美通信
2264 0