MDK环境下让STM32用上FreeRTOS v8.1.2和FreeRTOS+Trace v2.6.0全过程

2019-12-15 11:34发布

本帖最后由 tanglei979 于 2014-10-25 15:17 编辑



    本人选择使用
FreeRTOS的最大原因就是想使用FreeRTOS+Trace,这是一个图形化的Debug工具,利用这个工具,你可以看到各线程、中断、消息队列等的运行历史,对于新手来说,学习一个操作系统的运行原理是个好工具,而对于工程应用人员而言,它又是一个不可多得的辅助工具,它能让你获得一种“掌控”的感觉,实在是非常好用。现在我把我建立模板工程的整个过程分享给大家,希望大家也能用上这款神器。          FreeRTOS+Trace分为两部分,一部分是位于目标系统的C源码库,你需要将其加入到你的MCU项目中,另一部分是PC机上的软件。FreeRTOS+Trace的运行原理图如下,目标系统在RAM中建立一个缓冲区(大容量数组),目标系统的操作系统在运行的过程中,每次产生的系统事件都会保存到该缓冲区,调试人员可以在PC上利用任意调试工具将这个缓冲区dump出来存到一个文件,再使用PC的FreeRTOS+Trace软件打开这个文件分析,并且dump时你并不需要知道缓冲区的具体地址,而是可以直接把整个RAM都dump出来,软件会自动分析。值得一提的是FreeRTOS+Trace软件集成了Jlink菜单,可以直接读取RAM区。(我不知道怎样利用Jlink工具dump内存,只知道J-Link Commander里的mem命令可以读RAM,但是不能保存成文件,有谁知道的告诉我一声) FreeRTOS Trace.exe Demo测试4.png (73.58 KB, 下载次数: 2) 下载附件 2014-10-25 14:26 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
98条回答
lordor
1楼-- · 2019-12-18 05:06
真是好帖。顶起。
登云钓月
2楼-- · 2019-12-18 09:31
 精彩回答 2  元偷偷看……
nongxiaoming
3楼-- · 2019-12-18 11:38
nongxiaoming 发表于 2014-10-25 17:20
关于用jlink读数据,函数是在JlinkArm.dll里面的,在你的项目中动态加载这个dll,然后引入相应的函数就行了 ...

JLink驱动自带的工具不知道可以不可以利用SWD dump呢,之所以要这样,是因为JTAG口一般用10针,我有的板用的SWD接口,只有四根线,用FreeRTOS+Trace直接读取会失败。
tanglei979
4楼-- · 2019-12-18 15:09
zhl_tc 发表于 2014-10-25 16:44
好像挺牛逼的样子,比uC强,动不动就搞收费,看来要改Free了

uc也有相应的ucTrace,代码和PC端软件同样由percepio公司提供,只是FreeRTOS是免费的,这是个优势
tanglei979
5楼-- · 2019-12-18 20:07
tanglei979 发表于 2014-10-25 17:38
JLink驱动自带的工具不知道可以不可以利用SWD dump呢,之所以要这样,是因为JTAG口一般用10针,我有的板 ...

可以的啊,通过JLINKARM_TIF_Select函数可以设置模式是JTAG还是SWD的,默认情况下jlink用的jtag。你用jlink命令行的时候需要发命令切换,然后再读写的。
nongxiaoming
6楼-- · 2019-12-19 01:07
还能这么搞,真不错。
关注SWD是否能用,因为现在做板都不留JTAG口了。

一周热门 更多>