Skip to content

ShadowThree/SystemView_NoOS_Demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

参考

  1. SystemView安装路径: SystemView/Doc/UM08027_SystemView.pdf;
  2. 官方文档:Use_SystemView_without_RTOS;

移植

  1. SystemView安装路径下的SystemView/Src文件夹复制到工程中;
  2. 将如下头文件路径添加到工程:
SystemView/Config       // SystemView/Src/Config
SystemView/SEGGER       // SystemView/Src/SEGGER
  1. 将如下源文件添加到工程:
SystemView/Sample/NoOS/Config/Cortex-M/SEGGER_SYSVIEW_Config_NoOS.c
SystemView/SEGGER/SEGGER_RTT.c
SystemView/SEGGER/SEGGER_SYSVIEW.c
  1. MDK --> Options for Target --> C/C++中,使能GNU extensions;
  2. SEGGER_SYSVIEW_Conf.h中添加如下定义:
// 注意:在 SEGGER_SYSVIEW_ConfDefaults.h 文件中,已经有如下定义:
// #define SEGGER_SYSVIEW_CORE_OTHER   0
// #define SEGGER_SYSVIEW_CORE_CM0     1 // Cortex-M0/M0+/M1
// #define SEGGER_SYSVIEW_CORE_CM3     2 // Cortex-M3/M4/M7
// #define SEGGER_SYSVIEW_CORE_RX      3 // Renesas RX

#define SEGGER_SYSVIEW_CORE	SEGGER_SYSVIEW_CORE_CM3
  1. 按照[main.c](./Core/Src/main.c)的方式使用SystemViewAPI:
  • 在需要监测的函数前后调用SEGGER_SYSVIEW_Recordxxx()SEGGER_SYSVIEW_RecordEndCall();(不同的函参对应不同的API)
  • 在需要监测的中断前后调用SEGGER_SYSVIEW_RecordEnterISR()SEGGER_SYSVIEW_RecordExitISR();
  1. 编译并烧录运行,然后在电脑上打开SystemView,并点击左上角工具栏中的绿色三角形即可;

说明

  1. 必须使用J-Link才能使用SystemView;
  2. JLink只需要通过SWDIOSWCLK以及GND三根线和MCU连接;
  3. RTT可以同时用于RTT日志输出和SystemView事件记录;但是输出的日志还是要用J-Link RTT Viewer才能看到,不知道为什么SystemViewTerminal窗口看不到日志;
  4. 由于SystemView已经导入了SEGGER_RTT.c文件,所以使用dbger就不用再导入这个文件了;

ERROR: SystemView Overflow

  1. SystemView的记录停止,重新开始记录试试;
  2. SysTick_Handler中断处理函数中加上SEGGER_SYSVIEW_TickCnt++;
  3. SEGGER_RTT_Conf.h中的BUFFER_SIZE_UP加大;

About

STM32V6, STM32F429BI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published