欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 移植easylogger通过J-Linker的RTT输出日志/Ozone的RTT设置

移植easylogger通过J-Linker的RTT输出日志/Ozone的RTT设置

2025/5/9 17:51:31 来源:https://blog.csdn.net/weixin_50127894/article/details/147803849  浏览:    关键词:移植easylogger通过J-Linker的RTT输出日志/Ozone的RTT设置

移植easylogger

什么是easylogger

     easylogger:是一款超轻量级高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。

移植流程

1.先去↓地址下载源码GitHub - armink/EasyLogger: An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库

2.通过下面说明来逐步移植

不喜欢看官方移植流程的可以看看我的理解

3.首先移植这么才算初步成功?

讲移植文件都添加进来烧录编译没错误就是初步成功,原理是下面👇

移植的本质是什么-CSDN博客

4.开始初步移植

我先将新建一个工程,讲源码解压丢进去

后面我们打开keil将圈出的源文件(.C)添加到keil目录中,然后将.h文件添加头文件索引

添加头文件路径

添加完成开始直接编译文件,处理错误,很好有四个错误

这种Undefine symbol的错误就是变量未声明,一般是没有引用相对头文件/没添加相对于.c文件/或者是有些宏没开启

我们先全局查找,有意思的来了,我们发现他引用了外部函数声明了宏定义启用函数,同时我们也没有添加async文件

我们跳转这个宏定义看看,发现需要开启异步可以开启这个宏,我们这里不开启,对我们移植不影响,先把这个宏注释掉

好现在只有两个错误了(如果你选择开启,你可以添加那个源文件,同样错误会减少),我们故技重施

和之前的错误一个情况,我们选择不开这个buffer

我们选择注释掉,后继续编译,现在只有四个警告

意思就是这四个函数,需要我们自己配置返回值,我们这里都设置为返回空字符

下面这样就不会报警高了

最后这两个函数添加开启和关闭全局中断函数,对日志输出方法进行加锁,保证日志在并发输出时的正确性。有操作系统时可以使用获取信号量来加锁,裸机时可以通过关闭全局中断来加锁。这样我们初步移植就完成了。

5.进一步移植

这一步我们需要自己填充内容信息,来开始使用easylogger

如果你时候没思路怎么使用,我们可以以前看看,官方提供的demo我们一起参考来写出

我们打开demo拆解一下发现很简单,但是我们需要改一些,输出选择用J-link的RTT输出

我们将不需要修改的复制到我们项目里面,看着不错,现在还缺少配置输出

开始配置RTT,那么RTT怎么获取?

在我们下面的J-link驱动里面就有,直接解压复制到项目文件夹里面

添加源文件和路径,编译不报错

然后我们配置直接在输出里面配置RTT输出即可,主函数里面也无须配置启动,因为这个输出函数包含初始化了(如果是自己用串口输出,这里只要匹配好即可,能把API接口的数据处理不在乎形式这就是移植的关键)

这些配置好后打开J-Link RTT Viewer软件,只要安装了驱动都有,直接电脑里面搜,选择自己的芯片类型,和连接方式,直接在keil中烧录

这就是最后的现象了,用RTT输出了easylogger的日志

6.最后试试配置ozone

ozone内部内置了RTT工具,配置和J-Link RTT Viewer软件是一模一样,我们不需要改动

用ozone打开.axf文件,后面打开terminal

然后再里面鼠标右击打开RTT即可

启动调试,运行,就可以看到和J-Link RTT Viewer软件是一模一样的效果了

最后:博主也在学习,现在只会了初步的移植,至于怎么设置日志插入,具体分析日志情况,这个我也不懂,后面学明白了,再更新

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词