当前位置: 首页 > backend >正文

移植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的日志

http://www.xdnf.cn/news/4733.html

相关文章:

  • 华为设备MSTP
  • 【IP101】图像压缩技术详解:从JPEG到小波压缩的完整指南
  • 机器人领域和心理学领域 恐怖谷 是什么
  • 如何为APP应用程序选择合适的服务器
  • C++ - 输入输出
  • Matlab 车辆四自由度垂向模型平稳性
  • Jupyter Notebook / Lab 疑难杂症记:从命令找不到到环境冲突与网络阻塞的排查实录
  • 手撕基于AMQP协议的简易消息队列-8(单元测试的编写)
  • linux mutex 互斥锁实现
  • 【网工第6版】第7章 网络操作系统与应用服务器③
  • 芯片测试之Open-Short Test全解析:从原理到实战
  • SpringBoot教程(vuepress版)
  • AWS VPC架构师指南:从零设计企业级云网络隔离方案
  • C语言if语句的用法(非常详细,通俗易懂)
  • CentOS7将yum源更换为阿里源
  • 2025年通信安全员考试题库及答案
  • 【Linux系统】第三节—权限
  • 线索二叉树
  • Arm核的Ubuntu系统上安装Qt
  • 小白借助ai对全栈进行浅浅理解(学习笔记)-Lambda、Optional 避免空指针与新的日期时间 API
  • Linux_进程退出与进程等待
  • 分享 2 款基于 .NET 开源的实时应用监控系统
  • Altera系列FPGA实现图像视频采集转HDMI/LCD输出,提供4套Quartus工程源码和技术支持
  • vue2 结合后端预览pdf 跨域的话就得需要后端来返回 然后前端呈现
  • node.js 实战——在express 中将input file 美化,并完成裁剪、上传进度条
  • 本地可执行命令的智能体部署方案
  • 【WebRTC-12】CreatePeerConnection究竟创建了什么?
  • 开发函数踩坑记 sum(1) over(partition by stock_code order by trade_date asc)
  • 信息系统项目管理工程师备考计算类真题讲解十五
  • java面试OOM汇总