作者 主题:STM32:记录库选择 (Read 1313 times)

0位成员和1位访客正在查看此主题。

 离线 dkonigs

  • 贡献者
  • 帖子:39
  • 国家:  我们
STM32:记录库选择
« on: 2020年10月12日,晚上11:47:24»
所以我'我开始弄清STM32,并且像许多开发人员一样,我很高兴能够让我的bodog从串行端口生成日志消息。一世'我还计划将FreeRTOS用于我的项目,如果这样做有助于提供一些背景知识。

理想情况下,我'd喜欢使用某种编写良好的日志记录库来执行此操作,而不是简单地将HAL_UART_Transmit调用(直接或通过printf重定向)捆绑在一起。一世'我试图找出那里有什么选择,而我真的是避风港'无法找到很多东西。

据我所知,到目前为止有两种选择。
  • 拿ESP_LOG code from the ESP32 platform's ESP-IDF,并将其移植到STM32(这是'非常辛苦,而我实际上只是对它进行了第一遍。)
  • 拿"iot_logging" code from Amazon'的FreeRTOS AWS Reference Integrations项目,希望我可以从我不依赖于该项目中的许多bodog中解脱出来'请特别注意。 (和我'我对拥有"Iot"在整个地方都加前缀)

我还有其他好的选择吗'm not considering?

(我实际上真的很喜欢ESP32日志bodog的工作原理,但是从完全不同的MCU的框架中删除bodog有点奇怪。)
 

 离线 核猫

  • 支持者
  • ****
  • 帖子:330
  • 国家:  磅
回复:STM32:记录库选择
« 在以下方面回复#1: 2020年10月12日,晚上11:50:15»
考虑使用SWO而不是uart。
并且可能避免使用printf,尤其是%f,STM32很少有与FreeRTOS组合使用有关的讨厌的错误。提示-任何在内部调用动态内存分配的方法都无法与FreeRTOS的Cube实现配合使用。
« 最后编辑:2020年10月13日,上午12:49:09 by nuclearcat »
 
以下用户感谢这篇文章: dkonigs

 离线 dkonigs

  • 贡献者
  • 帖子:39
  • 国家:  我们
回复:STM32:记录库选择
« 在以下方面回复#2: 2020年10月13日,上午12:58:32»
虽然那没有'未能真正回答我的问题,这确实使我陷入了与STM32上与FreeRTOS有关的问题的空白,这使我添加了一堆书签,'当我在这个项目中走得更远时,我一定会仔细审查的:-)

我的主要问题更多与找到可以从bodog内部管理日志消息的生成的前端库有关,而不是与实际上将格式化的日志消息喷出到某些I / O设备(所有这些库通常可以让您重写,但您认为合适。)
 

 离线 萨尔氨水

  • 超级贡献者
  • ***
  • 帖子:1208
  • 国家:  我们
回复:STM32:记录库选择
« 在以下方面回复#3: 2020年10月13日,下午06:33:36»
如果你'重新使用Segger J-Link,一个更好的选择是RTT: //www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/
复杂性是高质量bodog的第一大敌人。
 

 离线 MosherIV

  • 超级贡献者
  • ***
  • 帖子:1526
  • 国家:  b
回复:STM32:记录库选择
« 在以下方面回复#4: 2020年10月13日,下午06:52:56»
您可以做的一件事是将更新串行数据的bodog放入freeRToS的空闲任务中。

您可以使用dma释放一些软件交互。我很确定您可以从内存到uart使用dma,然后外围设备管理输出字符。
 

 离线 dkonigs

  • 贡献者
  • 帖子:39
  • 国家:  我们
回复:STM32:记录库选择
« 在以下问题上回复#5: 2020年12月5日,上午03:31:04»
I'我仍然很惊讶那里'对此确实没有任何明显的答案。我知道每个人都有关于从调试端口发出文本的最佳方法的有用建议,但是'我不是真的在问什么。

所以看了我多少行李'd必须拖动才能使用"iot_logging"库,我最终只是从ESP32移植到ESP_LOG框架's ESP-IDF.  It really wasn'那个很难做到的事情,是相当独立的,并且给了我几乎所有我需要的东西。 我胆量中可能有几个地方'将来需要进行调整,但这可以完成工作。
 

 离线 techman-001

  • 常客
  • **
  • 帖子:688
  • 国家:  au
  • 过去50年的电子技术员
    • Mecrisp Stellaris非官方UserDoc
回复:STM32:记录库选择
« 在以下方面回复#6: 2020年12月5日,上午05:31:15»
如果你'重新使用Segger J-Link,一个更好的选择是RTT: //www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/

