经验前言:
- 使用JScope,虽然可以直接使用HSS(Asyncronous)非同步模式,搭配工程编译后的axf文件,直接选择对应变量进行观测,使用方便。
但HSS模式有个明显缺点:观测采样率最高只有1K;如要真实反馈高频变化的信号,有瓶颈
- 所以使用RTT模式,更能满足对观测实时性有要求的场合。
#include "SEGGER_RTT.h" //包含对应头文件
...
volatile uint16_t adc_value = 0;//声明需观测的变量
char JS_RTT_UpBuffer[1024]; // J-Scope RTT Buffer
int JS_RTT_Channel = 1; // J-Scope RTT Channel
...
main()↓
SEGGER_RTT_ConfigUpBuffer(JS_RTT_Channel, "JScope_u2", &JS_RTT_UpBuffer[0], sizeof(JS_RTT_UpBuffer), SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL);//初始化RTT BLOCK
...
SEGGER_RTT_Write(JS_RTT_Channel, &adc_value, 2);//按需更新需观测的变量
- JScope配置
- 选择对应的MCU型号(关键!不能只选择Cortex-M3内核,需要准确到MCU型号)
i.最新版的JScope 已经支持极海APM32的MCU型号
ii.选对SWD或JTAG模式
iii.选择RTT(syschronous)
工程所需的Segger_RTT文件已放到附件,可按需下载
|