s32ds 路径_S32DS中使用SystemView分析FreeRTOS

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

c44b9c8d8c7f7e8ec842bce51481ea4e.png

SystemView:

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

5257122deb5b1d12be8346f59d3aab7d.png

McuOnEclipse组件:

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

011578cc515e2bc3cd28a7dae1dc6e07.png

二、安装工具

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

679443f580e1b534ae52f240f72c3b0e.png

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

dc30badf2e35e6f59c320eab42d77c86.png

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

e82f7318f13aa992fe024b3f85c4c0e1.png

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

8f176f910ca19869810e4462231cc5f8.png

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

三、新建工程

834c78425e3a4bf710e5f72c99165edd.png

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

10976831409d52825009a202b3d9ff98.png

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

74ce646e552edec17b6001fe30389789.png

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

fef5e19fb51dda8617202fd82231b01c.png

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

8c109df2946582bdfd5429fd0789dbc3.png

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

四、创建FreeRTOS任务

084ed0d22790facbb709aebaa84bf62f.png

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

292630395989318734b9fc4769c30d52.png

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

b81b2729ce9319ea7fbcd75f1bbc6a02.png

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

9144020bbaaebe4353e4da8f8081c6f4.png

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

staTIc void Components_Init(void) { #define CPU_INIT_MCUONECLIPSE_DRIVERS}

ae1e5fe6845904bbedb4c57e88ad92f2.png

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

321064bf8a61978770a937e438d72634.png

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

29836b83a22988cead66121b7f1e5306.png

取消 Events.c的编译。

ee07b3821f1c6bc80406f9c120e92884.png

引入Events.h和Events.c

2e8ada71a942942ee85b88f7b40241b9.png

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

a3123a99f3fab556731f3b5afa40e94c.gif

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

五、添加SystemView

92069bda2d46b27ddb85b1c60b756aad.png

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

c0f4ddc80f0a7eddcdd94860a55cac22.png

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

024bdbac7e7187e0978dd383045c2fd1.png

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

621e8bc6f48517046bdc3302d457dbc7.png

最后,启用FreeRTOS组件属性中的Segger System Viewer跟踪。

6d09c638d1aa6795665142390baaf3b4.png

重新生成PE代码后,复制Cpu.c中的初始化代码。

8abb76983ae35f14efe154c157c5fc06.png

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

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

eb593e6ff24643665c38deb86286b861.png

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

996890359c2e49d12ae4257f38a65ef5.png

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

f44b9c4f65c1eb24f314d2db78beaff3.png

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

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值