S32DS中使用SystemView分析FreeRTOS

S32K144 FreeRTOS S32DS
Angel_YY
发布时间: 2018-07-27
阅读: 3090

S32K144作为NXP推出车规级ARM Cortex M4内核MCU,在很多领域开始被广泛的应用,在其开发过程中,官方支持的S32 Design Studio IDE开发工具可以免费使用,并且集成了ProcessorExpert ,可以很方便的初始化外设并生成驱动。FreeRTOS作为免费的RTOS应用更是广泛,那么在S32DS中开发使用FreeRTOS的项目,很多情况下需要对OS的运行情况进行了解和分析,此时Segger免费的工具SystemView无疑是最合适的。接下来我们一起学习一下如何在S32DS中使用SystemView分析FreeRTOS。


一、首先下载工具:
S32DS:

https://www.nxp.com/cn/support/developer-resources/run-time-software/s32-design-studio-ide/s32-design-studio-ide-for-arm-based-mcus:S32DS-ARM?tab=Design_Tools_Tab


0001.png


SystemView:

https://www.segger.com/downloads/free-utilities/#SystemView


0002.png


McuOnEclipse组件:

https://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components


0003.png


二、安装工具

  S32DS根据提示安装即可,SystemView的PC端软件下载的是压缩文件,解压缩后运行可执行程序SystemView.exe即可。这里重点描述一下McuOnEclipse组件,这个组件可以说是NXP为其基于Eclipse的各种IDE开发的组件库,应用起来非常方便。


0004.png


启动S32DS后,在主菜单的Processor Expert中选择下拉菜单中的import component。


0005.png


在打开的窗口中找到解压缩过的McuOnEclipse组件,选择Part1_Beans_01.07.2018.PEupd,点击打开进行安装。


0006.png


完成后再安装Part2_Beans_01.07.2018.PEupd,此时默认会把组件安装到当前用户目录的MyComponents目录中。


0007.png


安装完成后,还需要把解压缩文件夹中的一些头文件拷贝到安装目录响应位置。

三、新建工程


0008.png


打开S32DS,在File菜单中选择New/S32DS Application Project。


0009.png


填写项目名称,选择处理器为S32K144,单击Next。


0010.png


SDKs选择0.8.6,Debugger需要使用SeggerJlink。


0011.png


生成工程后,配置一个GPIO为输出,用来控制LED灯。


0012.png


在main.c中增加初始化代码,至此,基础工程创建完成。

四、创建FreeRTOS任务


0013.png


在组件库中搜索FreeRTOS,找到新安装的FreeRTOS,双击,会在组件浏览中增加FreeRTOS和一些相关的组件。


0014.png


在McuLibConfig组件右击选择inspector,修改组件SDK为S32K SDK。


0015.png


修改FreeRTOS配置中的处理器架构为Cortex-M4F,生成PE代码。


0016.png


添加以下代码到main.c文件


static void Components_Init(void) {
  #define CPU_INIT_MCUONECLIPSE_DRIVERS

}


0017.png


复制Cpu.c中的初始化代码。


0018.png


粘贴到main.c中,完成初始化工作。


0019.png


取消 Events.c的编译。


0020.png


引入Events.h和Events.c


0021.png


创建任务,并开启任务调度器。


0022.gif


编译下载后,开发板的LED灯已经开始闪烁了,FreeRTOS任务创建成功。

五、添加SystemView


0023.png


在组件库中搜索systemview,检索出SeggerSystemView组件,双击添加到工程,这个过程会自动增加一些相关的组件。


0024.png
修改RTT组件属性,设置上传和下载通道都为2。
0025.png


确保SystemView组件属性中RTT通道序号为1。


0026.png
最后,启用FreeRTOS组件属性中的Segger System Viewer跟踪。
0027.png
重新生成PE代码后,复制Cpu.c中的初始化代码。
0028.png


在main.c中覆盖之前的初始化代码。

重新编译工程,下载到开发板。


0029.png


在PC上启动之前下载的SystemView.exe


0030.png


点击start recording,弹出对话框,确定即可。


0031.png


此时SystemView就开始记录FreeRTOS的所有活动情况了,包括了每个任务的时间占用,任务的调度过程,任务的CPU资源占用。

总结:SystemView是一个非常好用的RTOS分析工具,对于掌握和了解各种RTOS的任务运行情况,内部事件,资源占用等等各种信息非常方便,在项目开发过程中可以很好的帮助开发者分析系统运行状况,并依据具体状况对系统的任务进行调节和应用。



原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (0)
Angel_YY 擅长:BMS电池管理系统,用户行为分析系统
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)