这与我与Mecrisp-Stellaris Forth一起使用了差不多一段时间了,但事实并非如此'不需要像任何Stlink设备那样的Segger J-Link。
//mecrisp-stellaris-folkdoc.sourceforge.io/swdcom.html#swdcom

 
蓝丸诊断:  //sourceforge.net/projects/mecrisp-stellaris-folkdoc/files/stm32fxx-diagnostics-v1.5.bin
Mecrisp-Stellaris Forth for Cortex-M;非官方文件: //mecrisp-stellaris-folkdoc.sourceforge.io/
实时与IRC实时交谈:freenode.net #mecrisp
 

 离线 Doctorandus_P

  • 超级贡献者
  • ***
  • 帖子:1342
  • 国家:  nl
回复:STM32:记录库选择
« 在以下方面回复#7: 2020年12月5日,上午11:21:03»
您可以使用任何用于记录的库,这些库以对您有用的某种方式格式化数据。该库不必特定于STM32。

STM32的唯一特定部分是用于输出数据的函数,这取决于您要登录的位置。 UART,SWO,I2C闪存芯片,uSD卡,SPI RF加密狗等

如果您想要一个完全预烤的解决方案,也许"arduino" or the "mbed"框架为您工作。这些可能内置了日志记录功能。
 

 离线 dkonigs

  • 贡献者
  • 帖子:39
  • 国家:  我们
回复:STM32:记录库选择
« 在以下方面回复#8: 2020年12月5日,下午03:25:51»
您可以使用任何用于记录的库,这些库以对您有用的某种方式格式化数据。该库不必特定于STM32。
这是真的,但我仍然不'看不到您(或其他任何人)对图书馆提出的任何建议'我们发现对于此目的有用。 (并且有时存在特定于半平台的规范,例如它们是否挂钩到某些RTOS的API中作为互斥对象。)

STM32的唯一特定部分是用于输出数据的函数,这取决于您要登录的位置。 UART,SWO,I2C闪存芯片,uSD卡,SPI RF加密狗等
任何体面的日志记录库都可以让您作为用户使用自己的函数来处理这一部分。

如果您想要一个完全预烤的解决方案,也许"arduino" or the "mbed"框架为您工作。这些可能内置了日志记录功能。
除非你'真正意识到这些框架内置或之上的日志库仅作为示例,这并没有't really help.
« 上次编辑:2020年12月5日,下午03:28:38 by dkonigs »
 

 离线 泽克

  • 贡献者
  • 帖子:14
回复:STM32:记录库选择
« 在以下方面回复#9:2021年年1月13日,下午09:53:36»
理想情况下,我'd喜欢使用某种编写良好的日志记录库来执行此操作,而不是简单地将HAL_UART_Transmit调用(直接或通过printf重定向)捆绑在一起。一世'我试图找出那里有什么选择,而我真的是避风港'无法找到很多东西。

我还有其他好的选择吗'm not considering?

是的,这是您的又一选择:
//github.com/armink/EasyLogger


 
以下用户感谢这篇文章: Skashkash, dkonigs

 离线 dkonigs

  • 贡献者
  • 帖子:39
  • 国家:  我们
回复:STM32:记录库选择
« 在以下问题上回复#10:2021年年1月18日,上午7:07:23»
是的,这是您的又一选择:
//github.com/armink/EasyLogger

谢谢! 这正是我真正想要的东西!

不幸的是,所有文档,提交历史,问题等都是中文。但是,bodog本身(感谢)用英语注释/命名,看起来非常简单易懂。一世'我肯定会去检查一下。
 

 离线 贫民窟

  • 超级贡献者
  • ***
  • 帖子:1636
  • 国家:  PL
  • 巨魔洞穴电子!
回复:STM32:记录库选择
« 在以下方面回复#11:2021年年1月18日,下午7:37:12»
用于调试输出的库?严重地?通过UART以2mbit或类似的速率转储数据有多困难?

这个库做什么UART转储+一些C#/ java / python app没有't do?
我喜欢早晨的FR4气味!
 

 离线 贫民窟

  • 超级贡献者
  • ***
  • 帖子:1636
  • 国家:  PL
  • 巨魔洞穴电子!
回复:STM32:记录库选择
« 在以下问题上回复#12:2021年年1月18日,下午7:46:02»
考虑使用SWO而不是uart。
并且可能避免使用printf,尤其是%f,STM32很少有与FreeRTOS组合使用有关的讨厌的错误。提示-任何在内部调用动态内存分配的方法都无法与FreeRTOS的Cube实现配合使用。

唯一需要的是重新定义malloc并自由使用FreeRTOS函数。即使使用new()创建复杂的C ++对象,也可以像魅力一样工作
我喜欢早晨的FR4气味!
 


分享我

 掘客   Facebook  SlashDot  可口的  Technorati   推特    谷歌    雅虎
中频