(二)stm32不同系统如何调试
在单片机上开发代码可以选择操作系统和不选择操作系统。不选择操作系统一般只能通过将循环切片,就是定义这个循环运行多少ms来实现看起来像多线程的东西,逻辑上看起来是分开执行的。选择实时操作系统一般有rtthread和freertos。选择在硬件资源宽裕的情况下用RT-Thread开发应用是比较方便的。https://blog.csdn.net/u013184273/article/details/10
如果想详细的了解如何在单片机上打印请看这篇知乎专栏
https://zhuanlan.zhihu.com/p/71234793
单片机调试总结下有四种方法
1.UART打印输出(需要占用一个串口)
2.仿真打印输出(不需要连板子)
3.SWO打印输出(SWO:Serial Wire Output,串行线输出 需要多一根SWO(引脚)线)
4.JLink-RTT打印输出(需要连jlink线,需要在代码中添加相关代码)
在单片机上开发代码可以选择操作系统和不选择操作系统。
不选择操作系统一般只能通过将循环切片,就是定义这个循环运行多少ms来实现看起来像多线程的东西,逻辑上看起来是分开执行的。
选择实时操作系统一般有rtthread和freertos。
选择在硬件资源宽裕的情况下用RT-Thread开发应用是比较方便的。
https://blog.csdn.net/u013184273/article/details/103805733
1.rtthread下如何调试
打印信息一般使用
rtthread的rk_kprintf进行打印,通常是重定向到串口中看打印信息。
程序挂了一般使用
cm_backtrace库进行调试
2.FreeRTOS下如何调试
通常是重定向到串口中看打印信息。
配置参考https://max.book118.com/html/2018/0915/7066153201001146.shtm
注意,使用打印一定要谨慎,因为可能会遇到实时性的问题。
https://www.eemaker.com/freertos-printf.html
http://news.eeworld.com.cn/mcu/ic468817.html
3.无操作系统如何调试
在嵌入式单片机软件开发过程中经常会使用J-Link来作为调试工具,一般大多数都是直接用它作为下载和仿真使用,很少用它作为软件运行时的log输出。但是如果想保持一些数据还是需要打印。
思路
(1)将SEGGER_RTT_printf.c、SEGGER_RTT.c、SEGGER_RTT_Conf.h、SEGGER_RTT.h四份文件添加到你的源代码工程中。相关文件的文件可从本人分享的资源中下载到。https://download.csdn.net/download/zzw17wei/10232326
(2)在源代码中初始化
调用SEGGER_RTT_ConfigUpBuffer(0, NULL, NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);函数初始化。
(3)打印log
在需要输出log的地方调用SEGGER_RTT_printf();函数输出打印。
(4)查看log
在SEGGER安装目录下找到JLinkRTTViewer.exe这软件双击运行。在Specify Target Device中选择自己的芯片类型。之后在出来的界面中直接点击Enter就可以看log输出了
介绍jlink rtt原理及使用参考
http://www.360doc.com/content/20/0229/09/66457723_895623249.shtml
参考
https://blog.csdn.net/kavieen/article/details/103476949
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)